| 
					
				 | 
			
			
				@ -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("登录失败!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 |