|  | @ -1437,82 +1437,138 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             return ObjEnvelop.getError("验证码错误!");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if("xm_ykyy_wx".equalsIgnoreCase(wechatId)){
 | 
	
		
			
				|  |  |             try {
 | 
	
		
			
				|  |  |                 List<BasePatientDO> basePatientDOS =basePatientDao.findByMobileAndDel(mobile,"1");
 | 
	
		
			
				|  |  |                 boolean localFlag = false;
 | 
	
		
			
				|  |  |                 boolean ykFlag = false;
 | 
	
		
			
				|  |  |                 String msg = "";
 | 
	
		
			
				|  |  |                 if (null!=basePatientDOS&&basePatientDOS.size()>0){
 | 
	
		
			
				|  |  |                     localFlag = true;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             List<BasePatientDO> basePatientDOS =basePatientDao.findByMobileAndDel(mobile,"1");
 | 
	
		
			
				|  |  |             boolean localFlag = false;
 | 
	
		
			
				|  |  |             boolean ykFlag = false;
 | 
	
		
			
				|  |  |             String msg = "";
 | 
	
		
			
				|  |  |             if (null!=basePatientDOS&&basePatientDOS.size()>0){
 | 
	
		
			
				|  |  |                 localFlag = true;
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 BasePatientDO basePatientDO = new BasePatientDO();
 | 
	
		
			
				|  |  |                 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.setYktId(jsonObject1.getString("ID"));
 | 
	
		
			
				|  |  |                     }else if (null!=jsonObject.get("code")&&"199".equalsIgnoreCase(jsonObject.get("code").toString())){
 | 
	
		
			
				|  |  |                         msg = jsonObject.getString("msg");
 | 
	
		
			
				|  |  |                         ykFlag = true;
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 basePatientDO.setMobile(mobile);
 | 
	
		
			
				|  |  |                 String salt = UUID.randomUUID().toString().substring(0,5);
 | 
	
		
			
				|  |  |                 basePatientDO.setPassword(MD5.md5Hex(pw + "{" + salt + "}"));
 | 
	
		
			
				|  |  |                 basePatientDO.setSalt(salt);
 | 
	
		
			
				|  |  |                 basePatientDO.setDel("1");
 | 
	
		
			
				|  |  |                 basePatientDO.setEnabled(1);
 | 
	
		
			
				|  |  |                 basePatientDO.setLocked(0);
 | 
	
		
			
				|  |  |                 basePatientDO.setCreateTime(new Date());
 | 
	
		
			
				|  |  |                 basePatientDO.setUpdateTime(new Date());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 BasePatientDO patientDO = basePatientDao.save(basePatientDO);
 | 
	
		
			
				|  |  |                 if (localFlag&&ykFlag){
 | 
	
		
			
				|  |  |                     return ObjEnvelop.getError("该手机号已经注册过");
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             BasePatientDO basePatientDO = new BasePatientDO();
 | 
	
		
			
				|  |  |             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.setYktId(jsonObject1.getString("ID"));
 | 
	
		
			
				|  |  |                 }else if (null!=jsonObject.get("code")&&"199".equalsIgnoreCase(jsonObject.get("code").toString())){
 | 
	
		
			
				|  |  |                     msg = jsonObject.getString("msg");
 | 
	
		
			
				|  |  |                     ykFlag = true;
 | 
	
		
			
				|  |  |                 ClientDetails authenticatedClient = clientDetailsService.loadClientByClientId(client_id);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 Map<String, String> parameters = new HashedMap();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 parameters.put("username",patientDO.getMobile());
 | 
	
		
			
				|  |  |                 parameters.put("grant_type", "ihealthCode");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 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());
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             basePatientDO.setMobile(mobile);
 | 
	
		
			
				|  |  |             String salt = UUID.randomUUID().toString().substring(0,5);
 | 
	
		
			
				|  |  |             basePatientDO.setPassword(MD5.md5Hex(pw + "{" + salt + "}"));
 | 
	
		
			
				|  |  |             basePatientDO.setSalt(salt);
 | 
	
		
			
				|  |  |             basePatientDO.setDel("1");
 | 
	
		
			
				|  |  |             basePatientDO.setEnabled(1);
 | 
	
		
			
				|  |  |             basePatientDO.setLocked(0);
 | 
	
		
			
				|  |  |             basePatientDO.setCreateTime(new Date());
 | 
	
		
			
				|  |  |             basePatientDO.setUpdateTime(new Date());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             BasePatientDO patientDO = basePatientDao.save(basePatientDO);
 | 
	
		
			
				|  |  |             if (localFlag&&ykFlag){
 | 
	
		
			
				|  |  |                 return ObjEnvelop.getError("该手机号已经注册过");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             ClientDetails authenticatedClient = clientDetailsService.loadClientByClientId(client_id);
 | 
	
		
			
				|  |  |                 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");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             Map<String, String> parameters = new HashedMap();
 | 
	
		
			
				|  |  |                 BaseLoginLogDO baseLoginLogDO = new BaseLoginLogDO();
 | 
	
		
			
				|  |  |                 userDetailsService.setRolePhth(loginType, token, wlyyUserSimple.getId(), redisTemplate);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             parameters.put("username",patientDO.getMobile());
 | 
	
		
			
				|  |  |             parameters.put("grant_type", "ihealthCode");
 | 
	
		
			
				|  |  |                 baseLoginLogDO.setUserId(wlyyUserSimple.getId());
 | 
	
		
			
				|  |  |                 baseLoginLogDO.setCreateTime(new Date());
 | 
	
		
			
				|  |  |                 String userAgent = JSONObject.toJSONString(wlyyUserSimple);
 | 
	
		
			
				|  |  |                 baseLoginLogDO.setUserAgent(userAgent);
 | 
	
		
			
				|  |  |                 baseLoginLogDO.setLoginType(loginType);
 | 
	
		
			
				|  |  |                 baseLoginLogService.save(baseLoginLogDO);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             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());
 | 
	
		
			
				|  |  |                 return ObjEnvelop.getSuccess("success",wlyyUserSimple);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             }catch (Exception e){
 | 
	
		
			
				|  |  |                 e.printStackTrace();
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }else {
 | 
	
		
			
				|  |  |             try {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 Map<String,Object> rs = registerService.registerPatient(name,mobile,idcard,ssc,pw,openid,wxId,captcha);
 | 
	
		
			
				|  |  |                 String code = rs.get("code").toString();
 | 
	
		
			
				|  |  |                 if(!"1".equals(code)){
 | 
	
		
			
				|  |  |                     ObjEnvelop objEnvelop = new ObjEnvelop();
 | 
	
		
			
				|  |  |                     objEnvelop.setObj(rs);
 | 
	
		
			
				|  |  |                     objEnvelop.setStatus(-1);
 | 
	
		
			
				|  |  |                     objEnvelop.setMessage(rs.get("mes")+"");
 | 
	
		
			
				|  |  |                     return objEnvelop;
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             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");
 | 
	
		
			
				|  |  |                 BasePatientDO patientDO = (BasePatientDO)rs.get("patient");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             BaseLoginLogDO baseLoginLogDO = new BaseLoginLogDO();
 | 
	
		
			
				|  |  |             userDetailsService.setRolePhth(loginType, token, wlyyUserSimple.getId(), redisTemplate);
 | 
	
		
			
				|  |  |                 ClientDetails authenticatedClient = clientDetailsService.loadClientByClientId(client_id);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             baseLoginLogDO.setUserId(wlyyUserSimple.getId());
 | 
	
		
			
				|  |  |             baseLoginLogDO.setCreateTime(new Date());
 | 
	
		
			
				|  |  |             String userAgent = JSONObject.toJSONString(wlyyUserSimple);
 | 
	
		
			
				|  |  |             baseLoginLogDO.setUserAgent(userAgent);
 | 
	
		
			
				|  |  |             baseLoginLogDO.setLoginType(loginType);
 | 
	
		
			
				|  |  |             baseLoginLogService.save(baseLoginLogDO);
 | 
	
		
			
				|  |  |                 Map<String, String> parameters = new HashedMap();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             return ObjEnvelop.getSuccess("success",wlyyUserSimple);
 | 
	
		
			
				|  |  |                 parameters.put("username",patientDO.getIdcard());
 | 
	
		
			
				|  |  |                 parameters.put("grant_type", "ihealthCode");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         }catch (Exception e){
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |                 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());
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 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);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             }catch (Exception e){
 | 
	
		
			
				|  |  |                 e.printStackTrace();
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return ObjEnvelop.getError("登录失败!");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 |