|  | @ -262,169 +262,164 @@ 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");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             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:登录进入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");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             logger.info("login:登录进入2");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         logger.info("login:登录进入2");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             String flag = parameters.get("flag");
 | 
	
		
			
				|  |  |         String flag = parameters.get("flag");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             String username = parameters.get("username");
 | 
	
		
			
				|  |  |             logger.info(username);
 | 
	
		
			
				|  |  |         String username = parameters.get("username");
 | 
	
		
			
				|  |  |         logger.info(username);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             if (StringUtils.isEmpty(username)&&StringUtils.isEmpty(flag)) {
 | 
	
		
			
				|  |  |                 throw new InvalidRequestException("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("dingTalk".equals(flag)){
 | 
	
		
			
				|  |  |             //钉钉免登录
 | 
	
		
			
				|  |  |             parameters.put("grant_type", "dingTalk");
 | 
	
		
			
				|  |  |             String authCode = parameters.get("authCode");
 | 
	
		
			
				|  |  |             if(org.apache.commons.lang3.StringUtils.isBlank(authCode)){
 | 
	
		
			
				|  |  |                 throw new InvalidRequestException("请求参数错误");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             String registerRes= httpClientUtil.get("http://127.0.0.1:10301/doctor/dingtalk_app_user?authCode="+authCode,"UTF-8");
 | 
	
		
			
				|  |  |             JSONObject jsonObject= JSONObject.parseObject(registerRes);
 | 
	
		
			
				|  |  |             if (jsonObject.getInteger("status") == 200){
 | 
	
		
			
				|  |  |                 parameters.put("username", jsonObject.getString("message"));
 | 
	
		
			
				|  |  |             }else{
 | 
	
		
			
				|  |  |                 HttpHeaders headers = new HttpHeaders();
 | 
	
		
			
				|  |  |                 headers.set("Cache-Control", "no-store");
 | 
	
		
			
				|  |  |                 headers.set("Pragma", "no-cache");
 | 
	
		
			
				|  |  |                 Oauth2Envelop<WlyyUserSimple> oauth2Envelop = new Oauth2Envelop<>(jsonObject.getString("message"), -1, null);
 | 
	
		
			
				|  |  |                 return new ResponseEntity<>(oauth2Envelop, headers, HttpStatus.OK);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             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("dingTalk".equals(flag)){
 | 
	
		
			
				|  |  |                 //钉钉免登录
 | 
	
		
			
				|  |  |                 parameters.put("grant_type", "dingTalk");
 | 
	
		
			
				|  |  |                 String authCode = parameters.get("authCode");
 | 
	
		
			
				|  |  |                 if(org.apache.commons.lang3.StringUtils.isBlank(authCode)){
 | 
	
		
			
				|  |  |                     throw new InvalidRequestException("请求参数错误");
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 String registerRes= httpClientUtil.get("http://127.0.0.1:10301/doctor/dingtalk_app_user?authCode="+authCode,"UTF-8");
 | 
	
		
			
				|  |  |                 JSONObject jsonObject= JSONObject.parseObject(registerRes);
 | 
	
		
			
				|  |  |                 if (jsonObject.getInteger("status") == 200){
 | 
	
		
			
				|  |  |                     parameters.put("username", jsonObject.getString("message"));
 | 
	
		
			
				|  |  |                 }else{
 | 
	
		
			
				|  |  |                     HttpHeaders headers = new HttpHeaders();
 | 
	
		
			
				|  |  |                     headers.set("Cache-Control", "no-store");
 | 
	
		
			
				|  |  |                     headers.set("Pragma", "no-cache");
 | 
	
		
			
				|  |  |                     Oauth2Envelop<WlyyUserSimple> oauth2Envelop = new Oauth2Envelop<>(jsonObject.getString("message"), -1, null);
 | 
	
		
			
				|  |  |                     return new ResponseEntity<>(oauth2Envelop, headers, HttpStatus.OK);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }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 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", "captcha");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             logger.info("login:登录进入3");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             ClientDetails authenticatedClient = clientDetailsService.loadClientByClientId(client_id);
 | 
	
		
			
				|  |  |             if (null == authenticatedClient) {
 | 
	
		
			
				|  |  |                 throw new InvalidRequestException("client_id");
 | 
	
		
			
				|  |  |                 //第三方同步账号模式登录
 | 
	
		
			
				|  |  |                 parameters.put("grant_type", "ihealthCode");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             logger.info("login:登录进入4"+authenticatedClient.getClientId());
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             parameters.put("grant_type", "captcha");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         logger.info("login:登录进入3");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             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"))) {
 | 
	
		
			
				|  |  |                     if (tokenStore.readAccessToken(token.getValue())!=null){
 | 
	
		
			
				|  |  |                         tokenStore.removeAccessToken(token.getValue());
 | 
	
		
			
				|  |  |                         tokenStore.removeRefreshToken(token.getRefreshToken().getValue());
 | 
	
		
			
				|  |  |                         token = getTokenGranter().grant(tokenRequest.getGrantType(), tokenRequest);
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |         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());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     /*如果是移动端登陆则移除之前的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"))) {
 | 
	
		
			
				|  |  |                 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("不允许登录该平台");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             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);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             if (parameters.get("password") != null) {
 | 
	
		
			
				|  |  |                 //使用密码登录成功后, 更新失败次数为 0
 | 
	
		
			
				|  |  |                 userDetailsService.addFailureCount(username, 0);
 | 
	
		
			
				|  |  |             if (token == null) {
 | 
	
		
			
				|  |  |                 throw new UnsupportedGrantTypeException("Unsupported grant type: " + tokenRequest.getGrantType());
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             logger.info("login:登录进入8");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             userDetailsService.setRolePhth(loginType, token, wlyyUserSimple.getId(), redisTemplate);
 | 
	
		
			
				|  |  |         WlyyUserSimple wlyyUserSimple = userDetailsService.authSuccess(parameters.get("username"));
 | 
	
		
			
				|  |  |         if ("pad".equals(parameters.get("clientType"))&&!("1".equals(wlyyUserSimple.getArchiveType())) ){//医养平板端登录限制
 | 
	
		
			
				|  |  |             throw new InvalidGrantException("不允许登录该平台");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         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);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if (parameters.get("password") != null) {
 | 
	
		
			
				|  |  |             //使用密码登录成功后, 更新失败次数为 0
 | 
	
		
			
				|  |  |             userDetailsService.addFailureCount(username, 0);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         logger.info("login:登录进入8");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             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);
 | 
	
		
			
				|  |  |             baseLoginLogDO.setToken(token.getValue());
 | 
	
		
			
				|  |  |             baseLoginLogService.save(baseLoginLogDO);
 | 
	
		
			
				|  |  |             logger.info("login:登录进入10");
 | 
	
		
			
				|  |  |         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);
 | 
	
		
			
				|  |  |         baseLoginLogDO.setToken(token.getValue());
 | 
	
		
			
				|  |  |         baseLoginLogService.save(baseLoginLogDO);
 | 
	
		
			
				|  |  |         logger.info("login:登录进入10");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             return getResponse(wlyyUserSimple);
 | 
	
		
			
				|  |  |         }catch (Exception e){
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return null;
 | 
	
		
			
				|  |  |         //个推 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);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -616,7 +611,7 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
 | 
	
		
			
				|  |  |                 message = jsonStr.getString("Message");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         throw new IllegalStateException(message);
 | 
	
		
			
				|  |  |         /*Captcha _captcha = new Captcha();
 | 
	
	
		
			
				|  | @ -1196,7 +1191,7 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @ExceptionHandler(Exception.class)
 | 
	
		
			
				|  |  |     public ResponseEntity<Oauth2Envelop> handleException(Exception e) throws Exception {
 | 
	
		
			
				|  |  |         LOG.debug(e.getMessage(), e);
 | 
	
		
			
				|  |  |         e.printStackTrace();
 | 
	
		
			
				|  |  |         if (e instanceof UsernameNotFoundException) {
 | 
	
		
			
				|  |  |             return handleOAuth2Exception(new Oauth2Envelop("账号或者密码错误!", ResultStatus.INVALID_GRANT), e);
 | 
	
		
			
				|  |  |         } else if (e instanceof NoSuchClientException) {
 | 
	
	
		
			
				|  | @ -1212,9 +1207,9 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
 | 
	
		
			
				|  |  |         } else if (e instanceof IllegalStateException) {
 | 
	
		
			
				|  |  |             return handleOAuth2Exception(new Oauth2Envelop(e.getMessage(), -1), e);
 | 
	
		
			
				|  |  |         }else if (e instanceof ImgCaptchaException) {
 | 
	
		
			
				|  |  |             return handleOAuth2Exception(new Oauth2Envelop(e.getMessage(), ResultStatus.IMG_CAPTCHA), e);
 | 
	
		
			
				|  |  |             return handleOAuth2Exception(new Oauth2Envelop("图片验证码错误", ResultStatus.IMG_CAPTCHA), e);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return handleOAuth2Exception(new Oauth2Envelop(e.getMessage(), -1), e);
 | 
	
		
			
				|  |  |         return handleOAuth2Exception(new Oauth2Envelop("请求失败", -1), e);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     private String invalidGrantMessage(InvalidGrantException e) {
 |