|
@ -1,18 +1,19 @@
|
|
package com.yihu.jw.security.oauth2.provider.endpoint;
|
|
package com.yihu.jw.security.oauth2.provider.endpoint;
|
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
|
|
|
|
|
import com.google.code.kaptcha.impl.DefaultKaptcha;
|
|
import com.google.code.kaptcha.impl.DefaultKaptcha;
|
|
import com.google.code.kaptcha.util.Config;
|
|
import com.google.code.kaptcha.util.Config;
|
|
import com.yihu.jw.entity.auth.OauthRsaKeyDO;
|
|
|
|
import com.yihu.jw.entity.base.login.BaseLoginLogDO;
|
|
import com.yihu.jw.entity.base.login.BaseLoginLogDO;
|
|
import com.yihu.jw.entity.base.patient.BasePatientDO;
|
|
import com.yihu.jw.entity.base.patient.BasePatientDO;
|
|
import com.yihu.jw.entity.ylzinfo.OauthYlzConfigDO;
|
|
|
|
|
|
|
|
import com.yihu.jw.restmodel.ResultStatus;
|
|
import com.yihu.jw.restmodel.ResultStatus;
|
|
import com.yihu.jw.restmodel.web.Envelop;
|
|
import com.yihu.jw.restmodel.web.Envelop;
|
|
import com.yihu.jw.restmodel.web.ObjEnvelop;
|
|
import com.yihu.jw.restmodel.web.ObjEnvelop;
|
|
import com.yihu.jw.security.core.userdetails.jdbc.WlyyUserDetailsService;
|
|
import com.yihu.jw.security.core.userdetails.jdbc.WlyyUserDetailsService;
|
|
import com.yihu.jw.security.dao.OauthKeypairDao;
|
|
import com.yihu.jw.security.dao.OauthKeypairDao;
|
|
|
|
import com.yihu.jw.security.dao.patient.BasePatientDao;
|
|
import com.yihu.jw.security.exception.ImgCaptchaException;
|
|
import com.yihu.jw.security.exception.ImgCaptchaException;
|
|
import com.yihu.jw.security.login.service.BaseLoginLogService;
|
|
import com.yihu.jw.security.login.service.BaseLoginLogService;
|
|
import com.yihu.jw.security.model.*;
|
|
import com.yihu.jw.security.model.*;
|
|
@ -22,16 +23,16 @@ import com.yihu.jw.security.oauth2.provider.error.WlyyOAuth2ExceptionTranslator;
|
|
import com.yihu.jw.security.service.*;
|
|
import com.yihu.jw.security.service.*;
|
|
import com.yihu.jw.security.utils.AES;
|
|
import com.yihu.jw.security.utils.AES;
|
|
import com.yihu.jw.security.utils.DateUtil;
|
|
import com.yihu.jw.security.utils.DateUtil;
|
|
|
|
import com.yihu.jw.security.utils.IdCardUtil;
|
|
import com.yihu.jw.security.utils.SerializeUtil;
|
|
import com.yihu.jw.security.utils.SerializeUtil;
|
|
import com.yihu.jw.sms.service.YkyySMSService;
|
|
import com.yihu.jw.sms.service.YkyySMSService;
|
|
import com.yihu.jw.sms.service.ZhongShanSMSService;
|
|
import com.yihu.jw.sms.service.ZhongShanSMSService;
|
|
import com.yihu.jw.sms.util.ykyy.vo.ResultMsg;
|
|
import com.yihu.jw.sms.util.ykyy.vo.ResultMsg;
|
|
|
|
import com.yihu.utils.security.MD5;
|
|
import com.yihu.utils.security.RSAUtils;
|
|
import com.yihu.utils.security.RSAUtils;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.ApiOperation;
|
|
import io.swagger.annotations.ApiOperation;
|
|
import io.swagger.annotations.ApiParam;
|
|
|
|
import org.apache.commons.collections.map.HashedMap;
|
|
import org.apache.commons.collections.map.HashedMap;
|
|
import org.apache.commons.lang3.*;
|
|
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@ -68,14 +69,11 @@ import java.io.ByteArrayOutputStream;
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
import java.net.URLDecoder;
|
|
import java.net.URLDecoder;
|
|
import java.security.KeyPair;
|
|
import java.security.KeyPair;
|
|
import java.security.PrivateKey;
|
|
|
|
import java.security.interfaces.RSAPrivateKey;
|
|
import java.security.interfaces.RSAPrivateKey;
|
|
import java.security.interfaces.RSAPublicKey;
|
|
import java.security.interfaces.RSAPublicKey;
|
|
import java.text.SimpleDateFormat;
|
|
import java.text.SimpleDateFormat;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.concurrent.TimeUnit;
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
|
import sun.misc.BASE64Encoder;
|
|
import sun.misc.BASE64Encoder;
|
|
|
|
|
|
/**
|
|
/**
|
|
@ -136,6 +134,8 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
|
|
private RegisterService registerService;
|
|
private RegisterService registerService;
|
|
@Autowired
|
|
@Autowired
|
|
private YkyyService ykyyService;
|
|
private YkyyService ykyyService;
|
|
|
|
@Autowired
|
|
|
|
private BasePatientDao basePatientDao;
|
|
|
|
|
|
@PostConstruct
|
|
@PostConstruct
|
|
private void init() {
|
|
private void init() {
|
|
@ -1411,6 +1411,69 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
|
|
JSONObject object = JSONObject.parseObject(response);
|
|
JSONObject object = JSONObject.parseObject(response);
|
|
if (!object.getString("code").equalsIgnoreCase("200")){
|
|
if (!object.getString("code").equalsIgnoreCase("200")){
|
|
throw new Exception(object.getString("msg"));
|
|
throw new Exception(object.getString("msg"));
|
|
|
|
}else {
|
|
|
|
JSONObject jsonObject = object.getJSONObject("data");
|
|
|
|
if (jsonObject!=null){
|
|
|
|
String userId= jsonObject.getString("ID");
|
|
|
|
String tel = jsonObject.getString("LOGINID");
|
|
|
|
List<BasePatientDO> basePatientDOS = basePatientDao.findByMobile(tel);
|
|
|
|
BasePatientDO basePatientDO = new BasePatientDO();
|
|
|
|
if (basePatientDOS==null||basePatientDOS.size()==0){
|
|
|
|
String familyList = ykyyService.getFamilyList(null,userId);
|
|
|
|
JSONObject familyJson = JSONObject.parseObject(familyList);
|
|
|
|
if (familyJson.getString("code").equalsIgnoreCase("200")){
|
|
|
|
JSONArray list = familyJson.getJSONArray("list");
|
|
|
|
if (list!=null&&list.size()!=0){
|
|
|
|
for (int i=0;i<list.size();i++){
|
|
|
|
JSONObject family = list.getJSONObject(i);
|
|
|
|
if (family.getString("ILLNESS").equalsIgnoreCase("本人")){
|
|
|
|
basePatientDO.setDel("1");
|
|
|
|
basePatientDO.setCreateTime(new Date());
|
|
|
|
basePatientDO.setUpdateTime(new Date());
|
|
|
|
basePatientDO.setYktId(family.getString("ID"));
|
|
|
|
basePatientDO.setUserId(userId);
|
|
|
|
basePatientDO.setIdcard(family.getString("IDCARD"));
|
|
|
|
String idcard = family.getString("IDCARD");
|
|
|
|
Integer age = IdCardUtil.getAgeForIdcard(idcard);
|
|
|
|
String birthday = IdCardUtil.getBirthdayForIdcardStr(idcard);
|
|
|
|
Date birthDay = null;
|
|
|
|
if (org.apache.commons.lang3.StringUtils.isNoneBlank(birthday)){
|
|
|
|
birthDay = com.yihu.jw.util.date.DateUtil.strToDateShort(birthday);
|
|
|
|
}
|
|
|
|
String sex = IdCardUtil.getSexForIdcard_new(idcard);
|
|
|
|
Integer sexx = null;
|
|
|
|
if (org.apache.commons.lang3.StringUtils.isNoneBlank(sex)){
|
|
|
|
sexx = Integer.parseInt(sex);
|
|
|
|
}
|
|
|
|
basePatientDO.setBirthday(birthDay);
|
|
|
|
basePatientDO.setSex(sexx);
|
|
|
|
basePatientDO.setMobile(tel);
|
|
|
|
String salt = UUID.randomUUID().toString().substring(0,5);
|
|
|
|
String pw = idcard.substring(idcard.length()-6,idcard.length());
|
|
|
|
basePatientDO.setPassword(MD5.md5Hex(pw + "{" + salt + "}"));
|
|
|
|
basePatientDO.setSalt(salt);
|
|
|
|
basePatientDO.setLocked(0);
|
|
|
|
basePatientDO.setPatientStatus("1");
|
|
|
|
basePatientDao.save(basePatientDO);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}else {
|
|
|
|
basePatientDO.setDel("1");
|
|
|
|
basePatientDO.setCreateTime(new Date());
|
|
|
|
basePatientDO.setUpdateTime(new Date());
|
|
|
|
basePatientDO.setUserId(userId);
|
|
|
|
basePatientDO.setMobile(tel);
|
|
|
|
String salt = UUID.randomUUID().toString().substring(0,5);
|
|
|
|
String pw = tel.substring(tel.length()-6,tel.length());
|
|
|
|
basePatientDO.setPassword(MD5.md5Hex(pw + "{" + salt + "}"));
|
|
|
|
basePatientDO.setSalt(salt);
|
|
|
|
basePatientDO.setLocked(0);
|
|
|
|
basePatientDO.setPatientStatus("1");
|
|
|
|
basePatientDao.save(basePatientDO);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
parameters.remove("password");
|
|
parameters.remove("password");
|