Prechádzať zdrojové kódy

Merge remote-tracking branch 'origin/dev' into dev

lhh 2 týždňov pred
rodič
commit
a71ee10415
24 zmenil súbory, kde vykonal 1538 pridanie a 406 odobranie
  1. 79 38
      business/base-service/src/main/java/com/yihu/jw/hospital/family/service/WlyyFamilyMemberService.java
  2. 3 0
      business/base-service/src/main/java/com/yihu/jw/hospital/mapping/service/PatientMappingService.java
  3. 5 0
      business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/PrescriptionService.java
  4. 40 9
      business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/YkyyPrescriptionService.java
  5. 27 5
      business/base-service/src/main/java/com/yihu/jw/utils/SignGenerator.java
  6. 11 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/patient/BasePatientDO.java
  7. 56 0
      common/common-entity/src/main/java/com/yihu/jw/entity/hospital/prescription/WlyyOutpatientDO.java
  8. 33 0
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/hospital/prescription/WlyyOutpatientVO.java
  9. 23 1
      gateway/ag-basic/src/main/resources/application.yml
  10. 9 1
      gateway/ag-basic/src/main/resources/bootstrap.yml
  11. 3 0
      server/svr-authentication/src/main/java/com/yihu/jw/security/dao/patient/BasePatientMedicareCardDao.java
  12. 16 0
      server/svr-authentication/src/main/java/com/yihu/jw/security/dao/patient/BasePatientMemberDictDao.java
  13. 11 0
      server/svr-authentication/src/main/java/com/yihu/jw/security/dao/patient/WlyyPatientFamilyMemberDao.java
  14. 774 214
      server/svr-authentication/src/main/java/com/yihu/jw/security/oauth2/provider/endpoint/WlyyLoginEndpoint.java
  15. 364 95
      server/svr-authentication/src/main/java/com/yihu/jw/security/oauth2/provider/endpoint/WlyyYkyyEndpoint.java
  16. 5 0
      server/svr-authentication/src/main/java/com/yihu/jw/security/service/OauthYlzConfigService.java
  17. 34 15
      server/svr-authentication/src/main/java/com/yihu/jw/security/service/YkyyService.java
  18. 20 14
      server/svr-authentication/src/main/java/com/yihu/jw/security/utils/SignGenerator.java
  19. 1 1
      server/svr-authentication/src/main/resources/application.yml
  20. 2 2
      server/svr-authentication/src/main/resources/bootstrap.yml
  21. 3 3
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/consult/PatientConsultEndpoint.java
  22. 1 0
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/hospital/WlyyFamilyMemberController.java
  23. 2 4
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/prescription/YkyyPrescriptionEndpoint.java
  24. 16 4
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/ykyy/YkyyController.java

+ 79 - 38
business/base-service/src/main/java/com/yihu/jw/hospital/family/service/WlyyFamilyMemberService.java

@ -14,6 +14,7 @@ import com.yihu.jw.hospital.family.dao.WlyyNatPatientFamilyMemberDao;
import com.yihu.jw.hospital.family.dao.BasePatientMemberDictDao;
import com.yihu.jw.hospital.family.dao.WlyyPatientFamilyMemberDao;
import com.yihu.jw.hospital.mapping.dao.PatientMappingDao;
import com.yihu.jw.hospital.prescription.service.YkyyPrescriptionService;
import com.yihu.jw.hospital.prescription.service.entrance.EntranceService;
import com.yihu.jw.hospital.prescription.service.entrance.TnyyEntranceService;
import com.yihu.jw.hospital.prescription.service.entrance.XzzxEntranceService;
@ -66,6 +67,8 @@ public class WlyyFamilyMemberService extends BaseJpaService<WlyyPatientFamilyMem
    private TnyyEntranceService tnyyEntranceService;
    @Autowired
    private YkyyService ykyyService;
    @Autowired
    private YkyyPrescriptionService ykyyPrescriptionService;
    @Value("${wechat.id}")
    private String wxId;
    @Autowired
@ -175,47 +178,75 @@ public class WlyyFamilyMemberService extends BaseJpaService<WlyyPatientFamilyMem
                    BasePatientDO basePatientDO1  = basePatientDao.findById(patientId);
                    String res = "";
                    //id不为空则为修改家人关系
                    if (StringUtils.isNotBlank(id)){
                        if (null!=basePatientDO1){
                            res = ykyyService.updateYktFamily(familyName,idCard, familySex,familyAge,phoneNum,medicare,relationName,clinicId,result.getYktFamilyId(),birth);
                        }
                        if (StringUtils.isNotEmpty(res)){
                            JSONObject jsonObject1 = JSONObject.parseObject(res);
                            if ("200".equalsIgnoreCase(jsonObject1.getString("code"))){
                                /*JSONObject jsonObject2 = JSONObject.parseObject(jsonObject1.getString("data"));
                                yktFamilyId = jsonObject2.getString("ID");*/
                            }else {
                                mixEnvelop.setStatus(408);
                                mixEnvelop.setMessage("更新家人关系失败,请核对个人信息.");
                                return mixEnvelop;
                            }
                        }else {
                            mixEnvelop.setStatus(408);
                            mixEnvelop.setMessage("更新家人关系失败,请核对个人信息.");
                            return mixEnvelop;
//                    if (StringUtils.isNotBlank(id)){
//                        if (null!=basePatientDO1){
//                            res = ykyyService.updateYktFamily(familyName,idCard, familySex,familyAge,phoneNum,medicare,relationName,clinicId,result.getYktFamilyId(),birth);
//                        }
//                        if (StringUtils.isNotEmpty(res)){
//                            JSONObject jsonObject1 = JSONObject.parseObject(res);
//                            if ("200".equalsIgnoreCase(jsonObject1.getString("code"))){
//                                /*JSONObject jsonObject2 = JSONObject.parseObject(jsonObject1.getString("data"));
//                                yktFamilyId = jsonObject2.getString("ID");*/
//                            }else {
//                                mixEnvelop.setStatus(408);
//                                mixEnvelop.setMessage("更新家人关系失败,请核对个人信息.");
//                                return mixEnvelop;
//                            }
//                        }else {
//                            mixEnvelop.setStatus(408);
//                            mixEnvelop.setMessage("更新家人关系失败,请核对个人信息.");
//                            return mixEnvelop;
//                        }
//                    }else {
//                    if (null!=basePatientDO1){
//                        res = ykyyService.addYktFamily(familyName,idCard, familySex,familyAge,phoneNum,medicare,relationName,clinicId,basePatientDO1.getUserId(),birth);
//                    }
//                    if (StringUtils.isNotEmpty(res)){
//                        JSONObject jsonObject1 = JSONObject.parseObject(res);
//                        if ("200".equalsIgnoreCase(jsonObject1.getString("code"))){
//                            JSONObject jsonObject2 = JSONObject.parseObject(jsonObject1.getString("data"));
//                            yktFamilyId = jsonObject2.getString("ID");
//                            result.setYktFamilyId(yktFamilyId);
//                        }else {
//                            mixEnvelop.setStatus(408);
//                            mixEnvelop.setMessage("添加家人关系失败,请核对个人信息.");
//                            return mixEnvelop;
//                        }
//                    }else {
//                        mixEnvelop.setStatus(408);
//                        mixEnvelop.setMessage("添加家人关系失败,请核对个人信息.");
//                        return mixEnvelop;
//                    }
//                    }
                    if (null!=basePatientDO1){
                        String cardType1 = "";
                        String cardNo = "";
                        if (StringUtils.isNotBlank(medicare)){
                            cardType1="1";
                            cardNo=medicare;
                        }
                    }else {
                        if (null!=basePatientDO1){
                            res = ykyyService.addYktFamily(familyName,idCard, familySex,familyAge,phoneNum,medicare,relationName,clinicId,basePatientDO1.getUserId(),birth);
                        if (StringUtils.isNotBlank(clinicId)){
                            cardType1="2";
                            cardNo=clinicId;
                        }
                        if (StringUtils.isNotEmpty(res)){
                            JSONObject jsonObject1 = JSONObject.parseObject(res);
                            if ("200".equalsIgnoreCase(jsonObject1.getString("code"))){
                                JSONObject jsonObject2 = JSONObject.parseObject(jsonObject1.getString("data"));
                                yktFamilyId = jsonObject2.getString("ID");
                                result.setYktFamilyId(yktFamilyId);
                            }else {
                                mixEnvelop.setStatus(408);
                                mixEnvelop.setMessage("添加家人关系失败,请核对个人信息.");
                                return mixEnvelop;
                            }
                        res = ykyyPrescriptionService.add(familyName,cardType,idCard,phoneNum, dictId,cardType1,cardNo,basePatientDO1.getVerifyCode());
                    }
                    if (StringUtils.isNotEmpty(res)){
                        JSONObject jsonObject1 = JSONObject.parseObject(res);
                        if ("200".equalsIgnoreCase(jsonObject1.getString("code"))){
//                            JSONObject jsonObject2 = JSONObject.parseObject(jsonObject1.getString("data"));
//                            yktFamilyId = jsonObject2.getString("ID");
//                            result.setYktFamilyId(yktFamilyId);
                        }else {
                            mixEnvelop.setStatus(408);
                            mixEnvelop.setMessage("添加家人关系失败,请核对个人信息.");
                            return mixEnvelop;
                        }
                    }else {
                        mixEnvelop.setStatus(408);
                        mixEnvelop.setMessage("添加家人关系失败,请核对个人信息.");
                        return mixEnvelop;
                    }
                    System.out.println("眼科转换后的csny"+birth);
                }else {
                    mixEnvelop.setStatus(409);
@ -633,7 +664,7 @@ public class WlyyFamilyMemberService extends BaseJpaService<WlyyPatientFamilyMem
                }
                BasePatientDO basePatientDO1  = basePatientDao.findById(patientId);
                SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
                birth = sf.format(basePatientDO1.getBirthday());
                birth = IdCardUtil.getBirthdayForIdcardStr(idCard);
                String res = "";
                //id不为空则为修改家人关系
                if (StringUtils.isNotBlank(id)){
@ -657,14 +688,24 @@ public class WlyyFamilyMemberService extends BaseJpaService<WlyyPatientFamilyMem
                    }
                }else {
                    if (null!=basePatientDO1){
                        res = ykyyService.addYktFamily(familyName,idCard, familySex,familyAge,phoneNum,medicare,relationName,clinicId,basePatientDO1.getUserId(),birth);
                        String cardType1 = "";
                        String cardNo = "";
                        if (StringUtils.isNotBlank(medicare)){
                            cardType1="1";
                            cardNo=medicare;
                        }
                        if (StringUtils.isNotBlank(clinicId)){
                            cardType1="2";
                            cardNo=clinicId;
                        }
                        res = ykyyPrescriptionService.add(familyName,cardType,idCard,phoneNum, dictId,cardType1,cardNo,basePatientDO1.getVerifyCode());
                    }
                    if (StringUtils.isNotEmpty(res)){
                        JSONObject jsonObject1 = JSONObject.parseObject(res);
                        if ("200".equalsIgnoreCase(jsonObject1.getString("code"))){
                            JSONObject jsonObject2 = JSONObject.parseObject(jsonObject1.getString("data"));
                            yktFamilyId = jsonObject2.getString("ID");
                            result.setYktFamilyId(yktFamilyId);
//                            JSONObject jsonObject2 = JSONObject.parseObject(jsonObject1.getString("data"));
//                            yktFamilyId = jsonObject2.getString("ID");
//                            result.setYktFamilyId(yktFamilyId);
                        }else {
                            mixEnvelop.setStatus(408);
                            mixEnvelop.setMessage("添加家人关系失败,请核对个人信息.");

+ 3 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/mapping/service/PatientMappingService.java

@ -88,6 +88,9 @@ public class PatientMappingService {
        logger.info("patientDO:"+patientDO.toString());
        PatientMappingDO patientMappingDO = patientMappingDao.findByPatient(patient);
        PatientMedicareCardDO patientMedicareCardDO = patientMedicareCardDao.findByTypeAndPatientCodeAndDel("A_01",patient,"1");
        if (patientMedicareCardDO==null){
            return null;
        }
        if(patientMappingDO!=null){
            return patientMappingDO.getMappingCode();
        }

+ 5 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/PrescriptionService.java

@ -659,6 +659,11 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                /*  " o.register_date AS \"registerDate\"," +*/
                " o.evaluate_status AS \"evaluateStatus\"," +
                " o.pay_status as \"payStatus\"," +
                " o.scbgjt_type as \"scbgjtType\"," +
                " o.scbgjt as \"scbgjt\"," +
                " o.scbgjt_name as \"scbgjtName\"," +
                " o.scbgjt_org_code as \"scbgjtOrgCode\"," +
                " o.scbgjt_org_name as \"scbgjtOrgName\"," +
                " o.his_status as \"hisStatus\"  " +
                " FROM " +
                " wlyy_outpatient o " +

+ 40 - 9
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/YkyyPrescriptionService.java

@ -14,6 +14,7 @@ import com.yihu.jw.entity.base.dict.DictHospitalDeptDO;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.base.doctor.BaseDoctorHospitalDO;
import com.yihu.jw.entity.base.doctor.BaseDoctorRoleDO;
import com.yihu.jw.entity.base.org.BaseOrgDO;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.base.patient.PatientMedicareCardDO;
import com.yihu.jw.entity.base.wx.BasePatientWechatDo;
@ -48,8 +49,10 @@ import com.yihu.jw.hospital.prescription.service.entrance.YkyyEntranceService;
import com.yihu.jw.hospital.ykyy.service.YkyyService;
import com.yihu.jw.order.BusinessOrderService;
import com.yihu.jw.order.dao.BusinessOrderDao;
import com.yihu.jw.org.dao.BaseOrgDao;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.patient.dao.BasePatientMedicareCardDao;
import com.yihu.jw.restmodel.base.org.OrgDistanceVO;
import com.yihu.jw.restmodel.hospital.prescription.WlyyOutpatientVO;
import com.yihu.jw.restmodel.hospital.prescription.WlyyPrescriptionVO;
import com.yihu.jw.util.common.IdCardUtil;
@ -151,6 +154,8 @@ public class YkyyPrescriptionService extends BaseJpaService<WlyyPrescriptionDO,
    private PrescriptionLogDao prescriptionLogDao;
    @Autowired
    private PrescriptionEmrDao prescriptionEmrDao;
    @Autowired
    private BaseOrgDao orgDao;
    private final static String saveUrl = "http://192.168.20.55:10023/ykyy/save";
    private final static String updateEntityUrl = "http://192.168.20.55:10023/ykyy/update";
@ -1746,7 +1751,7 @@ public class YkyyPrescriptionService extends BaseJpaService<WlyyPrescriptionDO,
    //===========================新眼科通==================================
    private static String newYktUrl = "https://test.yanketong.com";
    private static String newYktUrl = "https://huaxia.yanketong.com";
    /**
     * 发送短信
@ -1793,16 +1798,19 @@ public class YkyyPrescriptionService extends BaseJpaService<WlyyPrescriptionDO,
     * SELF
     * @return
     */
    public String add(String type,String userName,String idType,String idNo,String mobile,String relationship){
    public String add(String userName,String idType,String idNo,String mobile,String relationship,String cardType,String cardNo,String authorization){
        String url = newYktUrl+"/api/ext/ykt/patient/add";
        Map<String, Object> params = new HashMap<>();
        params.put("type", type);
        params.put("cardType", cardType);
        params.put("cardNo", cardNo);
        params.put("userName", userName);
        params.put("idType", idType);
        params.put("idNo", idNo);
        params.put("mobile", mobile);
        params.put("relationship", relationship);
        return SignGenerator.requestYkt(params,url);
        Map<String,String> headerParams = new HashMap<>();
        headerParams.put("Authorization","Bearer "+authorization);
        return SignGenerator.requestYktAndHeader(params,headerParams,url);
    }
    /**
@ -1816,11 +1824,34 @@ public class YkyyPrescriptionService extends BaseJpaService<WlyyPrescriptionDO,
    public String hospitalList(String hospName,String hospId,String lon,String lat){
        String url = newYktUrl+"/api/ext/ykt/open/hosp/list";
        Map<String, Object> params = new HashMap<>();
        params.put("hospName", hospName);
        params.put("hospId", hospId);
        params.put("lon", lon);
        params.put("lat", lat);
        return SignGenerator.requestYkt(params,url);
//        params.put("hospName", hospName);
//        params.put("hospId", hospId);
//        params.put("lon", lon);
//        params.put("lat", lat);
        String res = SignGenerator.requestYkt(params,url);
        if (StringUtils.isNoneBlank(res)){
            JSONObject resObj = JSONObject.parseObject(res);
            if (resObj.getString("code").equalsIgnoreCase("200")){
                JSONArray data = resObj.getJSONArray("data");
                for (int i=0;i<data.size();i++){
                    JSONObject obj = data.getJSONObject(i);
                    BaseOrgDO orgDO = orgDao.findByCode(obj.getString("hospId"));
                    if (orgDO==null){
                        orgDO = new BaseOrgDO();
                        orgDO.setCode(obj.getString("hospId"));
                        orgDO.setName(obj.getString("name"));
                        orgDO.setAddress(obj.getString("address"));
                        orgDO.setDel("1");
                        orgDO.setPhoto(obj.getString("imageUrl"));
                        orgDO.setType(obj.getString("type"));
                        orgDO.setLatitude(obj.getString("lat"));
                        orgDO.setLongitude(obj.getString("lon"));
                        orgDao.save(orgDO);
                    }
                }
            }
        }
        return res;
    }
    /**

+ 27 - 5
business/base-service/src/main/java/com/yihu/jw/utils/SignGenerator.java

@ -5,6 +5,7 @@ import com.yihu.jw.util.http.HttpClientUtil;
import org.apache.commons.codec.digest.DigestUtils;
import org.springframework.util.StringUtils;
import java.net.URLEncoder;
import java.util.*;
public class SignGenerator {
@ -17,15 +18,15 @@ public class SignGenerator {
        params3.put("userName", "王志南");
        params3.put("idType", "1");
        params3.put("idNo", "350524199405230613");
        requestYkt(params3,"https://test.yanketong.com/api/ext/ykt/open/account/register");
        requestYkt(params3,"https://huaxia.yanketong.com/api/ext/ykt/open/account/register");
        Map<String, Object> params1 = new HashMap<>();
        params1.put("mobile", "17602157210");
        params1.put("scene", "EXT_LOGIN");
        requestYkt(params1,"https://test.yanketong.com/api/ext/ykt/open/sms/code/send");
        requestYkt(params1,"https://huaxia.yanketong.com/api/ext/ykt/open/sms/code/send");
        Map<String, Object> params2 = new HashMap<>();
        params2.put("mobile", "17602157210");
        params2.put("code", "666666");
        String res = requestYkt(params2,"https://test.yanketong.com/api/ext/ykt/open/account/login/mobile");
        String res = requestYkt(params2,"https://huaxia.yanketong.com/api/ext/ykt/open/account/login/mobile");
        JSONObject resObj = JSONObject.parseObject(res);
        if (resObj.getString("code").equalsIgnoreCase("200")){
            JSONObject data = resObj.getJSONObject("data");
@ -33,10 +34,24 @@ public class SignGenerator {
            Map<String, String> header = new HashMap<>();
            header.put("Authorization","Bearer "+data.getString("accessToken"));
            System.out.println("accessToken"+header);
            requestYktAndHeaderGet(params,header,"https://test.yanketong.com/api/ext/ykt/account/info");
//            Map<String, Object> params4 = new HashMap<>();
//            params4.put("cardType", 1);
//            params4.put("cardNo", "DD2781527");
//            params4.put("userName", "王志南");
//            params4.put("idType", 1);
//            params4.put("idNo", "350524199405230613");
//            params4.put("mobile", "17602157210");
//            params4.put("relationship", "SELF");
//            requestYktAndHeader(params4,header,"https://huaxia.yanketong.com/api/ext/ykt/patient/add");
            requestYktAndHeaderGet(params,header,"https://huaxia.yanketong.com/api/ext/ykt/account/info");
        }
//
//        Map<String, Object> params3 = new HashMap<>();
//        requestYkt(params3,"https://huaxia.yanketong.com/api/ext/ykt/open/hosp/list");
        //{"idType":"身份证","signature":"4fd457af8258647cc52dab23f7f649f46e6477ffa875d6e9371c7ef2f75134f2",
        // "cardType":"1","mobile":"17602157210","userName":"王志南","relationship":"7","cardNo":"DD2781527",
        // "idNo":"350524199405230613","nonce":"3joff37drqoo523w","timestamp":"1758092369904"}
    }
@ -88,7 +103,12 @@ public class SignGenerator {
        // 4. 拼接参数
        StringBuilder sb = new StringBuilder();
        for (String key : keys) {
            String value = flatParams.get(key);
            String value ="";
            if (key.equalsIgnoreCase("userName")){
                value = URLEncoder.encode(flatParams.get(key));
            }else {
                value = flatParams.get(key);
            }
            if (value != null && !"signature".equals(key)) {
                sb.append(key).append("=").append(value).append("&");
            }
@ -96,12 +116,14 @@ public class SignGenerator {
        // 5. 加入秘钥
        sb.append("key=").append(SECRET_KEY);
        System.out.println("1111111111111111111"+sb);
        // 6. SHA256加密
        String signature =  DigestUtils.sha256Hex(sb.toString());
        params.put("signature",signature);
        JSONObject object = new JSONObject(params);
        System.out.println("params=="+object.toJSONString());
        System.out.println("header=="+header);
        String res = HttpClientUtil.sendPost(url,object.toJSONString(),header);
        System.out.println("res="+res);
        return res;

+ 11 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/patient/BasePatientDO.java

@ -254,6 +254,8 @@ public class BasePatientDO extends UuidIdentityEntityWithOperator {
    private String phone;
    private String openid;
    private String appletsOpenId;
    private Date openidTime;
    private String cardType;
    private String alipayId;//支付宝id
@ -361,6 +363,15 @@ public class BasePatientDO extends UuidIdentityEntityWithOperator {
        this.openid = openid;
    }
    @Column(name = "applets_open_id")
    public String getAppletsOpenId() {
        return appletsOpenId;
    }
    public void setAppletsOpenId(String appletsOpenId) {
        this.appletsOpenId = appletsOpenId;
    }
    /**
     * 上线下线状态
     */

+ 56 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/prescription/WlyyOutpatientDO.java

@ -292,6 +292,7 @@ public class WlyyOutpatientDO extends UuidIdentityEntity {
     */
    private String isAgree;
    private String insuranceMedHistserial;//医保病史上传流水号
    private String bloodType;//血型
@ -314,6 +315,61 @@ public class WlyyOutpatientDO extends UuidIdentityEntity {
    private String isDisease;//特殊病种1是0否
    private String scbgjtType;
    private String scbgjt;
    private String scbgjtName;
    private String scbgjtOrgCode;
    private String scbgjtOrgName;
    @Column(name = "scbgjt_org_code")
    public String getScbgjtOrgCode() {
        return scbgjtOrgCode;
    }
    public void setScbgjtOrgCode(String scbgjtOrgCode) {
        this.scbgjtOrgCode = scbgjtOrgCode;
    }
    @Column(name = "scbgjt_org_name")
    public String getScbgjtOrgName() {
        return scbgjtOrgName;
    }
    public void setScbgjtOrgName(String scbgjtOrgName) {
        this.scbgjtOrgName = scbgjtOrgName;
    }
    @Column(name = "scbgjt_type")
    public String getScbgjtType() {
        return scbgjtType;
    }
    public void setScbgjtType(String scbgjtType) {
        this.scbgjtType = scbgjtType;
    }
    @Column(name = "scbgjt")
    public String getScbgjt() {
        return scbgjt;
    }
    public void setScbgjt(String scbgjt) {
        this.scbgjt = scbgjt;
    }
    @Column(name = "scbgjt_name")
    public String getScbgjtName() {
        return scbgjtName;
    }
    public void setScbgjtName(String scbgjtName) {
        this.scbgjtName = scbgjtName;
    }
    @Column(name = "is_disease")
    public String getIsDisease() {
        return isDisease;

+ 33 - 0
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/hospital/prescription/WlyyOutpatientVO.java

@ -233,6 +233,39 @@ public class WlyyOutpatientVO extends UuidIdentityVO {
    @ApiModelProperty(value = "号别", example = "号别")
    private String chargeType;
    @ApiModelProperty(value = "筛查id", example = "号别")
    private String scbgjt;
    @ApiModelProperty(value = "筛查类型", example = "号别")
    private String scbgjtType;
    @ApiModelProperty(value = "筛查名称", example = "号别")
    private String scbgjtName;
    public String getScbgjt() {
        return scbgjt;
    }
    public void setScbgjt(String scbgjt) {
        this.scbgjt = scbgjt;
    }
    public String getScbgjtType() {
        return scbgjtType;
    }
    public void setScbgjtType(String scbgjtType) {
        this.scbgjtType = scbgjtType;
    }
    public String getScbgjtName() {
        return scbgjtName;
    }
    public void setScbgjtName(String scbgjtName) {
        this.scbgjtName = scbgjtName;
    }
    public Double getFee() {
        return fee;
    }

+ 23 - 1
gateway/ag-basic/src/main/resources/application.yml

@ -91,6 +91,9 @@ zuul:
    svr-authentication:
      path: /cityihealth/auth/**
      serviceId: svr-authentication
    svr-authentication-test:
      path: /cityihealthTest/auth/**
      serviceId: svr-authentication-test
#公司官网
    svr-base-gw:
      path: /cityihealth/basegw/**
@ -432,4 +435,23 @@ spring:
  redis:
     host: 10.172.0.61
     port: 6379
     password: Kb6wKDQP1W4
     password: Kb6wKDQP1W4
---
## 眼科医院配置
spring:
  profiles: jwOracleProd
  datasource:
    driver-class-name: oracle.jdbc.driver.OracleDriver
    url: jdbc:oracle:thin:@10.10.10.16:1521/rac
    username: HLWYY
    password: Xmykzxhlwyy963
  jpa:
    properties:
      hibernate:
        dialect: org.hibernate.dialect.Oracle10gDialect
        show_sql: true
    database: oracle
  redis:
    host: 192.168.33.67 # Redis server host.
    port: 6380 # Redis server port.
    password: Kb6wKDQP1W4

+ 9 - 1
gateway/ag-basic/src/main/resources/bootstrap.yml

@ -214,4 +214,12 @@ spring:
  cloud:
    config:
      uri: ${wlyy-spring.config.uri:http://127.0.0.1:1221}
      label: ${wlyy-spring.config.label:jwdev}
      label: ${wlyy-spring.config.label:jwdev}
---
spring:
  profiles: jwOracleProd
  cloud:
    config:
      uri: ${wlyy-spring.config.uri:http://127.0.0.1:1221}
      label: ${wlyy-spring.config.label:master}

+ 3 - 0
server/svr-authentication/src/main/java/com/yihu/jw/security/dao/patient/BasePatientMedicareCardDao.java

@ -18,6 +18,9 @@ public interface BasePatientMedicareCardDao extends PagingAndSortingRepository<P
    @Query("select id from PatientMedicareCardDO where patientCode = ?1")
    Set<Object> findIdListByPatientCode(String patientCode);
    @Query("select a from PatientMedicareCardDO a where a.code=?1 and a.patientCode = ?2")
    PatientMedicareCardDO findByCodeAndPatientCode(String code,String patientCode);
    PatientMedicareCardDO findByCode(String code);
    PatientMedicareCardDO findByTypeAndPatientCodeAndDel(String Type, String patientCode, String del);

+ 16 - 0
server/svr-authentication/src/main/java/com/yihu/jw/security/dao/patient/BasePatientMemberDictDao.java

@ -0,0 +1,16 @@
package com.yihu.jw.security.dao.patient;
import com.yihu.jw.entity.hospital.family.BasePatientMemberDictDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
public interface BasePatientMemberDictDao extends PagingAndSortingRepository<BasePatientMemberDictDO, String>, JpaSpecificationExecutor<BasePatientMemberDictDO> {
    @Query("from BasePatientMemberDictDO t where t.isDel = 1")
    List<BasePatientMemberDictDO> findDictAll();
    @Query("from BasePatientMemberDictDO t where t.relationName = ?1 and t.isDel = 1")
    BasePatientMemberDictDO findByRelationName(String illness);
}

+ 11 - 0
server/svr-authentication/src/main/java/com/yihu/jw/security/dao/patient/WlyyPatientFamilyMemberDao.java

@ -3,6 +3,7 @@ package com.yihu.jw.security.dao.patient;
import com.yihu.jw.entity.hospital.family.BasePatientMemberDictDO;
import com.yihu.jw.entity.hospital.family.WlyyPatientFamilyMemberDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
@ -11,4 +12,14 @@ import java.util.List;
public interface WlyyPatientFamilyMemberDao extends PagingAndSortingRepository<WlyyPatientFamilyMemberDO, String>, JpaSpecificationExecutor<WlyyPatientFamilyMemberDO> {
    @Query("from WlyyPatientFamilyMemberDO t where t.patient = ?1 and t.familyRelation =?2 and t.isDel = 1 ")
    WlyyPatientFamilyMemberDO findFamilyMemberByPatientAndRelationCode(String patient,String familyRelation);
    @Query("from WlyyPatientFamilyMemberDO t where t.patient = ?1 and t.cardNo =?2 and t.isDel = 1 ")
    WlyyPatientFamilyMemberDO findFamilyMemberByCardNo(String patient,String cardNo);
    @Query("from WlyyPatientFamilyMemberDO t where t.patient = ?1 and t.yktFamilyId =?2 and t.isDel = 1 ")
    WlyyPatientFamilyMemberDO findFamilyMemberByYktFamilyId(String patient,String yktFamilyId);
    @Modifying
    @Query("delete from WlyyPatientFamilyMemberDO p where p.patient=?1 ")
    void deleteByPatient(String patient);
}

+ 774 - 214
server/svr-authentication/src/main/java/com/yihu/jw/security/oauth2/provider/endpoint/WlyyLoginEndpoint.java

@ -8,9 +8,13 @@ import com.google.code.kaptcha.util.Config;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.base.login.BaseLoginLogDO;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.base.patient.BasePatientFamilyMemberDO;
import com.yihu.jw.entity.base.patient.PatientMedicareCardDO;
import com.yihu.jw.entity.base.sms.SmsDO;
import com.yihu.jw.entity.base.wx.WxWechatDO;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.entity.hospital.family.BasePatientMemberDictDO;
import com.yihu.jw.entity.hospital.family.WlyyPatientFamilyMemberDO;
import com.yihu.jw.entity.util.AesEncryptUtils;
import com.yihu.jw.restmodel.ResultStatus;
import com.yihu.jw.restmodel.web.Envelop;
@ -18,9 +22,7 @@ import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.security.core.userdetails.jdbc.WlyyUserDetailsService;
import com.yihu.jw.security.dao.OauthKeypairDao;
import com.yihu.jw.security.dao.doctor.BaseDoctorDao;
import com.yihu.jw.security.dao.patient.BasePatientDao;
import com.yihu.jw.security.dao.patient.WechatDao;
import com.yihu.jw.security.dao.patient.WlyyHospitalSysDictDao;
import com.yihu.jw.security.dao.patient.*;
import com.yihu.jw.security.exception.ImgCaptchaException;
import com.yihu.jw.security.exception.PwdException;
import com.yihu.jw.security.login.service.BaseLoginLogService;
@ -196,6 +198,12 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
    private UserService userService;
    @Autowired
    private HealthCareNewService healthCareNewService;
    @Autowired
    private WlyyPatientFamilyMemberDao familyMemberDao;
    @Autowired
    private BasePatientMemberDictDao basePatientMemberDictDao;
    @Autowired
    private BasePatientMedicareCardDao patientMedicareCardDao;
    @PostConstruct
    private void init() {
@ -1265,39 +1273,62 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
                String captcha = wlyyRedisVerifyCodeService.getCodeNumber();
                ResultMsg result= null;
                if(StringUtils.isEmpty(type)){
                    String  res = ykyyService.getShortMessage("1",username);
                    String resltCode ="";
                    String captcha1 = "";
                    if (!StringUtils.isEmpty(res)){
                        JSONObject jsonObject = JSONObject.parseObject(res);
                        if ("10000".equalsIgnoreCase(jsonObject.getString("code"))){
                            captcha1 = jsonObject.getString("value");
                            resltCode = jsonObject.getString("code");
                        }else if("199".equalsIgnoreCase(jsonObject.getString("code"))){
                            msg = jsonObject.getString("msg");
                            Oauth2Envelop<Captcha> oauth2Envelop = new Oauth2Envelop<>(msg, 199);
                            return new ResponseEntity<>(oauth2Envelop, HttpStatus.OK);
                        }else {
                            msg="发送失败";
                            Oauth2Envelop<Captcha> oauth2Envelop = new Oauth2Envelop<>(msg, -1);
                            return new ResponseEntity<>(oauth2Envelop, HttpStatus.OK);
                        }
                    }
                    if ("10000".equalsIgnoreCase(resltCode)) {
                        Captcha _captcha = new Captcha();
                        _captcha.setCode(captcha1);
                        _captcha.setExpiresIn(300);
                        wlyyRedisVerifyCodeService.store(client_id, username, captcha1, 300);
//                    String  res = ykyyService.getShortMessage("1",username);
//                    String resltCode ="";
//                    String captcha1 = "";
//                    if (!StringUtils.isEmpty(res)){
//                        JSONObject jsonObject = JSONObject.parseObject(res);
//                        if ("10000".equalsIgnoreCase(jsonObject.getString("code"))){
//                            captcha1 = jsonObject.getString("value");
//                            resltCode = jsonObject.getString("code");
//                        }else if("199".equalsIgnoreCase(jsonObject.getString("code"))){
//                            msg = jsonObject.getString("msg");
//                            Oauth2Envelop<Captcha> oauth2Envelop = new Oauth2Envelop<>(msg, 199);
//                            return new ResponseEntity<>(oauth2Envelop, HttpStatus.OK);
//                        }else {
//                            msg="发送失败";
//                            Oauth2Envelop<Captcha> oauth2Envelop = new Oauth2Envelop<>(msg, -1);
//                            return new ResponseEntity<>(oauth2Envelop, HttpStatus.OK);
//                        }
//                    }
//                    if ("10000".equalsIgnoreCase(resltCode)) {
//
//                        Captcha _captcha = new Captcha();
//                        _captcha.setCode(captcha1);
//                        _captcha.setExpiresIn(300);
//                        wlyyRedisVerifyCodeService.store(client_id, username, captcha1, 300);
//
//                        Oauth2Envelop<Captcha> oauth2Envelop = new Oauth2Envelop<>("captcha", 200);
//                        HttpHeaders headers = new HttpHeaders();
//                        headers.set("Cache-Control", "no-store");
//                        headers.set("Pragma", "no-cache");
//                        return new ResponseEntity<>(oauth2Envelop, headers, HttpStatus.OK);
//                    }
                String res = ykyyService.sendSms(username,"EXT_REGISTER");
                if (!StringUtils.isEmpty(res)){
                    JSONObject obj = JSONObject.parseObject(res);
                    if ("200".equalsIgnoreCase(obj.getString("code"))) {
                        Oauth2Envelop<Captcha> oauth2Envelop = new Oauth2Envelop<>("captcha", 200);
                        HttpHeaders headers = new HttpHeaders();
                        headers.set("Cache-Control", "no-store");
                        headers.set("Pragma", "no-cache");
                        return new ResponseEntity<>(oauth2Envelop, headers, HttpStatus.OK);
                    }
                }
                }else if("1".equals(type)){
                    result = ykyyINSMSService.ykyySendSMS(username,"您好,您的手机登录短信验证码是:"+captcha+",5分钟内有效。");
                    String res = ykyyService.sendSms(username,"EXT_LOGIN");
                    if (!StringUtils.isEmpty(res)){
                        JSONObject obj = JSONObject.parseObject(res);
                        if ("200".equalsIgnoreCase(obj.getString("code"))) {
                            Oauth2Envelop<Captcha> oauth2Envelop = new Oauth2Envelop<>("captcha", 200);
                            HttpHeaders headers = new HttpHeaders();
                            headers.set("Cache-Control", "no-store");
                            headers.set("Pragma", "no-cache");
                            return new ResponseEntity<>(oauth2Envelop, headers, HttpStatus.OK);
                        }
                    }
//                    result = ykyyINSMSService.ykyySendSMS(username,"您好,您的手机登录短信验证码是:"+captcha+",5分钟内有效。");
                }else if("2".equals(type)) {
                    result = ykyyINSMSService.ykyySendSMS(username, "您好,您正在进行找回密码操作,您的短信验证码是:" + captcha + ",请勿将验证码告诉他人,5分钟内有效。");
                }
@ -2563,12 +2594,14 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
        if (StringUtils.isEmpty(client_id)) {
            throw new InvalidRequestException("client_id is null");
        }
        if (wlyyRedisVerifyCodeService.verification(client_id, mobile, captcha)) {
            //验证码正确
        } else {
            return ObjEnvelop.getError("验证码错误!");
        if (!wxId.equalsIgnoreCase("xm_ykyy_wx")){
            if (wlyyRedisVerifyCodeService.verification(client_id, mobile, captcha)) {
                //验证码正确
            } else {
                return ObjEnvelop.getError("验证码错误!");
            }
        }
        /*JSONObject resResult =validateGeet(geetestChallenge,geetestValidate,geetestSeccode,"1");
        if (resResult==null||!resResult.getString("result").equalsIgnoreCase("success")){
            return ObjEnvelop.getError("验证失败!");
@ -2579,30 +2612,42 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
                boolean localFlag = false;
                boolean ykFlag = false;
                String msg = "";
                BasePatientDO basePatientDO = new BasePatientDO();
                if (null!=basePatientDOS&&basePatientDOS.size()>0){
                    localFlag = true;
                    basePatientDO = basePatientDOS.get(0);
                }
                BasePatientDO basePatientDO = new BasePatientDO();
                String r =ykyyService.getRegisterUser(mobile,pw,captcha,"a01522","xmijk","xmijk");
//                String r =ykyyService.getRegisterUser(mobile,pw,captcha,"a01522","xmijk","xmijk");
//                if (!StringUtils.isEmpty(r)){
//                    JSONObject jsonObject = JSONObject.parseObject(r);
//                    if (null!=jsonObject.get("code")&&"200".equalsIgnoreCase(jsonObject.get("code").toString())){
//                        JSONObject jsonObject1 = JSONObject.parseObject(jsonObject.get("data").toString());
//                        basePatientDO.setUserId(jsonObject1.getString("ID"));
//                    }else if (null!=jsonObject.get("code")&&"199".equalsIgnoreCase(jsonObject.get("code").toString())){
//                        msg = jsonObject.getString("msg");
//                        ykFlag = true;
//                    }
//                }
                String r = ykyyService.register(mobile,captcha);
                if (!StringUtils.isEmpty(r)){
                    JSONObject jsonObject = JSONObject.parseObject(r);
                    if (null!=jsonObject.get("code")&&"200".equalsIgnoreCase(jsonObject.get("code").toString())){
                    if (null!=jsonObject.get("code")&&"0".equalsIgnoreCase(jsonObject.get("code").toString())){
                        JSONObject jsonObject1 = JSONObject.parseObject(jsonObject.get("data").toString());
                        basePatientDO.setUserId(jsonObject1.getString("ID"));
                    }else if (null!=jsonObject.get("code")&&"199".equalsIgnoreCase(jsonObject.get("code").toString())){
                    }else{
                        msg = jsonObject.getString("msg");
                        ykFlag = true;
                    }
                }
                basePatientDO.setMobile(mobile);
                String salt = UUID.randomUUID().toString().substring(0,5);
                basePatientDO.setPassword(MD5.md5Hex(pw + "{" + salt + "}"));
                String password=mobile.substring(mobile.length()-6,mobile.length());
                basePatientDO.setPassword(MD5.md5Hex(password + "{" + salt + "}"));
                basePatientDO.setSalt(salt);
                basePatientDO.setDel("1");
                basePatientDO.setEnabled(1);
                basePatientDO.setLocked(0);
                basePatientDO.setName(name);
                basePatientDO.setName(mobile);
                basePatientDO.setCreateTime(new Date());
                basePatientDO.setUpdateTime(new Date());
@ -3334,201 +3379,713 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
                }
                parameters.remove("password");
            }else if (parameters.get("mobile") != null) {
                KeyPair keyPair = (KeyPair) httpSession.getAttribute("privateKey");
                String mobile = com.yihu.jw.security.utils.RSAUtils.decryptBase64(parameters.get("mobile"), keyPair);
                logger.info("mobile:"+mobile);
                String msg = "";
                String r =ykyyService.getRegisterUser(mobile,"123456","123456","a01522","xmijk","xmijk");
                if (!StringUtils.isEmpty(r)){
                    JSONObject jsonObject = JSONObject.parseObject(r);
                    if (null!=jsonObject.get("code")&&"200".equalsIgnoreCase(jsonObject.get("code").toString())){
                        JSONObject jsonObject1 = JSONObject.parseObject(jsonObject.get("data").toString());
                    }else if (null!=jsonObject.get("code")&&"199".equalsIgnoreCase(jsonObject.get("code").toString())){
                        msg = jsonObject.getString("msg");
                        logger.info("msg"+msg);
                    }
                }
                String password = null;
                String res = ykyyService.getPatientPhone(mobile);
                if (res!=null&&res!=""){
                    JSONObject object = JSONObject.parseObject(res);
                    if (object.getString("code").equalsIgnoreCase("200")){
                        password = object.getString("data");
                    }else {
                        WlyyUserSimple userSimple = new WlyyUserSimple();
                        return getFailedResponse(object.getString("msg"),-1,userSimple);
                    }
                }
                String response = ykyyService.yktLogin(parameters.get("username"),password);
                if (!StringUtils.isEmpty(response)){
                    JSONObject object = JSONObject.parseObject(response);
                    if (!object.getString("code").equalsIgnoreCase("200")){
                        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);
                            if (basePatientDOS==null||basePatientDOS.size()==0){
//                KeyPair keyPair = (KeyPair) httpSession.getAttribute("privateKey");
//                String mobile = com.yihu.jw.security.utils.RSAUtils.decryptBase64(parameters.get("mobile"), keyPair);
                logger.info("mobile:"+username);
                String res = ykyyService.mobileOnly(username);
                if (!StringUtils.isEmpty(res)){
                    JSONObject resObj = JSONObject.parseObject(res);
                    if (resObj.getString("code").equalsIgnoreCase("200")){
                        JSONObject data = resObj.getJSONObject("data");
                        String accessToken = data.getString("accessToken");
                        String infoRes = ykyyService.info(accessToken);
                        if (!StringUtils.isEmpty(infoRes)){
                            JSONObject infoObj = JSONObject.parseObject(infoRes);
                            if (infoObj.getString("code").equalsIgnoreCase("200")){
                                JSONObject infoData= infoObj.getJSONObject("data");
                                String mobile1 = infoData.getString("mobile");
                                List<BasePatientDO> basePatientDOS = basePatientDao.findByMobile(mobile1);
                                BasePatientDO basePatientDO = new BasePatientDO();
                                String familyList = ykyyService.getFamilyList(null,userId);
                                JSONObject familyJson = JSONObject.parseObject(familyList);
                                if (familyJson.getString("code").equalsIgnoreCase("200")){
                                    JSONObject object1 = familyJson.getJSONObject("data");
                                    JSONArray list = object1.getJSONArray("list");
                                    List<String> iliness = new ArrayList<>();
                                    if (list!=null&&list.size()!=0){
                                        for (int i=0;i<list.size();i++){
                                            JSONObject family = list.getJSONObject(i);
                                            iliness.add(family.getString("ILLNESS"));
                                            if (family.getString("ILLNESS").equalsIgnoreCase("本人")&&tel.equalsIgnoreCase(family.getString("TEL"))){
                                                basePatientDO.setDel("1");
                                                basePatientDO.setName(family.getString("NAME"));
                                                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 sex = IdCardUtil.getSexForIdcard_new(idcard);
                                                Integer sexx = null;
                                                if (org.apache.commons.lang3.StringUtils.isNoneBlank(sex)){
                                                    sexx = Integer.parseInt(sex);
                                if (basePatientDOS==null||basePatientDOS.size()==0){
                                    basePatientDO.setDel("1");
                                    basePatientDO.setName(infoData.getString("userName"));
                                    basePatientDO.setCreateTime(new Date());
                                    basePatientDO.setUpdateTime(new Date());
                                    basePatientDO.setYktId(infoData.getString("mainAccountId"));
                                    basePatientDO.setUserId(infoData.getString("mainAccountId"));
                                    basePatientDO.setIdcard(infoData.getString("idNo"));
                                    String idcard = infoData.getString("idNo");
                                    Integer age = IdCardUtil.getAgeForIdcard(idcard);
                                    String sex = IdCardUtil.getSexForIdcard_new(idcard);
                                    Integer sexx = null;
                                    if (org.apache.commons.lang3.StringUtils.isNoneBlank(sex)){
                                        sexx = Integer.parseInt(sex);
                                    }
                                    String birthDay = infoData.getString("birthday");
                                    Date birthday = null;
                                    if (org.apache.commons.lang3.StringUtils.isNoneBlank(birthDay)){
                                        birthday = DateUtil.strToDate(birthDay+" 00:00:00");;
                                    }
                                    basePatientDO.setAge(age);
                                    basePatientDO.setBirthday(birthday);
                                    basePatientDO.setSex(sexx);
                                    basePatientDO.setMobile(mobile1);
                                    String salt = UUID.randomUUID().toString().substring(0,5);
                                    String pw = idcard.substring(idcard.length()-6,idcard.length());
                                    basePatientDO.setIdcard(idcard);
                                    basePatientDO.setPassword(MD5.md5Hex(pw + "{" + salt + "}"));
                                    basePatientDO.setSalt(salt);
                                    basePatientDO.setLocked(0);
                                    basePatientDO.setEnabled(1);
                                    basePatientDO.setPatientStatus("1");
                                    basePatientDO.setAppletsOpenId(infoData.getString("openid"));
                                    basePatientDO.setVerifyCode(accessToken);
                                    basePatientDO = basePatientDao.save(basePatientDO);
                                    JSONArray familyList = infoData.getJSONArray("patientAccountList");
                                    if (familyList!=null&&familyList.size()!=0){
                                        for (int i=0;i<familyList.size();i++){
                                            JSONObject family = familyList.getJSONObject(i);
                                            String familyMobile = family.getString("mobile");
                                            String idNo = family.getString("idNo");
                                            List<BasePatientDO> patientDOS = basePatientDao.findByIdcard(idNo);
                                            BasePatientDO patientDO = new BasePatientDO();
                                            if (patientDOS==null||patientDOS.size()==0){
                                                patientDO.setDel("1");
                                                patientDO.setName(family.getString("userName"));
                                                patientDO.setCreateTime(new Date());
                                                patientDO.setUpdateTime(new Date());
                                                patientDO.setYktId(family.getString("patientAccountId"));
                                                patientDO.setUserId(family.getString("patientAccountId"));
                                                patientDO.setIdcard(family.getString("idNo"));
                                                String idcard1 = family.getString("idNo");
                                                Integer age1 = IdCardUtil.getAgeForIdcard(idcard1);
                                                String sex1 = IdCardUtil.getSexForIdcard_new(idcard1);
                                                Integer sexx1 = null;
                                                if (org.apache.commons.lang3.StringUtils.isNoneBlank(sex1)){
                                                    sexx1 = Integer.parseInt(sex);
                                                }
                                                String birthDay = family.getString("BIRTHDAY");
                                                Date birthday = null;
                                                if (org.apache.commons.lang3.StringUtils.isNoneBlank(birthDay)){
                                                    birthday = DateUtil.strToDate(birthDay+" 00:00:00");;
                                                String birthDay1 = IdCardUtil.getBirthdayForIdcardStr(idcard1);
                                                Date birthday1 = null;
                                                if (org.apache.commons.lang3.StringUtils.isNoneBlank(birthDay1)){
                                                    birthday1 = DateUtil.strToDate(birthDay1+" 00:00:00");;
                                                }
                                                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.setIdcard(idcard);
                                                basePatientDO.setPassword(MD5.md5Hex(pw + "{" + salt + "}"));
                                                basePatientDO.setSalt(salt);
                                                basePatientDO.setLocked(0);
                                                basePatientDO.setEnabled(1);
                                                basePatientDO.setVerifyCode(jsonObject.getString("TOKEN"));
                                                basePatientDO.setPatientStatus("1");
                                                basePatientDao.save(basePatientDO);
                                                patientDO.setAge(age1);
                                                patientDO.setBirthday(birthday1);
                                                patientDO.setSex(sexx1);
                                                patientDO.setMobile(familyMobile);
                                                String salt1 = UUID.randomUUID().toString().substring(0,5);
                                                String pw1 = idcard1.substring(idcard1.length()-6,idcard1.length());
                                                patientDO.setPassword(MD5.md5Hex(pw1 + "{" + salt1 + "}"));
                                                patientDO.setSalt(salt1);
                                                patientDO.setLocked(0);
                                                patientDO.setEnabled(1);
                                                patientDO.setPatientStatus("1");
                                                patientDO.setAppletsOpenId(family.getString("mainAccountOpenid"));
                                                patientDO = basePatientDao.save(patientDO);
                                            }else {
                                                List<BasePatientDO> basePatientDOList = basePatientDao.findByMobile(tel);
                                                if(basePatientDOList==null||basePatientDOList.size()==0){
                                                    basePatientDO.setDel("1");
                                                    if (jsonObject.getString("USERNAME").length()>=2){
                                                        basePatientDO.setName(jsonObject.getString("USERNAME"));
                                                    }else {
                                                        basePatientDO.setName(tel);
                                                patientDO=patientDOS.get(0);
                                            }
                                            JSONArray cardList = family.getJSONArray("cardList");
                                            if (cardList!=null&&cardList.size()!=0){
                                                for (int j=0;j<cardList.size();j++){
                                                    JSONObject card = cardList.getJSONObject(j);
                                                    String cardNo = card.getString("cardNo");
                                                    PatientMedicareCardDO patientMedicareCardDO = patientMedicareCardDao.findByCodeAndPatientCode(cardNo,patientDO.getId());                                                if (patientMedicareCardDO==null){
                                                        patientMedicareCardDO = new PatientMedicareCardDO();
                                                        patientMedicareCardDO.setCode(cardNo);
                                                        patientMedicareCardDO.setDel("1");
                                                        patientMedicareCardDO.setPatientCode(patientDO.getId());
                                                        patientMedicareCardDO.setParentType("A");
                                                        if (card.getString("cardType").equalsIgnoreCase("1")){
                                                            patientMedicareCardDO.setType("A_01");
                                                        }else if (card.getString("cardType").equalsIgnoreCase("2")){
                                                            patientMedicareCardDO.setType("A_02");
                                                        }else if (card.getString("cardType").equalsIgnoreCase("3")){
                                                            patientMedicareCardDO.setType("A_03");
                                                        }else if (card.getString("cardType").equalsIgnoreCase("9")){
                                                            patientMedicareCardDO.setType("A_09");
                                                        }
                                                        patientMedicareCardDao.save(patientMedicareCardDO);
                                                    }
                                                    basePatientDO.setCreateTime(new Date());
                                                    basePatientDO.setUpdateTime(new Date());
                                                    basePatientDO.setYktId(jsonObject.getString("ID"));
                                                    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.setEnabled(1);
                                                    basePatientDO.setPatientStatus("1");
                                                    basePatientDao.save(basePatientDO);
                                                }
                                            }
                                        }
                                    }else {
                                        if (jsonObject.getString("USERNAME").length()>=2){
                                            basePatientDO.setName(jsonObject.getString("USERNAME"));
                                        }else {
                                            basePatientDO.setName(tel);
                                            WlyyPatientFamilyMemberDO familyMemberDO = familyMemberDao.findFamilyMemberByYktFamilyId(basePatientDO.getId(),family.getString("patientAccountId"));
                                            BasePatientMemberDictDO basePatientMemberDictDO = basePatientMemberDictDao.findOne(family.getString("relationship"));
                                            if (familyMemberDO==null){
                                                familyMemberDO = new WlyyPatientFamilyMemberDO();
                                                familyMemberDO.setIsDel(1);
                                                familyMemberDO.setFamilyMember(patientDO.getId());
                                                familyMemberDO.setPatient(basePatientDO.getId());
                                                familyMemberDO.setYktFamilyId(family.getString("patientAccountId"));
                                                familyMemberDO.setCreateTime(new Date());
                                                familyMemberDO.setUpdateTime(new Date());
                                                familyMemberDO.setCardNo(patientDO.getIdcard());
                                                familyMemberDO.setMobile(familyMobile);
                                                familyMemberDO.setCardType(family.getString("idType"));
                                                familyMemberDO.setFamilyRelation(family.getString("relationship"));
                                                if (basePatientMemberDictDO!=null){
                                                    familyMemberDO.setFamilyRelationName(basePatientMemberDictDO.getRelationName());
                                                }
                                                familyMemberDao.save(familyMemberDO);
                                            }
                                        }
                                        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.setEnabled(1);
                                        basePatientDO.setPatientStatus("1");
                                        basePatientDao.save(basePatientDO);
                                    }
                                    /*String birdth = com.yihu.jw.util.idcard.IdCardUtil.getBirthdayForIdcardStr(basePatientDO.getIdcard());
                                    Integer age = com.yihu.jw.util.idcard.IdCardUtil.getAgeForIdcard(basePatientDO.getIdcard());
                                    Integer sex = basePatientDO.getSex()!=null?basePatientDO.getSex():0;
                                    if (iliness!=null&&iliness.size()!=0){
                                        if (!iliness.contains("本人")){
                                            ykyyService.addFamily(basePatientDO.getUserId(),basePatientDO.getIdcard(),basePatientDO.getName(),sex+"",birdth,age+"",basePatientDO.getMobile());
                                }else {
                                    basePatientDO = basePatientDOS.get(0);
                                    basePatientDO.setVerifyCode(accessToken);
                                    basePatientDO.setAppletsOpenId(infoData.getString("openid"));
                                    basePatientDao.save(basePatientDO);
                                    JSONArray familyList = infoData.getJSONArray("patientAccountList");
                                    if (familyList!=null&&familyList.size()!=0){
                                        for (int i=0;i<familyList.size();i++){
                                            JSONObject family = familyList.getJSONObject(i);
                                            String familyMobile = family.getString("mobile");
                                            String idNo = family.getString("idNo");
                                            List<BasePatientDO> patientDOS = basePatientDao.findByIdcard(idNo);
                                            BasePatientDO patientDO = new BasePatientDO();
                                            if (patientDOS==null||patientDOS.size()==0){
                                                patientDO.setDel("1");
                                                patientDO.setName(family.getString("userName"));
                                                patientDO.setCreateTime(new Date());
                                                patientDO.setUpdateTime(new Date());
                                                patientDO.setYktId(family.getString("patientAccountId"));
                                                patientDO.setUserId(family.getString("patientAccountId"));
                                                patientDO.setIdcard(family.getString("idNo"));
                                                String idcard1 = family.getString("idNo");
                                                Integer age1 = IdCardUtil.getAgeForIdcard(idcard1);
                                                String sex1 = IdCardUtil.getSexForIdcard_new(idcard1);
                                                Integer sexx1 = null;
                                                if (org.apache.commons.lang3.StringUtils.isNoneBlank(sex1)){
                                                    sexx1 = Integer.parseInt(sex1);
                                                }
                                                String birthDay1 = IdCardUtil.getBirthdayForIdcardStr(idcard1);
                                                Date birthday1 = null;
                                                if (org.apache.commons.lang3.StringUtils.isNoneBlank(birthDay1)){
                                                    birthday1 = DateUtil.strToDate(birthDay1+" 00:00:00");;
                                                }
                                                patientDO.setAge(age1);
                                                patientDO.setBirthday(birthday1);
                                                patientDO.setSex(sexx1);
                                                patientDO.setMobile(familyMobile);
                                                String salt1 = UUID.randomUUID().toString().substring(0,5);
                                                String pw1 = idcard1.substring(idcard1.length()-6,idcard1.length());
                                                patientDO.setPassword(MD5.md5Hex(pw1 + "{" + salt1 + "}"));
                                                patientDO.setSalt(salt1);
                                                patientDO.setLocked(0);
                                                patientDO.setEnabled(1);
                                                patientDO.setPatientStatus("1");
                                                patientDO.setAppletsOpenId(family.getString("mainAccountOpenid"));
                                                patientDO = basePatientDao.save(patientDO);
                                            }else {
                                                patientDO=patientDOS.get(0);
                                            }
                                            JSONArray cardList = family.getJSONArray("cardList");
                                            if (cardList!=null&&cardList.size()!=0){
                                                for (int j=0;j<cardList.size();j++){
                                                    JSONObject card = cardList.getJSONObject(j);
                                                    String cardNo = card.getString("cardNo");
                                                    PatientMedicareCardDO patientMedicareCardDO = patientMedicareCardDao.findByCodeAndPatientCode(cardNo,patientDO.getId());
                                                    if (patientMedicareCardDO==null){
                                                        patientMedicareCardDO = new PatientMedicareCardDO();
                                                        patientMedicareCardDO.setCode(cardNo);
                                                        patientMedicareCardDO.setDel("1");
                                                        patientMedicareCardDO.setPatientCode(patientDO.getId());
                                                        patientMedicareCardDO.setParentType("A");
                                                        if (card.getString("cardType").equalsIgnoreCase("1")){
                                                            patientMedicareCardDO.setType("A_01");
                                                        }else if (card.getString("cardType").equalsIgnoreCase("2")){
                                                            patientMedicareCardDO.setType("A_02");
                                                        }else if (card.getString("cardType").equalsIgnoreCase("3")){
                                                            patientMedicareCardDO.setType("A_03");
                                                        }else if (card.getString("cardType").equalsIgnoreCase("9")){
                                                            patientMedicareCardDO.setType("A_09");
                                                        }
                                                        patientMedicareCardDao.save(patientMedicareCardDO);
                                                    }
                                                }
                                            }
                                            WlyyPatientFamilyMemberDO familyMemberDO = familyMemberDao.findFamilyMemberByYktFamilyId(basePatientDO.getId(),family.getString("patientAccountId"));
                                            BasePatientMemberDictDO basePatientMemberDictDO = basePatientMemberDictDao.findOne(family.getString("relationship"));
                                            if (familyMemberDO==null){
                                                familyMemberDO = new WlyyPatientFamilyMemberDO();
                                                familyMemberDO.setIsDel(1);
                                                familyMemberDO.setFamilyMember(patientDO.getId());
                                                familyMemberDO.setPatient(basePatientDO.getId());
                                                familyMemberDO.setYktFamilyId(family.getString("patientAccountId"));
                                                familyMemberDO.setCreateTime(new Date());
                                                familyMemberDO.setUpdateTime(new Date());
                                                familyMemberDO.setCardNo(patientDO.getIdcard());
                                                familyMemberDO.setMobile(familyMobile);
                                                familyMemberDO.setCardType(family.getString("idType"));
                                                familyMemberDO.setFamilyRelation(family.getString("relationship"));
                                                if (basePatientMemberDictDO!=null){
                                                    familyMemberDO.setFamilyRelationName(basePatientMemberDictDO.getRelationName());
                                                }
                                                familyMemberDao.save(familyMemberDO);
                                            }
                                        }
                                    }else {
                                        ykyyService.addFamily(basePatientDO.getUserId(),basePatientDO.getIdcard(),basePatientDO.getName(),sex+"",birdth,age+"",basePatientDO.getMobile());
                                    }*/
                                }
                            }else {
                                logger.info("======"+jsonObject.getString("USERNAME")+"======");
                                logger.info("tel"+jsonObject.getString("USERNAME"));
                                BasePatientDO basePatientDO1 = basePatientDOS.get(0);
                                if (basePatientDO1.getName()==null||basePatientDO1.getName()==""){
                                    if (jsonObject.getString("USERNAME").length()>=2){
                                        basePatientDO1.setName(jsonObject.getString("USERNAME"));
                                    }else {
                                        basePatientDO1.setName(tel);
                                    }
                                }
                                basePatientDO1.setVerifyCode(jsonObject.getString("TOKEN"));
                                basePatientDO1.setUserId(userId);
                                basePatientDao.save(basePatientDO1);
                                /*String familyList = ykyyService.getFamilyList(null,userId);
                                JSONObject familyJson = JSONObject.parseObject(familyList);
                                if (familyJson.getString("code").equalsIgnoreCase("200")){
                                    JSONObject object1 = familyJson.getJSONObject("data");
                                    JSONArray list = object1.getJSONArray("list");
                                    List<String> iliness = new ArrayList<>();
                                    if (list!=null&&list.size()!=0){
                                        for (int i=0;i<list.size();i++) {
                                            JSONObject family = list.getJSONObject(i);
                                            iliness.add(family.getString("ILLNESS"));
                                        }
                                    }
                                    String birdth = null;
                                    Integer age = 0;
                                    if (org.apache.commons.lang3.StringUtils.isNoneBlank(basePatientDO1.getIdcard())){
                                        birdth = com.yihu.jw.util.idcard.IdCardUtil.getBirthdayForIdcardStr(basePatientDO1.getIdcard());
                                        age =com.yihu.jw.util.idcard.IdCardUtil.getAgeForIdcard(basePatientDO1.getIdcard());
                                    }
                                    Integer sex = basePatientDO1.getSex()!=null?basePatientDO1.getSex():0;
                                    if (iliness!=null&&iliness.size()!=0){
                                        if (!iliness.contains("本人")){
                                            ykyyService.addFamily(basePatientDO1.getUserId(),basePatientDO1.getIdcard(),basePatientDO1.getName(),sex+"",birdth,age+"",basePatientDO1.getMobile());
                                        }
                                    }else {
                                        ykyyService.addFamily(basePatientDO1.getUserId(),basePatientDO1.getIdcard(),basePatientDO1.getName(),sex+"",birdth,age+"",basePatientDO1.getMobile());
                                    }
                                }*/
                            }
                        }
                    }else {
                        throw new Exception(resObj.getString("msg"));
                    }
                }
                parameters.remove("password");
//                String msg = "";
//                String r =ykyyService.getRegisterUser(mobile,"123456","123456","a01522","xmijk","xmijk");
//                if (!StringUtils.isEmpty(r)){
//                    JSONObject jsonObject = JSONObject.parseObject(r);
//                    if (null!=jsonObject.get("code")&&"200".equalsIgnoreCase(jsonObject.get("code").toString())){
//                        JSONObject jsonObject1 = JSONObject.parseObject(jsonObject.get("data").toString());
//                    }else if (null!=jsonObject.get("code")&&"199".equalsIgnoreCase(jsonObject.get("code").toString())){
//                        msg = jsonObject.getString("msg");
//                        logger.info("msg"+msg);
//                    }
//                }
//                String password = null;
//                String res = ykyyService.getPatientPhone(mobile);
//                if (res!=null&&res!=""){
//                    JSONObject object = JSONObject.parseObject(res);
//                    if (object.getString("code").equalsIgnoreCase("200")){
//                        password = object.getString("data");
//                    }else {
//                        WlyyUserSimple userSimple = new WlyyUserSimple();
//                        return getFailedResponse(object.getString("msg"),-1,userSimple);
//                    }
//                }
//                String response = ykyyService.yktLogin(parameters.get("username"),password);
//                if (!StringUtils.isEmpty(response)){
//                    JSONObject object = JSONObject.parseObject(response);
//                    if (!object.getString("code").equalsIgnoreCase("200")){
//                        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);
//                            if (basePatientDOS==null||basePatientDOS.size()==0){
//                                BasePatientDO basePatientDO = new BasePatientDO();
//                                String familyList = ykyyService.getFamilyList(null,userId);
//                                JSONObject familyJson = JSONObject.parseObject(familyList);
//                                if (familyJson.getString("code").equalsIgnoreCase("200")){
//                                    JSONObject object1 = familyJson.getJSONObject("data");
//                                    JSONArray list = object1.getJSONArray("list");
//                                    List<String> iliness = new ArrayList<>();
//                                    if (list!=null&&list.size()!=0){
//                                        for (int i=0;i<list.size();i++){
//                                            JSONObject family = list.getJSONObject(i);
//                                            iliness.add(family.getString("ILLNESS"));
//                                            if (family.getString("ILLNESS").equalsIgnoreCase("本人")&&tel.equalsIgnoreCase(family.getString("TEL"))){
//                                                basePatientDO.setDel("1");
//                                                basePatientDO.setName(family.getString("NAME"));
//                                                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 sex = IdCardUtil.getSexForIdcard_new(idcard);
//                                                Integer sexx = null;
//                                                if (org.apache.commons.lang3.StringUtils.isNoneBlank(sex)){
//                                                    sexx = Integer.parseInt(sex);
//                                                }
//                                                String birthDay = family.getString("BIRTHDAY");
//                                                Date birthday = null;
//                                                if (org.apache.commons.lang3.StringUtils.isNoneBlank(birthDay)){
//                                                    birthday = DateUtil.strToDate(birthDay+" 00:00:00");;
//                                                }
//                                                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.setIdcard(idcard);
//                                                basePatientDO.setPassword(MD5.md5Hex(pw + "{" + salt + "}"));
//                                                basePatientDO.setSalt(salt);
//                                                basePatientDO.setLocked(0);
//                                                basePatientDO.setEnabled(1);
//                                                basePatientDO.setVerifyCode(jsonObject.getString("TOKEN"));
//                                                basePatientDO.setPatientStatus("1");
//                                                basePatientDao.save(basePatientDO);
//                                            }else {
//                                                List<BasePatientDO> basePatientDOList = basePatientDao.findByMobile(tel);
//                                                if(basePatientDOList==null||basePatientDOList.size()==0){
//                                                    basePatientDO.setDel("1");
//                                                    if (jsonObject.getString("USERNAME").length()>=2){
//                                                        basePatientDO.setName(jsonObject.getString("USERNAME"));
//                                                    }else {
//                                                        basePatientDO.setName(tel);
//                                                    }
//                                                    basePatientDO.setCreateTime(new Date());
//                                                    basePatientDO.setUpdateTime(new Date());
//                                                    basePatientDO.setYktId(jsonObject.getString("ID"));
//                                                    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.setEnabled(1);
//                                                    basePatientDO.setPatientStatus("1");
//                                                    basePatientDao.save(basePatientDO);
//                                                }
//                                            }
//                                        }
//                                    }else {
//
//                                        if (jsonObject.getString("USERNAME").length()>=2){
//                                            basePatientDO.setName(jsonObject.getString("USERNAME"));
//                                        }else {
//                                            basePatientDO.setName(tel);
//                                        }
//                                        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.setEnabled(1);
//                                        basePatientDO.setPatientStatus("1");
//                                        basePatientDao.save(basePatientDO);
//                                    }
//                                    /*String birdth = com.yihu.jw.util.idcard.IdCardUtil.getBirthdayForIdcardStr(basePatientDO.getIdcard());
//                                    Integer age = com.yihu.jw.util.idcard.IdCardUtil.getAgeForIdcard(basePatientDO.getIdcard());
//                                    Integer sex = basePatientDO.getSex()!=null?basePatientDO.getSex():0;
//                                    if (iliness!=null&&iliness.size()!=0){
//                                        if (!iliness.contains("本人")){
//                                            ykyyService.addFamily(basePatientDO.getUserId(),basePatientDO.getIdcard(),basePatientDO.getName(),sex+"",birdth,age+"",basePatientDO.getMobile());
//                                        }
//                                    }else {
//                                        ykyyService.addFamily(basePatientDO.getUserId(),basePatientDO.getIdcard(),basePatientDO.getName(),sex+"",birdth,age+"",basePatientDO.getMobile());
//                                    }*/
//                                }
//                            }else {
//                                logger.info("======"+jsonObject.getString("USERNAME")+"======");
//                                logger.info("tel"+jsonObject.getString("USERNAME"));
//                                BasePatientDO basePatientDO1 = basePatientDOS.get(0);
//                                if (basePatientDO1.getName()==null||basePatientDO1.getName()==""){
//                                    if (jsonObject.getString("USERNAME").length()>=2){
//                                        basePatientDO1.setName(jsonObject.getString("USERNAME"));
//                                    }else {
//                                        basePatientDO1.setName(tel);
//                                    }
//                                }
//                                basePatientDO1.setVerifyCode(jsonObject.getString("TOKEN"));
//                                basePatientDO1.setUserId(userId);
//                                basePatientDao.save(basePatientDO1);
//                                /*String familyList = ykyyService.getFamilyList(null,userId);
//                                JSONObject familyJson = JSONObject.parseObject(familyList);
//                                if (familyJson.getString("code").equalsIgnoreCase("200")){
//                                    JSONObject object1 = familyJson.getJSONObject("data");
//                                    JSONArray list = object1.getJSONArray("list");
//                                    List<String> iliness = new ArrayList<>();
//                                    if (list!=null&&list.size()!=0){
//                                        for (int i=0;i<list.size();i++) {
//                                            JSONObject family = list.getJSONObject(i);
//                                            iliness.add(family.getString("ILLNESS"));
//                                        }
//                                    }
//                                    String birdth = null;
//                                    Integer age = 0;
//                                    if (org.apache.commons.lang3.StringUtils.isNoneBlank(basePatientDO1.getIdcard())){
//                                        birdth = com.yihu.jw.util.idcard.IdCardUtil.getBirthdayForIdcardStr(basePatientDO1.getIdcard());
//                                        age =com.yihu.jw.util.idcard.IdCardUtil.getAgeForIdcard(basePatientDO1.getIdcard());
//                                    }
//                                    Integer sex = basePatientDO1.getSex()!=null?basePatientDO1.getSex():0;
//                                    if (iliness!=null&&iliness.size()!=0){
//                                        if (!iliness.contains("本人")){
//                                            ykyyService.addFamily(basePatientDO1.getUserId(),basePatientDO1.getIdcard(),basePatientDO1.getName(),sex+"",birdth,age+"",basePatientDO1.getMobile());
//                                        }
//                                    }else {
//                                        ykyyService.addFamily(basePatientDO1.getUserId(),basePatientDO1.getIdcard(),basePatientDO1.getName(),sex+"",birdth,age+"",basePatientDO1.getMobile());
//                                    }
//
//                                }*/
//                            }
//                        }
//                    }
//                }
//                parameters.remove("password");
            } else if (!StringUtils.isEmpty(loginType)&&"3".equalsIgnoreCase(loginType)){
                if (wlyyRedisVerifyCodeService.verification(client_id, username, captcha)) {
                    //验证码正确
                }
//                if (wlyyRedisVerifyCodeService.verification(client_id, username, captcha)) {
//                    //验证码正确
//                }
            } else {
                //第三方同步账号模式登录
                parameters.put("grant_type", "ihealthCode");
            }
        } else {
            parameters.put("grant_type", "captcha");
            if (wxId.equalsIgnoreCase("xm_ykyy_wx")){
                parameters.put("grant_type", "ihealthCode");
//                KeyPair keyPair = (KeyPair) httpSession.getAttribute("privateKey");
//                String mobile = com.yihu.jw.security.utils.RSAUtils.decryptBase64(parameters.get("mobile"), keyPair);
//                logger.info("mobile:"+mobile);
                String res = ykyyService.loginAndMessage(username,captcha);
                if (!StringUtils.isEmpty(res)) {
                    JSONObject resObj = JSONObject.parseObject(res);
                    if (resObj.getString("code").equalsIgnoreCase("200")) {
                        JSONObject data = resObj.getJSONObject("data");
                        String accessToken = data.getString("accessToken");
                        logger.info("accessToken"+accessToken);
                        String infoRes = ykyyService.info(accessToken);
                        if (!StringUtils.isEmpty(infoRes)) {
                            JSONObject infoObj = JSONObject.parseObject(infoRes);
                            if (infoObj.getString("code").equalsIgnoreCase("200")) {
                                JSONObject infoData = infoObj.getJSONObject("data");
                                String mobile1 = infoData.getString("mobile");
                                List<BasePatientDO> basePatientDOS = basePatientDao.findByMobile(mobile1);
                                BasePatientDO basePatientDO = new BasePatientDO();
                                if (basePatientDOS == null || basePatientDOS.size() == 0) {
                                    logger.info("accessToken3333333333333333"+accessToken);
                                    basePatientDO.setDel("1");
                                    basePatientDO.setName(infoData.getString("userName"));
                                    basePatientDO.setCreateTime(new Date());
                                    basePatientDO.setUpdateTime(new Date());
                                    basePatientDO.setYktId(infoData.getString("mainAccountId"));
                                    basePatientDO.setUserId(infoData.getString("mainAccountId"));
                                    basePatientDO.setIdcard(infoData.getString("idNo"));
                                    String idcard = infoData.getString("idNo");
                                    Integer age = IdCardUtil.getAgeForIdcard(idcard);
                                    String sex = IdCardUtil.getSexForIdcard_new(idcard);
                                    Integer sexx = null;
                                    if (org.apache.commons.lang3.StringUtils.isNoneBlank(sex)) {
                                        sexx = Integer.parseInt(sex);
                                    }
                                    String birthDay = infoData.getString("birthday");
                                    Date birthday = null;
                                    if (org.apache.commons.lang3.StringUtils.isNoneBlank(birthDay)) {
                                        birthday = DateUtil.strToDate(birthDay + " 00:00:00");
                                        ;
                                    }
                                    basePatientDO.setAge(age);
                                    basePatientDO.setBirthday(birthday);
                                    basePatientDO.setSex(sexx);
                                    basePatientDO.setMobile(mobile1);
                                    String salt = UUID.randomUUID().toString().substring(0, 5);
                                    String pw = idcard.substring(idcard.length() - 6, idcard.length());
                                    basePatientDO.setIdcard(idcard);
                                    basePatientDO.setPassword(MD5.md5Hex(pw + "{" + salt + "}"));
                                    basePatientDO.setSalt(salt);
                                    basePatientDO.setLocked(0);
                                    basePatientDO.setEnabled(1);
                                    basePatientDO.setVerifyCode(accessToken);
                                    basePatientDO.setPatientStatus("1");
                                    basePatientDO.setAppletsOpenId(infoData.getString("openid"));
                                    basePatientDO = basePatientDao.save(basePatientDO);
                                    JSONArray familyList = infoData.getJSONArray("patientAccountList");
                                    if (familyList!=null&&familyList.size()!=0){
                                        for (int i = 0; i < familyList.size(); i++) {
                                            JSONObject family = familyList.getJSONObject(i);
                                            String familyMobile = family.getString("mobile");
                                            String idNo = family.getString("idNo");
                                            List<BasePatientDO> patientDOS = basePatientDao.findByIdcard(idNo);
                                            BasePatientDO patientDO = new BasePatientDO();
                                            if (patientDOS == null || patientDOS.size() == 0) {
                                                patientDO.setDel("1");
                                                patientDO.setName(family.getString("userName"));
                                                patientDO.setCreateTime(new Date());
                                                patientDO.setUpdateTime(new Date());
                                                patientDO.setYktId(family.getString("patientAccountId"));
                                                patientDO.setUserId(family.getString("patientAccountId"));
                                                patientDO.setIdcard(family.getString("idNo"));
                                                String idcard1 = family.getString("idNo");
                                                Integer age1 = IdCardUtil.getAgeForIdcard(idcard1);
                                                String sex1 = IdCardUtil.getSexForIdcard_new(idcard1);
                                                Integer sexx1 = null;
                                                if (org.apache.commons.lang3.StringUtils.isNoneBlank(sex1)) {
                                                    sexx1 = Integer.parseInt(sex);
                                                }
                                                String birthDay1 = IdCardUtil.getBirthdayForIdcardStr(idcard1);
                                                Date birthday1 = null;
                                                if (org.apache.commons.lang3.StringUtils.isNoneBlank(birthDay1)) {
                                                    birthday1 = DateUtil.strToDate(birthDay1 + " 00:00:00");
                                                    ;
                                                }
                                                patientDO.setAge(age1);
                                                patientDO.setBirthday(birthday1);
                                                patientDO.setSex(sexx1);
                                                patientDO.setMobile(familyMobile);
                                                String salt1 = UUID.randomUUID().toString().substring(0, 5);
                                                String pw1 = idcard1.substring(idcard1.length() - 6, idcard1.length());
                                                patientDO.setPassword(MD5.md5Hex(pw1 + "{" + salt1 + "}"));
                                                patientDO.setSalt(salt1);
                                                patientDO.setLocked(0);
                                                patientDO.setEnabled(1);
                                                patientDO.setPatientStatus("1");
                                                patientDO.setAppletsOpenId(family.getString("mainAccountOpenid"));
                                                patientDO = basePatientDao.save(patientDO);
                                            } else {
                                                patientDO = patientDOS.get(0);
                                            }
                                            JSONArray cardList = family.getJSONArray("cardList");
                                            if (cardList!=null&&cardList.size()!=0){
                                                for (int j = 0; j < cardList.size(); j++) {
                                                    JSONObject card = cardList.getJSONObject(j);
                                                    String cardNo = card.getString("cardNo");
                                                    PatientMedicareCardDO patientMedicareCardDO = patientMedicareCardDao.findByCodeAndPatientCode(cardNo,patientDO.getId());                                                if (patientMedicareCardDO == null) {
                                                        patientMedicareCardDO = new PatientMedicareCardDO();
                                                        patientMedicareCardDO.setCode(cardNo);
                                                        patientMedicareCardDO.setDel("1");
                                                        patientMedicareCardDO.setPatientCode(patientDO.getId());
                                                        patientMedicareCardDO.setParentType("A");
                                                        if (card.getString("cardType").equalsIgnoreCase("1")) {
                                                            patientMedicareCardDO.setType("A_01");
                                                        } else if (card.getString("cardType").equalsIgnoreCase("2")) {
                                                            patientMedicareCardDO.setType("A_02");
                                                        } else if (card.getString("cardType").equalsIgnoreCase("3")) {
                                                            patientMedicareCardDO.setType("A_03");
                                                        } else if (card.getString("cardType").equalsIgnoreCase("9")) {
                                                            patientMedicareCardDO.setType("A_09");
                                                        }
                                                        patientMedicareCardDao.save(patientMedicareCardDO);
                                                    }
                                                }
                                            }
                                            WlyyPatientFamilyMemberDO familyMemberDO = familyMemberDao.findFamilyMemberByYktFamilyId(basePatientDO.getId(), family.getString("patientAccountId"));
                                            BasePatientMemberDictDO basePatientMemberDictDO = basePatientMemberDictDao.findOne(family.getString("relationship"));
                                            if (familyMemberDO == null) {
                                                familyMemberDO = new WlyyPatientFamilyMemberDO();
                                                familyMemberDO.setIsDel(1);
                                                familyMemberDO.setFamilyMember(patientDO.getId());
                                                familyMemberDO.setPatient(basePatientDO.getId());
                                                familyMemberDO.setYktFamilyId(family.getString("patientAccountId"));
                                                familyMemberDO.setCreateTime(new Date());
                                                familyMemberDO.setUpdateTime(new Date());
                                                familyMemberDO.setCardNo(patientDO.getIdcard());
                                                familyMemberDO.setMobile(familyMobile);
                                                familyMemberDO.setCardType(family.getString("idType"));
                                                familyMemberDO.setFamilyRelation(family.getString("relationship"));
                                                if (basePatientMemberDictDO != null) {
                                                    familyMemberDO.setFamilyRelationName(basePatientMemberDictDO.getRelationName());
                                                }
                                                familyMemberDao.save(familyMemberDO);
                                            }
                                        }
                                    }
                                } else {
                                    basePatientDO = basePatientDOS.get(0);
                                    basePatientDO.setAppletsOpenId(infoData.getString("openid"));
                                    basePatientDO.setVerifyCode(accessToken);
                                    logger.info("accessToken222222222222222222"+accessToken);
                                    basePatientDao.save(basePatientDO);
                                    JSONArray familyList = infoData.getJSONArray("patientAccountList");
                                    if (familyList!=null&&familyList.size()!=0){
                                        for (int i = 0; i < familyList.size(); i++) {
                                            JSONObject family = familyList.getJSONObject(i);
                                            String familyMobile = family.getString("mobile");
                                            String idNo = family.getString("idNo");
                                            List<BasePatientDO> patientDOS = basePatientDao.findByIdcard(idNo);
                                            BasePatientDO patientDO = new BasePatientDO();
                                            if (patientDOS == null || patientDOS.size() == 0) {
                                                patientDO.setDel("1");
                                                patientDO.setName(family.getString("userName"));
                                                patientDO.setCreateTime(new Date());
                                                patientDO.setUpdateTime(new Date());
                                                patientDO.setYktId(family.getString("patientAccountId"));
                                                patientDO.setUserId(family.getString("patientAccountId"));
                                                patientDO.setIdcard(family.getString("idNo"));
                                                String idcard1 = family.getString("idNo");
                                                Integer age1 = IdCardUtil.getAgeForIdcard(idcard1);
                                                String sex1 = IdCardUtil.getSexForIdcard_new(idcard1);
                                                Integer sexx1 = null;
                                                if (org.apache.commons.lang3.StringUtils.isNoneBlank(sex1)) {
                                                    sexx1 = Integer.parseInt(sex1);
                                                }
                                                String birthDay1 = IdCardUtil.getBirthdayForIdcardStr(idcard1);
                                                Date birthday1 = null;
                                                if (org.apache.commons.lang3.StringUtils.isNoneBlank(birthDay1)) {
                                                    birthday1 = DateUtil.strToDate(birthDay1 + " 00:00:00");
                                                    ;
                                                }
                                                patientDO.setAge(age1);
                                                patientDO.setBirthday(birthday1);
                                                patientDO.setSex(sexx1);
                                                patientDO.setMobile(familyMobile);
                                                String salt1 = UUID.randomUUID().toString().substring(0, 5);
                                                String pw1 = idcard1.substring(idcard1.length() - 6, idcard1.length());
                                                patientDO.setPassword(MD5.md5Hex(pw1 + "{" + salt1 + "}"));
                                                patientDO.setSalt(salt1);
                                                patientDO.setLocked(0);
                                                patientDO.setEnabled(1);
                                                patientDO.setPatientStatus("1");
                                                patientDO.setAppletsOpenId(family.getString("mainAccountOpenid"));
                                                patientDO = basePatientDao.save(patientDO);
                                            } else {
                                                patientDO = patientDOS.get(0);
                                            }
                                            JSONArray cardList = family.getJSONArray("cardList");
                                            if (cardList!=null&&cardList.size()!=0){
                                                for (int j = 0; j < cardList.size(); j++) {
                                                    JSONObject card = cardList.getJSONObject(j);
                                                    String cardNo = card.getString("cardNo");
                                                    PatientMedicareCardDO patientMedicareCardDO = patientMedicareCardDao.findByCodeAndPatientCode(cardNo,patientDO.getId());                                                if (patientMedicareCardDO == null) {
                                                        patientMedicareCardDO = new PatientMedicareCardDO();
                                                        patientMedicareCardDO.setCode(cardNo);
                                                        patientMedicareCardDO.setDel("1");
                                                        patientMedicareCardDO.setPatientCode(patientDO.getId());
                                                        patientMedicareCardDO.setParentType("A");
                                                        if (card.getString("cardType").equalsIgnoreCase("1")) {
                                                            patientMedicareCardDO.setType("A_01");
                                                        } else if (card.getString("cardType").equalsIgnoreCase("2")) {
                                                            patientMedicareCardDO.setType("A_02");
                                                        } else if (card.getString("cardType").equalsIgnoreCase("3")) {
                                                            patientMedicareCardDO.setType("A_03");
                                                        } else if (card.getString("cardType").equalsIgnoreCase("9")) {
                                                            patientMedicareCardDO.setType("A_09");
                                                        }
                                                        patientMedicareCardDao.save(patientMedicareCardDO);
                                                    }
                                                }
                                            }
                                            WlyyPatientFamilyMemberDO familyMemberDO = familyMemberDao.findFamilyMemberByYktFamilyId(basePatientDO.getId(), family.getString("patientAccountId"));
                                            BasePatientMemberDictDO basePatientMemberDictDO = basePatientMemberDictDao.findOne(family.getString("relationship"));
                                            if (familyMemberDO == null) {
                                                familyMemberDO = new WlyyPatientFamilyMemberDO();
                                                familyMemberDO.setIsDel(1);
                                                familyMemberDO.setFamilyMember(patientDO.getId());
                                                familyMemberDO.setPatient(basePatientDO.getId());
                                                familyMemberDO.setYktFamilyId(family.getString("patientAccountId"));
                                                familyMemberDO.setCreateTime(new Date());
                                                familyMemberDO.setUpdateTime(new Date());
                                                familyMemberDO.setCardNo(patientDO.getIdcard());
                                                familyMemberDO.setMobile(familyMobile);
                                                familyMemberDO.setCardType(family.getString("idType"));
                                                familyMemberDO.setFamilyRelation(family.getString("relationship"));
                                                if (basePatientMemberDictDO != null) {
                                                    familyMemberDO.setFamilyRelationName(basePatientMemberDictDO.getRelationName());
                                                }
                                                familyMemberDao.save(familyMemberDO);
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    } else {
                        throw new Exception(resObj.getString("msg"));
                    }
                }
            }else {
                parameters.put("grant_type", "captcha");
            }
        }
        logger.info("登陆111111111111111111");
        ClientDetails authenticatedClient = clientDetailsService.loadClientByClientId(client_id);
@ -3586,8 +4143,11 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
        if (!StringUtils.isEmpty(appletCode)){
            Map<String,Object> objectMap = checkApplets(appletCode,wxWechatDO.getApplets(),wxWechatDO.getAppletsSecret());
            if (objectMap!=null){
                appletOpenid = objectMap.get("openid").toString();
                userDetailsService.updateOpenId(appletOpenid, wlyyUserSimple.getId());
                if (objectMap.get("openid")!=null){
                    appletOpenid = objectMap.get("openid").toString();
                    userDetailsService.updateOpenId(appletOpenid, wlyyUserSimple.getId());
                }
            }
        }
        userDetailsService.setRolePhth(loginType, token, wlyyUserSimple.getId(), redisTemplate);

+ 364 - 95
server/svr-authentication/src/main/java/com/yihu/jw/security/oauth2/provider/endpoint/WlyyYkyyEndpoint.java

@ -1,16 +1,24 @@
package com.yihu.jw.security.oauth2.provider.endpoint;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.base.login.BaseLoginLogDO;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.base.patient.PatientMedicareCardDO;
import com.yihu.jw.entity.hospital.family.BasePatientMemberDictDO;
import com.yihu.jw.entity.hospital.family.WlyyPatientFamilyMemberDO;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.security.core.userdetails.jdbc.WlyyUserDetailsService;
import com.yihu.jw.security.dao.doctor.BaseDoctorDao;
import com.yihu.jw.security.dao.patient.BasePatientDao;
import com.yihu.jw.security.dao.patient.BasePatientMedicareCardDao;
import com.yihu.jw.security.dao.patient.BasePatientMemberDictDao;
import com.yihu.jw.security.dao.patient.WlyyPatientFamilyMemberDao;
import com.yihu.jw.security.login.service.BaseLoginLogService;
import com.yihu.jw.security.model.WlyyUserSimple;
import com.yihu.jw.security.oauth2.provider.WlyyTokenGranter;
import com.yihu.jw.security.service.OauthYlzConfigService;
import com.yihu.jw.security.service.YkyyService;
import com.yihu.jw.security.utils.DateUtil;
import com.yihu.jw.security.utils.IdCardUtil;
@ -75,6 +83,14 @@ public class WlyyYkyyEndpoint extends AbstractEndpoint {
    private WlyyTokenGranter tokenGranter;
    @Autowired
    private BasePatientDao basePatientDao;
    @Autowired
    private WlyyPatientFamilyMemberDao familyMemberDao;
    @Autowired
    private BasePatientMemberDictDao basePatientMemberDictDao;
    @Autowired
    private BasePatientMedicareCardDao patientMedicareCardDao;
    @Autowired
    private OauthYlzConfigService oauthYlzConfigService;
    @PostConstruct
@ -289,7 +305,7 @@ public class WlyyYkyyEndpoint extends AbstractEndpoint {
     * @return
     */
    @RequestMapping(value = "/oauth/yktPatientLogin", method = RequestMethod.POST)
    public ObjEnvelop yktPatientLogin(String verifyCode, String client_id,String login_type) {
    public ObjEnvelop yktPatientLogin(String verifyCode, String client_id,String login_type,String idcard,String patientName) throws Exception {
        if (StringUtils.isEmpty(client_id)) {
            throw new InvalidRequestException("client_id is null");
@ -299,122 +315,375 @@ public class WlyyYkyyEndpoint extends AbstractEndpoint {
            throw new InvalidRequestException("login_type is null");
        }
        try {
            logger.info("verifyCode :"+verifyCode);
        logger.info("verifyCode :"+verifyCode);
            String data = ykyyService.info(verifyCode);
            JSONObject jsonObject = JSONObject.parseObject(data);
            if(!jsonObject.getString("code").equalsIgnoreCase("200")){
                logger.info(jsonObject.getString("message"));
                return ObjEnvelop.getError("授权登录失败!");
            }
            JSONObject value = jsonObject.getJSONObject("data");
            String userId = value.getString("mainAccountId");
            String tel = value.getString("mobile");
            String idCard = value.getString("idNo");
            String yktId = value.getString("mainAccountId");
            String name = value.getString("nickName");
        String data = ykyyService.info(verifyCode);
        JSONObject jsonObject = JSONObject.parseObject(data);
        if(!jsonObject.getString("code").equalsIgnoreCase("200")){
            logger.info(jsonObject.getString("message"));
            return ObjEnvelop.getError("授权登录失败!");
        }
        JSONObject value = jsonObject.getJSONObject("data");
        String userId = value.getString("mainAccountId");
        String tel = value.getString("mobile");
        String idCard = value.getString("idNo");
        String yktId = value.getString("mainAccountId");
        String name = value.getString("nickName");
        String openid = value.getString("openid");
            List<BasePatientDO> basePatientDOS = basePatientDao.findByMobile(tel);
        List<BasePatientDO> basePatientDOS = basePatientDao.findByMobile(tel);
//            String idCard = "352103197207090030";
            if(basePatientDOS == null||basePatientDOS.size()==0){
                BasePatientDO basePatientDO = new BasePatientDO();
                basePatientDO.setDel("1");
                basePatientDO.setName(name);
                basePatientDO.setCreateTime(new Date());
                basePatientDO.setUpdateTime(new Date());
                basePatientDO.setYktId(yktId);
                basePatientDO.setUserId(userId);
                basePatientDO.setIdcard(idCard);
                if (org.apache.commons.lang3.StringUtils.isNoneBlank(idCard)){
                    Integer age = IdCardUtil.getAgeForIdcard(idCard);
                    String sex = IdCardUtil.getSexForIdcard_new(idCard);
                    Integer sexx = null;
                    if (org.apache.commons.lang3.StringUtils.isNoneBlank(sex)){
                        sexx = Integer.parseInt(sex);
                    }
                    basePatientDO.setSex(sexx);
                    String birthday = IdCardUtil.getBirthdayForIdcardStr(idCard);
                    Date birthDay = null;
                    if (org.apache.commons.lang3.StringUtils.isNoneBlank(birthday)){
                        birthDay = DateUtil.strToDate(birthday+" 00:00:00");;
                    }
                    basePatientDO.setBirthday(birthDay);
        if(basePatientDOS == null||basePatientDOS.size()==0){
            BasePatientDO basePatientDO = new BasePatientDO();
            basePatientDO.setDel("1");
            basePatientDO.setName(name);
            basePatientDO.setCreateTime(new Date());
            basePatientDO.setUpdateTime(new Date());
            basePatientDO.setYktId(yktId);
            basePatientDO.setUserId(userId);
            basePatientDO.setIdcard(idCard);
            basePatientDO.setAppletsOpenId(openid);
            basePatientDO.setVerifyCode(verifyCode);
            if (org.apache.commons.lang3.StringUtils.isNoneBlank(idCard)){
                Integer age = IdCardUtil.getAgeForIdcard(idCard);
                String sex = IdCardUtil.getSexForIdcard_new(idCard);
                Integer sexx = null;
                if (org.apache.commons.lang3.StringUtils.isNoneBlank(sex)){
                    sexx = Integer.parseInt(sex);
                }
                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.setEnabled(1);
                basePatientDO.setPatientStatus("1");
                basePatientDao.save(basePatientDO);
            }else {
                BasePatientDO basePatientDO = basePatientDOS.get(0);
                basePatientDO.setIdcard(idCard);
                if (org.apache.commons.lang3.StringUtils.isNoneBlank(idCard)){
                    Integer age = IdCardUtil.getAgeForIdcard(idCard);
                    String sex = IdCardUtil.getSexForIdcard_new(idCard);
                    Integer sexx = null;
                    if (org.apache.commons.lang3.StringUtils.isNoneBlank(sex)){
                        sexx = Integer.parseInt(sex);
                basePatientDO.setSex(sexx);
                String birthday = IdCardUtil.getBirthdayForIdcardStr(idCard);
                Date birthDay = null;
                if (org.apache.commons.lang3.StringUtils.isNoneBlank(birthday)){
                    birthDay = DateUtil.strToDate(birthday+" 00:00:00");;
                }
                basePatientDO.setBirthday(birthDay);
            }
            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.setEnabled(1);
            basePatientDO.setPatientStatus("1");
            basePatientDO = basePatientDao.save(basePatientDO);
            oauthYlzConfigService.deleteMember(basePatientDO.getId());
            JSONArray familyList = value.getJSONArray("patientAccountList");
            if (familyList!=null&&familyList.size()!=0){
                for (int i=0;i<familyList.size();i++){
                    JSONObject family = familyList.getJSONObject(i);
                    String familyMobile = family.getString("mobile");
                    String idNo = family.getString("idNo");
                    List<BasePatientDO> patientDOS = basePatientDao.findByIdcard(idNo);
                    BasePatientDO patientDO = new BasePatientDO();
                    if (patientDOS==null||patientDOS.size()==0){
                        patientDO.setDel("1");
                        patientDO.setName(family.getString("userName"));
                        patientDO.setCreateTime(new Date());
                        patientDO.setUpdateTime(new Date());
                        patientDO.setYktId(family.getString("patientAccountId"));
                        patientDO.setUserId(family.getString("patientAccountId"));
                        patientDO.setIdcard(family.getString("idNo"));
                        String idcard1 = family.getString("idNo");
                        Integer age1 = IdCardUtil.getAgeForIdcard(idcard1);
                        String sex1 = IdCardUtil.getSexForIdcard_new(idcard1);
                        Integer sexx1 = null;
                        if (org.apache.commons.lang3.StringUtils.isNoneBlank(sex1)){
                            sexx1 = Integer.parseInt(sex1);
                        }
                        String birthDay1 = IdCardUtil.getBirthdayForIdcardStr(idcard1);
                        Date birthday1 = null;
                        if (org.apache.commons.lang3.StringUtils.isNoneBlank(birthDay1)){
                            birthday1 = DateUtil.strToDate(birthDay1+" 00:00:00");;
                        }
                        patientDO.setAge(age1);
                        patientDO.setBirthday(birthday1);
                        patientDO.setSex(sexx1);
                        patientDO.setMobile(familyMobile);
                        String salt1 = UUID.randomUUID().toString().substring(0,5);
                        String pw1 = idcard1.substring(idcard1.length()-6,idcard1.length());
                        patientDO.setPassword(MD5.md5Hex(pw1 + "{" + salt1 + "}"));
                        patientDO.setSalt(salt1);
                        patientDO.setLocked(0);
                        patientDO.setEnabled(1);
                        patientDO.setPatientStatus("1");
                        patientDO.setAppletsOpenId(family.getString("mainAccountOpenid"));
                        patientDO = basePatientDao.save(patientDO);
                    }else {
                        patientDO=patientDOS.get(0);
                    }
                    basePatientDO.setSex(sexx);
                    String birthday = IdCardUtil.getBirthdayForIdcardStr(idCard);
                    Date birthDay = null;
                    if (org.apache.commons.lang3.StringUtils.isNoneBlank(birthday)){
                        birthDay = DateUtil.strToDate(birthday+" 00:00:00");;
                    JSONArray cardList = family.getJSONArray("cardList");
                    if (cardList!=null&&cardList.size()!=0){
                        for (int j=0;j<cardList.size();j++){
                            JSONObject card = cardList.getJSONObject(j);
                            String cardNo = card.getString("cardNo");
                            PatientMedicareCardDO patientMedicareCardDO = patientMedicareCardDao.findByCodeAndPatientCode(cardNo,patientDO.getId());
                            if (patientMedicareCardDO==null){
                                patientMedicareCardDO = new PatientMedicareCardDO();
                                patientMedicareCardDO.setCode(cardNo);
                                patientMedicareCardDO.setDel("1");
                                patientMedicareCardDO.setPatientCode(patientDO.getId());
                                patientMedicareCardDO.setParentType("A");
                                if (card.getString("cardType").equalsIgnoreCase("1")){
                                    patientMedicareCardDO.setType("A_01");
                                }else if (card.getString("cardType").equalsIgnoreCase("2")){
                                    patientMedicareCardDO.setType("A_02");
                                }else if (card.getString("cardType").equalsIgnoreCase("3")){
                                    patientMedicareCardDO.setType("A_03");
                                }else if (card.getString("cardType").equalsIgnoreCase("9")){
                                    patientMedicareCardDO.setType("A_09");
                                }
                                patientMedicareCardDao.save(patientMedicareCardDO);
                            }
                        }
                    }
                    basePatientDO.setBirthday(birthDay);
                    WlyyPatientFamilyMemberDO familyMemberDO = familyMemberDao.findFamilyMemberByYktFamilyId(basePatientDO.getId(),family.getString("patientAccountId"));
                    BasePatientMemberDictDO basePatientMemberDictDO = basePatientMemberDictDao.findOne(family.getString("relationship"));
                    if (familyMemberDO==null){
                        familyMemberDO = new WlyyPatientFamilyMemberDO();
                        familyMemberDO.setIsDel(1);
                        familyMemberDO.setFamilyMember(patientDO.getId());
                        familyMemberDO.setPatient(basePatientDO.getId());
                        familyMemberDO.setYktFamilyId(family.getString("patientAccountId"));
                        familyMemberDO.setCreateTime(new Date());
                        familyMemberDO.setUpdateTime(new Date());
                        familyMemberDO.setCardNo(patientDO.getIdcard());
                        familyMemberDO.setMobile(familyMobile);
                        familyMemberDO.setCardType(family.getString("idType"));
                        familyMemberDO.setFamilyRelation(family.getString("relationship"));
                        if (basePatientMemberDictDO!=null){
                            familyMemberDO.setFamilyRelationName(basePatientMemberDictDO.getRelationName());
                        }
                        familyMemberDao.save(familyMemberDO);
                    }
                }
            }
            if (idcard!=null&&idcard!=""){
                BasePatientDO basePatientDO1 = basePatientDao.findByIdcardAndDel(idcard,"1");
                if (basePatientDO1==null){
                    basePatientDO1 = new BasePatientDO();
                    basePatientDO1.setDel("1");
                    basePatientDO1.setName(patientName);
                    basePatientDO1.setCreateTime(new Date());
                    basePatientDO1.setUpdateTime(new Date());
                    basePatientDO1.setIdcard(idcard);
                    basePatientDO1.setMobile("");
                    basePatientDO1.setLocked(0);
                    basePatientDO1.setEnabled(1);
                    basePatientDO1.setPatientStatus("1");
                    basePatientDO1.setAppletsOpenId(basePatientDO.getAppletsOpenId());
                    basePatientDO1 = basePatientDao.save(basePatientDO1);
                }
                WlyyPatientFamilyMemberDO familyMemberDO = familyMemberDao.findFamilyMemberByCardNo(basePatientDO.getId(),idcard);
                if (familyMemberDO==null){
                    familyMemberDO = new WlyyPatientFamilyMemberDO();
                    familyMemberDO.setIsDel(1);
                    familyMemberDO.setFamilyMember(basePatientDO1.getId());
                    familyMemberDO.setPatient(basePatientDO.getId());
                    familyMemberDO.setCreateTime(new Date());
                    familyMemberDO.setUpdateTime(new Date());
                    familyMemberDO.setCardNo(idcard);
                    familyMemberDO.setMobile(basePatientDO.getMobile());
                    familyMemberDO.setCardType("1");
                    familyMemberDO.setFamilyRelation("OTHER");
                    familyMemberDao.save(familyMemberDO);
                    ykyyService.add(patientName,"1",idcard,basePatientDO.getMobile(),"OTHER","","",basePatientDO.getVerifyCode());
                }
                basePatientDao.save(basePatientDO);
            }
            ClientDetails authenticatedClient = clientDetailsService.loadClientByClientId(client_id);
        }else {
            BasePatientDO basePatientDO = basePatientDOS.get(0);
            basePatientDO.setVerifyCode(verifyCode);
            basePatientDO.setIdcard(idCard);
            if (org.apache.commons.lang3.StringUtils.isNoneBlank(idCard)){
                Integer age = IdCardUtil.getAgeForIdcard(idCard);
                String sex = IdCardUtil.getSexForIdcard_new(idCard);
                Integer sexx = null;
                if (org.apache.commons.lang3.StringUtils.isNoneBlank(sex)){
                    sexx = Integer.parseInt(sex);
                }
                basePatientDO.setSex(sexx);
                String birthday = IdCardUtil.getBirthdayForIdcardStr(idCard);
                Date birthDay = null;
                if (org.apache.commons.lang3.StringUtils.isNoneBlank(birthday)){
                    birthDay = DateUtil.strToDate(birthday+" 00:00:00");;
                }
                basePatientDO.setBirthday(birthDay);
            Map<String, String> parameters = new HashedMap();
            }
            basePatientDO.setAppletsOpenId(openid);
            basePatientDO=basePatientDao.save(basePatientDO);
            oauthYlzConfigService.deleteMember(basePatientDO.getId());
            JSONArray familyList = value.getJSONArray("patientAccountList");
            if (familyList!=null&&familyList.size()!=0){
                for (int i=0;i<familyList.size();i++){
                    JSONObject family = familyList.getJSONObject(i);
                    String familyMobile = family.getString("mobile");
                    String idNo = family.getString("idNo");
                    List<BasePatientDO> patientDOS = basePatientDao.findByIdcard(idNo);
                    BasePatientDO patientDO = new BasePatientDO();
                    if (patientDOS==null||patientDOS.size()==0){
                        patientDO.setDel("1");
                        patientDO.setName(family.getString("userName"));
                        patientDO.setCreateTime(new Date());
                        patientDO.setUpdateTime(new Date());
                        patientDO.setYktId(family.getString("patientAccountId"));
                        patientDO.setUserId(family.getString("patientAccountId"));
                        patientDO.setIdcard(family.getString("idNo"));
                        String idcard1 = family.getString("idNo");
                        Integer age1 = IdCardUtil.getAgeForIdcard(idcard1);
                        String sex1 = IdCardUtil.getSexForIdcard_new(idcard1);
                        Integer sexx1 = null;
                        if (org.apache.commons.lang3.StringUtils.isNoneBlank(sex1)){
                            sexx1 = Integer.parseInt(sex1);
                        }
                        String birthDay1 = IdCardUtil.getBirthdayForIdcardStr(idcard1);
                        Date birthday1 = null;
                        if (org.apache.commons.lang3.StringUtils.isNoneBlank(birthDay1)){
                            birthday1 = DateUtil.strToDate(birthDay1+" 00:00:00");;
                        }
                        patientDO.setAge(age1);
                        patientDO.setBirthday(birthday1);
                        patientDO.setSex(sexx1);
                        patientDO.setMobile(familyMobile);
                        String salt1 = UUID.randomUUID().toString().substring(0,5);
                        String pw1 = idcard1.substring(idcard1.length()-6,idcard1.length());
                        patientDO.setPassword(MD5.md5Hex(pw1 + "{" + salt1 + "}"));
                        patientDO.setSalt(salt1);
                        patientDO.setLocked(0);
                        patientDO.setEnabled(1);
                        patientDO.setPatientStatus("1");
                        patientDO.setAppletsOpenId(family.getString("mainAccountOpenid"));
                        patientDO = basePatientDao.save(patientDO);
                    }else {
                        patientDO=patientDOS.get(0);
                    }
                    JSONArray cardList = family.getJSONArray("cardList");
                    if (cardList!=null&&cardList.size()!=0){
                        for (int j=0;j<cardList.size();j++){
                            JSONObject card = cardList.getJSONObject(j);
                            String cardNo = card.getString("cardNo");
                            PatientMedicareCardDO patientMedicareCardDO = patientMedicareCardDao.findByCodeAndPatientCode(cardNo,patientDO.getId());
                            if (patientMedicareCardDO==null){
                                patientMedicareCardDO = new PatientMedicareCardDO();
                                patientMedicareCardDO.setCode(cardNo);
                                patientMedicareCardDO.setDel("1");
                                patientMedicareCardDO.setPatientCode(patientDO.getId());
                                patientMedicareCardDO.setParentType("A");
                                if (card.getString("cardType").equalsIgnoreCase("1")){
                                    patientMedicareCardDO.setType("A_01");
                                }else if (card.getString("cardType").equalsIgnoreCase("2")){
                                    patientMedicareCardDO.setType("A_02");
                                }else if (card.getString("cardType").equalsIgnoreCase("3")){
                                    patientMedicareCardDO.setType("A_03");
                                }else if (card.getString("cardType").equalsIgnoreCase("9")){
                                    patientMedicareCardDO.setType("A_09");
                                }
                                patientMedicareCardDao.save(patientMedicareCardDO);
                            }
                        }
                    }
            parameters.put("username", tel);
            parameters.put("grant_type", "ihealthCode");
                    WlyyPatientFamilyMemberDO familyMemberDO = familyMemberDao.findFamilyMemberByYktFamilyId(basePatientDO.getId(),family.getString("patientAccountId"));
                    BasePatientMemberDictDO basePatientMemberDictDO = basePatientMemberDictDao.findOne(family.getString("relationship"));
                    if (familyMemberDO==null){
                        familyMemberDO = new WlyyPatientFamilyMemberDO();
                        familyMemberDO.setIsDel(1);
                        familyMemberDO.setFamilyMember(patientDO.getId());
                        familyMemberDO.setPatient(basePatientDO.getId());
                        familyMemberDO.setYktFamilyId(family.getString("patientAccountId"));
                        familyMemberDO.setCreateTime(new Date());
                        familyMemberDO.setUpdateTime(new Date());
                        familyMemberDO.setCardNo(patientDO.getIdcard());
                        familyMemberDO.setMobile(familyMobile);
                        familyMemberDO.setCardType(family.getString("idType"));
                        familyMemberDO.setFamilyRelation(family.getString("relationship"));
                        if (basePatientMemberDictDO!=null){
                            familyMemberDO.setFamilyRelationName(basePatientMemberDictDO.getRelationName());
                        }
                        familyMemberDao.save(familyMemberDO);
            TokenRequest tokenRequest = oAuth2RequestFactory.createTokenRequest(parameters, authenticatedClient);
            if (authenticatedClient != null) {
                oAuth2RequestValidator.validateScope(tokenRequest, authenticatedClient);
                    }
                }
            }
            OAuth2AccessToken token = getTokenGranter().grant(tokenRequest.getGrantType(), tokenRequest);
            if (token == null) {
                throw new UnsupportedGrantTypeException("Unsupported grant type: " + tokenRequest.getGrantType());
            if (idcard!=null&&idcard!=""){
                BasePatientDO basePatientDO1 = basePatientDao.findByIdcardAndDel(idcard,"1");
                if (basePatientDO1==null){
                    basePatientDO1 = new BasePatientDO();
                    basePatientDO1.setDel("1");
                    basePatientDO1.setName(patientName);
                    basePatientDO1.setCreateTime(new Date());
                    basePatientDO1.setUpdateTime(new Date());
                    basePatientDO1.setIdcard(idcard);
                    basePatientDO1.setMobile("");
                    basePatientDO1.setLocked(0);
                    basePatientDO1.setEnabled(1);
                    basePatientDO1.setPatientStatus("1");
                    basePatientDO1.setAppletsOpenId(basePatientDO.getAppletsOpenId());
                    basePatientDO1 = basePatientDao.save(basePatientDO1);
                }
                WlyyPatientFamilyMemberDO familyMemberDO = familyMemberDao.findFamilyMemberByCardNo(basePatientDO.getId(),idcard);
                if (familyMemberDO==null){
                    familyMemberDO = new WlyyPatientFamilyMemberDO();
                    familyMemberDO.setIsDel(1);
                    familyMemberDO.setFamilyMember(basePatientDO1.getId());
                    familyMemberDO.setPatient(basePatientDO.getId());
                    familyMemberDO.setCreateTime(new Date());
                    familyMemberDO.setUpdateTime(new Date());
                    familyMemberDO.setCardNo(idcard);
                    familyMemberDO.setMobile(basePatientDO.getMobile());
                    familyMemberDO.setCardType("1");
                    familyMemberDO.setFamilyRelation("OTHER");
                    familyMemberDao.save(familyMemberDO);
                    ykyyService.add(patientName,"1",idcard,basePatientDO.getMobile(),"OTHER","","",basePatientDO.getVerifyCode());
                }
            }
        }
            WlyyUserSimple wlyyUserSimple = userDetailsService.authSuccess(parameters.get("username"));
            wlyyUserSimple.setAccessToken(token.getValue());
            wlyyUserSimple.setTokenType(token.getTokenType());
            wlyyUserSimple.setExpiresIn(token.getExpiresIn());
            wlyyUserSimple.setRefreshToken(token.getRefreshToken().getValue());
            wlyyUserSimple.setUser(parameters.get("username"));
            String loginType = parameters.get("login_type");
        ClientDetails authenticatedClient = clientDetailsService.loadClientByClientId(client_id);
            BaseLoginLogDO baseLoginLogDO = new BaseLoginLogDO();
            userDetailsService.setRolePhth(loginType, token, wlyyUserSimple.getId(), redisTemplate);
        Map<String, String> parameters = new HashedMap();
            baseLoginLogDO.setUserId(wlyyUserSimple.getId());
            baseLoginLogDO.setCreateTime(new Date());
            String userAgent = JSONObject.toJSONString(wlyyUserSimple);
            baseLoginLogDO.setUserAgent(userAgent);
            baseLoginLogDO.setLoginType(loginType);
            baseLoginLogService.save(baseLoginLogDO);
        parameters.put("username", tel);
        parameters.put("grant_type", "ihealthCode");
            return ObjEnvelop.getSuccess("success",wlyyUserSimple);
        }catch (Exception e){
            logger.error(e);
        TokenRequest tokenRequest = oAuth2RequestFactory.createTokenRequest(parameters, authenticatedClient);
        if (authenticatedClient != null) {
            oAuth2RequestValidator.validateScope(tokenRequest, authenticatedClient);
        }
        return ObjEnvelop.getError("登录失败!");
        OAuth2AccessToken token = getTokenGranter().grant(tokenRequest.getGrantType(), tokenRequest);
        if (token == null) {
            throw new UnsupportedGrantTypeException("Unsupported grant type: " + tokenRequest.getGrantType());
        }
        WlyyUserSimple wlyyUserSimple = userDetailsService.authSuccess(parameters.get("username"));
        wlyyUserSimple.setAccessToken(token.getValue());
        wlyyUserSimple.setTokenType(token.getTokenType());
        wlyyUserSimple.setExpiresIn(token.getExpiresIn());
        wlyyUserSimple.setRefreshToken(token.getRefreshToken().getValue());
        wlyyUserSimple.setUser(parameters.get("username"));
        String loginType = parameters.get("login_type");
        BaseLoginLogDO baseLoginLogDO = new BaseLoginLogDO();
        userDetailsService.setRolePhth(loginType, token, wlyyUserSimple.getId(), redisTemplate);
        baseLoginLogDO.setUserId(wlyyUserSimple.getId());
        baseLoginLogDO.setCreateTime(new Date());
        String userAgent = JSONObject.toJSONString(wlyyUserSimple);
        baseLoginLogDO.setUserAgent(userAgent);
        baseLoginLogDO.setLoginType(loginType);
        baseLoginLogService.save(baseLoginLogDO);
        return ObjEnvelop.getSuccess("success",wlyyUserSimple);
    }

+ 5 - 0
server/svr-authentication/src/main/java/com/yihu/jw/security/service/OauthYlzConfigService.java

@ -307,4 +307,9 @@ public class OauthYlzConfigService {
        rsMap.put("sMes","请求失败");
        return rsMap;
    }
    @Transactional
    public void deleteMember(String patientId){
        familyMemberDao.deleteByPatient(patientId);
    }
}

+ 34 - 15
server/svr-authentication/src/main/java/com/yihu/jw/security/service/YkyyService.java

@ -18,6 +18,7 @@ import com.yihu.jw.security.dao.doctor.BaseDoctorRoleDao;
import com.yihu.jw.security.dao.doctor.DoctorMappingDao;
import com.yihu.jw.security.dao.patient.BasePatientDao;
import com.yihu.jw.security.utils.SignGenerator;
import com.yihu.jw.sms.util.ykyy.vo.ResultMsg;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.util.http.HttpClientUtil;
import com.yihu.jw.util.idcard.IdCardUtil;
@ -670,14 +671,14 @@ public class YkyyService {
    //===========================新眼科通==================================
    private static String newYktUrl = "https://test.yanketong.com";
    private static String newYktUrl = "https://huaxia.yanketong.com";
    /**
     * 发送短信
     *
     * @param mobile
     * @param scene 场景,EXT_LOGIN - 登录,EXT_REGISTER - 注册
     *
     * @param scene EXT_LOGIN - 登录,EXT_REGISTER - 注册
     * 枚举值:
     * LOGIN
     * REGISTER
@ -689,14 +690,17 @@ public class YkyyService {
     * EXT_REGISTER
     * @return
     */
    public String sendMessage(String mobile,String scene){
    public String sendSms(String mobile,String scene){
        String url = newYktUrl+"/api/ext/ykt/open/sms/code/send";
        Map<String, Object> params = new HashMap<>();
        params.put("mobile", mobile);
        params.put("scene", scene);
        return SignGenerator.requestYkt(params,url);
        String res = SignGenerator.requestYkt(params,url);
        return res;
    }
    /**
     * 添加就诊人
     *
@ -717,16 +721,23 @@ public class YkyyService {
     * SELF
     * @return
     */
    public String add(String type,String userName,String idType,String idNo,String mobile,String relationship){
    public String add(String userName,String idType,String idNo,String mobile,String relationship,String cardType,String cardNo,String authorization){
        String url = newYktUrl+"/api/ext/ykt/patient/add";
        Map<String, Object> params = new HashMap<>();
        params.put("type", type);
        if (StringUtils.isNoneBlank(cardType)){
            params.put("cardType", cardType);
        }
        if (StringUtils.isNoneBlank(cardNo)){
            params.put("cardNo", cardNo);
        }
        params.put("userName", userName);
        params.put("idType", idType);
        params.put("idNo", idNo);
        params.put("mobile", mobile);
        params.put("relationship", relationship);
        return SignGenerator.requestYkt(params,url);
        Map<String,String> headerParams = new HashMap<>();
        headerParams.put("Authorization","Bearer "+authorization);
        return SignGenerator.requestYktAndHeader(params,headerParams,url);
    }
    /**
@ -751,18 +762,13 @@ public class YkyyService {
     *
     * 注册
     * @param mobile
     * @param userName
     * @param idType 证件类型:1-二代身份证 2-外国人永久居住证 3-中国护照 4-非中国护照 5-港澳居民来往内地通行证 6-台湾居民来往内地通行证 7-港澳居民居住证 8-台湾居家居住证
     * @param idNo
     * @return
     */
    public String register(String mobile,String userName,String idType,String idNo){
    public String register(String mobile,String code){
        String url = newYktUrl+"/api/ext/ykt/open/account/register";
        Map<String, Object> params = new HashMap<>();
        params.put("mobile", mobile);
        params.put("userName", userName);
        params.put("idType", idType);
        params.put("idNo", idNo);
        params.put("code", code);
        return SignGenerator.requestYkt(params,url);
    }
@ -782,7 +788,20 @@ public class YkyyService {
    }
    /**
     * 手机号登录
     *
     * @param mobile
     * @return
     */
    public String mobileOnly(String mobile){
        String url = newYktUrl+"/api/ext/ykt/open/account/login/mobile-only";
        Map<String, Object> params = new HashMap<>();
        params.put("mobile", mobile);
        return SignGenerator.requestYkt(params,url);
    }
    /**
     * 获取账户信息
     * @return
     */
    public String info(String Authorization){

+ 20 - 14
server/svr-authentication/src/main/java/com/yihu/jw/security/utils/SignGenerator.java

@ -5,6 +5,7 @@ import com.yihu.jw.util.http.HttpClientUtil;
import org.apache.commons.codec.digest.DigestUtils;
import org.springframework.util.StringUtils;
import java.net.URLEncoder;
import java.util.*;
public class SignGenerator {
@ -12,20 +13,20 @@ public class SignGenerator {
    private static final String SECRET_KEY = "hXe$2Na9hA";
    public static void main(String[] args) {
        Map<String, Object> params3 = new HashMap<>();
        params3.put("mobile", "17602157210");
        params3.put("userName", "王志南");
        params3.put("idType", "1");
        params3.put("idNo", "350524199405230613");
        requestYkt(params3,"https://test.yanketong.com/api/ext/ykt/open/account/register");
        Map<String, Object> params1 = new HashMap<>();
        params1.put("mobile", "17602157210");
        params1.put("scene", "EXT_LOGIN");
        requestYkt(params1,"https://test.yanketong.com/api/ext/ykt/open/sms/code/send");
//        Map<String, Object> params3 = new HashMap<>();
//        params3.put("mobile", "17602157210");
//        params3.put("userName", "王志南");
//        params3.put("idType", "1");
//        params3.put("idNo", "350524199405230613");
//        requestYkt(params3,"https://huaxia.yanketong.com/api/ext/ykt/open/account/register");
//        Map<String, Object> params1 = new HashMap<>();
//        params1.put("mobile", "17602157210");
//        params1.put("scene", "EXT_REGISTER");
//        requestYkt(params1,"https://huaxia.yanketong.com/api/ext/ykt/open/sms/code/send");
        Map<String, Object> params2 = new HashMap<>();
        params2.put("mobile", "17602157210");
        params2.put("code", "666666");
        String res = requestYkt(params2,"https://test.yanketong.com/api/ext/ykt/open/account/login/mobile");
        params2.put("code", "965196");
        String res = requestYkt(params2,"https://huaxia.yanketong.com/api/ext/ykt/open/account/login/mobile");
        JSONObject resObj = JSONObject.parseObject(res);
        if (resObj.getString("code").equalsIgnoreCase("200")){
            JSONObject data = resObj.getJSONObject("data");
@ -33,7 +34,7 @@ public class SignGenerator {
            Map<String, String> header = new HashMap<>();
            header.put("Authorization","Bearer "+data.getString("accessToken"));
            System.out.println("accessToken"+header);
            requestYktAndHeaderGet(params,header,"https://test.yanketong.com/api/ext/ykt/account/info");
            requestYktAndHeaderGet(params,header,"https://huaxia.yanketong.com/api/ext/ykt/account/info");
        }
//
@ -88,7 +89,12 @@ public class SignGenerator {
        // 4. 拼接参数
        StringBuilder sb = new StringBuilder();
        for (String key : keys) {
            String value = flatParams.get(key);
            String value ="";
            if (key.equalsIgnoreCase("userName")){
                value = URLEncoder.encode(flatParams.get(key));
            }else {
                value = flatParams.get(key);
            }
            if (value != null && !"signature".equals(key)) {
                sb.append(key).append("=").append(value).append("&");
            }

+ 1 - 1
server/svr-authentication/src/main/resources/application.yml

@ -1,5 +1,5 @@
server:
  port: 10260
  port: 10261
spring:

+ 2 - 2
server/svr-authentication/src/main/resources/bootstrap.yml

@ -1,6 +1,6 @@
spring:
  application:
    name: svr-authentication-wangzhinan
    name: svr-authentication-test
  cloud:
    config:
      failFast: true
@ -209,4 +209,4 @@ spring:
  cloud:
    config:
      uri: ${wlyy.spring.config.uri:http://127.0.0.1:1221}
      label: ${wlyy.spring.config.label:master}
      label: ${wlyy.spring.config.label:master}

+ 3 - 3
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/consult/PatientConsultEndpoint.java

@ -674,9 +674,9 @@ public class PatientConsultEndpoint extends EnvelopRestEndpoint {
			BasePatientDO result = basePatientService.findByIdAndDel(patient);
			//---居民性别取身份证字段--
			/*result.setSex(Integer.parseInt(IdCardUtil.getSexForIdcard_new(result.getIdcard())));*/
			if (wxId.equalsIgnoreCase("xm_ykyy_wx")){
				familyMemberService.saveYktFamily(patient);
			}
//			if (wxId.equalsIgnoreCase("xm_ykyy_wx")){
//				familyMemberService.saveYktFamily(patient);
//			}
			return success(result);
		}catch (Exception e){
			return failedException(e);

+ 1 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/hospital/WlyyFamilyMemberController.java

@ -385,6 +385,7 @@ public class WlyyFamilyMemberController extends EnvelopRestEndpoint {
            String medicareType = jsonObject.getString("medicareType");
            String medicare = jsonObject.getString("medicare");
            String clinicId = jsonObject.getString("clinicId");
            String scbgjt = jsonObject.getString("scbgjt");
            boolean checkCode =false;
            if(!StringUtils.isEmpty(code)){
                checkCode = this.verification(client_id, username, code);

+ 2 - 4
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/prescription/YkyyPrescriptionEndpoint.java

@ -474,12 +474,10 @@ public class YkyyPrescriptionEndpoint extends EnvelopRestEndpoint {
    @ApiOperation(value = "保存预约记录", notes = "保存预约记录")
    public Envelop GetFYQD(@ApiParam(name = "jsonData", value = "json格式")
                           @RequestParam(value = "jsonData", required = false)String jsonData)throws Exception {
        try {
            BaseAppointmentLogDO baseAppointmentLogDO = toEntity(jsonData,BaseAppointmentLogDO.class);
            return success("ok",prescriptionService.saveYkAppointment(baseAppointmentLogDO));
        }catch (Exception e) {
            return  failedListEnvelopException(e);
        }
    }
    @GetMapping(value = "selectList")

+ 16 - 4
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/ykyy/YkyyController.java

@ -274,10 +274,7 @@ public class YkyyController extends EnvelopRestEndpoint {
    /**
     *
     * 眼科支付同步
     * @param patient
     * @param orderNo
     * @param refundPrice
     * @param description
     * @return
     * @throws Exception
     */
@ -686,4 +683,19 @@ public class YkyyController extends EnvelopRestEndpoint {
            return ObjEnvelop.getError(e.getMessage());
        }
    }
    @ApiOperation("同步医院信息")
    @RequestMapping(value = "hospitalList", method = {RequestMethod.GET, RequestMethod.GET})
    public Envelop hospitalList(@ApiParam(name = "hospName", value = "名称")
                                @RequestParam(value = "hospName", required = false,defaultValue = "") String hospName,
                                @ApiParam(name = "hospId", value = "id")
                                @RequestParam(value = "hospId", required = false,defaultValue = "") String hospId,
                                @ApiParam(name = "lon", value = "精度")
                                @RequestParam(value = "lon", required = false,defaultValue = "") String lon,
                                @ApiParam(name = "lat", value = "纬度")
                                @RequestParam(value = "lat", required = false,defaultValue = "") String lat
    )throws Exception  {
        return success("操作成功",ykyyPrescriptionService.hospitalList(hospName,hospId,lon,lat));
    }
}