| 
					
				 | 
			
			
				@ -165,6 +165,8 @@ public class WlyyLoginEndpoint extends AbstractEndpoint { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private WlyyHospitalSysDictDao wlyyhospitalSysdictDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private HttpClientUtil httpClientUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private HcyyService hcyyService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @PostConstruct 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -260,136 +262,151 @@ public class WlyyLoginEndpoint extends AbstractEndpoint { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @RequestMapping(value = "/oauth/login", method = RequestMethod.POST) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public ResponseEntity<Oauth2Envelop<WlyyUserSimple>> login(@RequestParam Map<String, String> parameters, HttpSession httpSession) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("login:登录进入1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //图形验证码验证 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String key = parameters.get("key"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String text = parameters.get("text"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        logger.info("login:登录进入1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //图形验证码验证 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String key = parameters.get("key"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String text = parameters.get("text"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(org.apache.commons.lang3.StringUtils.isNotBlank(key)&& org.apache.commons.lang3.StringUtils.isNotBlank(text)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(!verifyCaptcha(key,text)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                throw new ImgCaptchaException("img_captcha error"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(org.apache.commons.lang3.StringUtils.isNotBlank(key)&& org.apache.commons.lang3.StringUtils.isNotBlank(text)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(!verifyCaptcha(key,text)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    throw new ImgCaptchaException("img_captcha error"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        logger.info("login:登录进入2"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("login:登录进入2"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String flag = parameters.get("flag"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String flag = parameters.get("flag"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String username = parameters.get("username"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isEmpty(username)&&StringUtils.isEmpty(flag)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            throw new InvalidRequestException("username"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String client_id = parameters.get("client_id"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isEmpty(client_id)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            throw new InvalidRequestException("client_id"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if("alipay".equals(flag)||"family".equals(flag)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //支付宝登录||家人登录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            parameters.put("grant_type", flag); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String encdata = parameters.get("encdata"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if("alipay".equals(flag)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                encdata = AES.decrypt(encdata); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                encdata = AesEncryptUtils.agDecrypt(encdata); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String data[] = encdata.split(":"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            username = data[1]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            parameters.put("username", username); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else if (StringUtils.isEmpty(parameters.get("captcha"))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            parameters.put("grant_type", "password"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //解密密码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (parameters.get("password") != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                KeyPair keyPair = (KeyPair) httpSession.getAttribute("privateKey"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String password = com.yihu.jw.security.utils.RSAUtils.decryptBase64(parameters.get("password"), keyPair); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                parameters.put("password", password); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String username = parameters.get("username"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info(username); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (StringUtils.isEmpty(username)&&StringUtils.isEmpty(flag)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                throw new InvalidRequestException("username"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String client_id = parameters.get("client_id"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (StringUtils.isEmpty(client_id)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                throw new InvalidRequestException("client_id"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if("alipay".equals(flag)||"family".equals(flag)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //支付宝登录||家人登录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                parameters.put("grant_type", flag); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String encdata = parameters.get("encdata"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if("alipay".equals(flag)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    encdata = AES.decrypt(encdata); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    encdata = AesEncryptUtils.agDecrypt(encdata); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String data[] = encdata.split(":"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                username = data[1]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                parameters.put("username", username); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else if (StringUtils.isEmpty(parameters.get("captcha"))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                parameters.put("grant_type", "password"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //解密密码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (parameters.get("password") != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    KeyPair keyPair = (KeyPair) httpSession.getAttribute("privateKey"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String password = com.yihu.jw.security.utils.RSAUtils.decryptBase64(parameters.get("password"), keyPair); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    parameters.put("password", password); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    //第三方同步账号模式登录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    parameters.put("grant_type", "ihealthCode"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //第三方同步账号模式登录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                parameters.put("grant_type", "ihealthCode"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                parameters.put("grant_type", "captcha"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            parameters.put("grant_type", "captcha"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        logger.info("login:登录进入3"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("login:登录进入3"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        ClientDetails authenticatedClient = clientDetailsService.loadClientByClientId(client_id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (null == authenticatedClient) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            throw new InvalidRequestException("client_id"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        logger.info("login:登录进入4"+authenticatedClient.getClientId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            ClientDetails authenticatedClient = clientDetailsService.loadClientByClientId(client_id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (null == authenticatedClient) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                throw new InvalidRequestException("client_id"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("login:登录进入4"+authenticatedClient.getClientId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        TokenRequest tokenRequest = oAuth2RequestFactory.createTokenRequest(parameters, authenticatedClient); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        oAuth2RequestValidator.validateScope(tokenRequest, authenticatedClient); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        OAuth2AccessToken token = getTokenGranter().grant(tokenRequest.getGrantType(), tokenRequest); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (token == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            throw new UnsupportedGrantTypeException("Unsupported grant type: " + tokenRequest.getGrantType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            TokenRequest tokenRequest = oAuth2RequestFactory.createTokenRequest(parameters, authenticatedClient); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            oAuth2RequestValidator.validateScope(tokenRequest, authenticatedClient); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            OAuth2AccessToken token = getTokenGranter().grant(tokenRequest.getGrantType(), tokenRequest); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (token == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                throw new UnsupportedGrantTypeException("Unsupported grant type: " + tokenRequest.getGrantType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        /*如果是移动端登陆则移除之前的token, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        在网关处通过HTTP状态码告知前端是过期(402)还是账号在别处登陆(403), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        实现同一账号只能在一处登陆*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if("1".equals(kickEachOther)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (request.getHeader("login-device") != null && (request.getHeader("login-device").equalsIgnoreCase("mobile")||request.getHeader("login-device").equalsIgnoreCase("pc"))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                tokenStore.removeAccessToken(token.getValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                tokenStore.removeRefreshToken(token.getRefreshToken().getValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                token = getTokenGranter().grant(tokenRequest.getGrantType(), tokenRequest); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           /* if("1".equals(kickEachOther)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                logger.info(""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (request.getHeader("login-device") != null && (request.getHeader("login-device").equalsIgnoreCase("mobile")||request.getHeader("login-device").equalsIgnoreCase("pc"))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (tokenStore.readAccessToken(token.getValue())!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        tokenStore.removeAccessToken(token.getValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        tokenStore.removeRefreshToken(token.getRefreshToken().getValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        token = getTokenGranter().grant(tokenRequest.getGrantType(), tokenRequest); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (token == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    throw new UnsupportedGrantTypeException("Unsupported grant type: " + tokenRequest.getGrantType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            WlyyUserSimple wlyyUserSimple = userDetailsService.authSuccess(parameters.get("username")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if ("pad".equals(parameters.get("clientType"))&&!("1".equals(wlyyUserSimple.getArchiveType())) ){//医养平板端登录限制 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                throw new InvalidGrantException("不允许登录该平台"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (token == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                throw new UnsupportedGrantTypeException("Unsupported grant type: " + tokenRequest.getGrantType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("wlyyUserSimple::"+wlyyUserSimple); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            wlyyUserSimple.setAccessToken(token.getValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            wlyyUserSimple.setTokenType(token.getTokenType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            wlyyUserSimple.setExpiresIn(token.getExpiresIn()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            wlyyUserSimple.setRefreshToken(token.getRefreshToken().getValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            wlyyUserSimple.setUser(parameters.get("username")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            wlyyUserSimple.setState(parameters.get("state")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String loginType = parameters.get("login_type"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String openid = parameters.get("openid"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String wechatId = parameters.get("wechatId"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("login:登录进入7"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //更新患者openId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            BaseLoginLogDO baseLoginLogDO = new BaseLoginLogDO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("gengxin开始"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (!StringUtils.isEmpty(openid) && !"undefined".equalsIgnoreCase(openid) && ("3".equals(loginType)||"4".equalsIgnoreCase(loginType))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseLoginLogDO.setOpenid(openid); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                logger.info("gengxin进入"+openid); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                userDetailsService.updateOpenId(openid, wlyyUserSimple.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (!StringUtils.isEmpty(wechatId)&& !"undefined".equalsIgnoreCase(wechatId)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    logger.info("gengxin进入"+wechatId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    userDetailsService.updateOpenIdAndWechatId(openid,wlyyUserSimple.getId(),wechatId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        WlyyUserSimple wlyyUserSimple = userDetailsService.authSuccess(parameters.get("username")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if ("pad".equals(parameters.get("clientType"))&&!("1".equals(wlyyUserSimple.getArchiveType())) ){//医养平板端登录限制 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            throw new InvalidGrantException("不允许登录该平台"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        wlyyUserSimple.setAccessToken(token.getValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        wlyyUserSimple.setTokenType(token.getTokenType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        wlyyUserSimple.setExpiresIn(token.getExpiresIn()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        wlyyUserSimple.setRefreshToken(token.getRefreshToken().getValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        wlyyUserSimple.setUser(parameters.get("username")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        wlyyUserSimple.setState(parameters.get("state")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String loginType = parameters.get("login_type"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String openid = parameters.get("openid"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String wechatId = parameters.get("wechatId"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        logger.info("login:登录进入7"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //更新患者openId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BaseLoginLogDO baseLoginLogDO = new BaseLoginLogDO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        logger.info("gengxin开始"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (!StringUtils.isEmpty(openid) && !"undefined".equalsIgnoreCase(openid) && ("3".equals(loginType)||"4".equalsIgnoreCase(loginType))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseLoginLogDO.setOpenid(openid); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("gengxin进入"+openid); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            userDetailsService.updateOpenId(openid, wlyyUserSimple.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (!StringUtils.isEmpty(wechatId)&& !"undefined".equalsIgnoreCase(wechatId)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                logger.info("gengxin进入"+wechatId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                userDetailsService.updateOpenIdAndWechatId(openid,wlyyUserSimple.getId(),wechatId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (parameters.get("password") != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //使用密码登录成功后, 更新失败次数为 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                userDetailsService.addFailureCount(username, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (parameters.get("password") != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //使用密码登录成功后, 更新失败次数为 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            userDetailsService.addFailureCount(username, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        userDetailsService.setRolePhth(loginType, token, wlyyUserSimple.getId(), redisTemplate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("login:登录进入8"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String clientType = parameters.get("clientType"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        baseLoginLogDO.setUserId(wlyyUserSimple.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        baseLoginLogDO.setCreateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String userAgent = JSONObject.toJSONString(wlyyUserSimple); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        baseLoginLogDO.setUserAgent(userAgent); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        baseLoginLogDO.setLoginType(loginType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        baseLoginLogDO.setName(wlyyUserSimple.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        baseLoginLogDO.setClientType(clientType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        baseLoginLogService.save(baseLoginLogDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            userDetailsService.setRolePhth(loginType, token, wlyyUserSimple.getId(), redisTemplate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //个推 clientId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String clientId = parameters.get("getuiClientId"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String getuiClientType = parameters.get("getuiClientType"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String padImei = parameters.get("padImei"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //客户端类型 app,wx,pad,pc 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        userDetailsService.updateInfo(clientId,getuiClientType,padImei,loginType,wlyyUserSimple.getId(),baseLoginLogDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("login:登录进入9"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String clientType = parameters.get("clientType"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseLoginLogDO.setUserId(wlyyUserSimple.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseLoginLogDO.setCreateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String userAgent = JSONObject.toJSONString(wlyyUserSimple); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseLoginLogDO.setUserAgent(userAgent); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseLoginLogDO.setLoginType(loginType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseLoginLogDO.setName(wlyyUserSimple.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseLoginLogDO.setClientType(clientType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseLoginLogService.save(baseLoginLogDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("login:登录进入10"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                  /*  //个推 clientId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String clientId = parameters.get("getuiClientId"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String getuiClientType = parameters.get("getuiClientType"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String padImei = parameters.get("padImei"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    //客户端类型 app,wx,pad,pc 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    userDetailsService.updateInfo(clientId,getuiClientType,padImei,loginType,wlyyUserSimple.getId(),baseLoginLogDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return getResponse(wlyyUserSimple); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }catch (Exception e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return getResponse(wlyyUserSimple); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1443,6 +1460,8 @@ public class WlyyLoginEndpoint extends AbstractEndpoint { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return ObjEnvelop.getSuccess("success", xzzxService.getQRCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else if (wechatId.equalsIgnoreCase("xm_ykyy_wx")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return ObjEnvelop.getSuccess("success", ykyyService.getQRCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else if (wechatId.equalsIgnoreCase("xm_hcyy_wx")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return ObjEnvelop.getSuccess("success", hcyyService.getQRCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return ObjEnvelop.getSuccess("success", null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1500,6 +1519,17 @@ public class WlyyLoginEndpoint extends AbstractEndpoint { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            openId = jsonObject.getString("userJobNum"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jsonObject.put("qrCodeStatus",jsonObject.getString("qrCodeStatus")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            rs.put("code",1000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else if (wechatId.equalsIgnoreCase("xm_hcyy_wx")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            rs = hcyyService.getTokeninfo(qrcode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONObject jsonObject = rs.getJSONObject("data"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("查询登录信息"+rs); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String qrCodeStatus = rs.getString("code"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(!"10000".equalsIgnoreCase(qrCodeStatus)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return ObjEnvelop.getSuccess("error",rs); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            username = jsonObject.getString("idcard"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jsonObject.put("qrCodeStatus","LoginQrCodeBeenScan"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            rs.put("code",1000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (org.apache.commons.lang.StringUtils.isNotBlank(username)){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -2379,6 +2409,7 @@ public class WlyyLoginEndpoint extends AbstractEndpoint { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                basePatientDO.setSalt(salt); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                basePatientDO.setLocked(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                basePatientDO.setEnabled(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                basePatientDO.setVerifyCode(jsonObject.getString("TOKEN")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                basePatientDO.setPatientStatus("1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                basePatientDao.save(basePatientDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                            }else { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -2449,7 +2480,7 @@ public class WlyyLoginEndpoint extends AbstractEndpoint { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        basePatientDO1.setName(tel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                basePatientDO1.setVerifyCode(jsonObject.getString("TOKEN")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                basePatientDO1.setUserId(userId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                basePatientDao.save(basePatientDO1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                /*String familyList = ykyyService.getFamilyList(null,userId); 
			 |