| 
					
				 | 
			
			
				@ -4,9 +4,11 @@ import com.yihu.jw.exception.business.ManageException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.healthyhouse.cache.WlyyRedisVerifyCodeService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.healthyhouse.model.user.User; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.healthyhouse.service.user.LoginService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.healthyhouse.service.user.UserService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.restmodel.web.Envelop; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.restmodel.web.ObjEnvelop; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.restmodel.wlyy.HouseUserContant; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.util.security.RandomValidateCode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import io.swagger.annotations.Api; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import io.swagger.annotations.ApiOperation; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -37,6 +39,8 @@ public class LoginController extends EnvelopRestEndpoint { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private RestTemplate restTemplate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private WlyyRedisVerifyCodeService wlyyRedisVerifyCodeService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private UserService userService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /******************************************    用户相关    **********************************/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -47,17 +51,22 @@ public class LoginController extends EnvelopRestEndpoint { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "msgType", value = "消息类型(login:登录验证,checkPhone:验证安全手机,resetPhone:重设安全手机", required = true)@RequestParam(required = true, name = "msgType") String msgType, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "username", value = "手机账号", required = true)@RequestParam(required = true, name = "username") String username ) throws  Exception{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isEmpty(clientId)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            throw new InvalidRequestException("clientId"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            failed("clientId 为空!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isEmpty(username)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            throw new InvalidRequestException("username"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            failed("username 为空!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //验证用户是否被冻结 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        User user = userService.findByCode(username); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (HouseUserContant.activated_lock.equals(user)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            failed("该用户已被冻结,无法发送验证码!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //验证请求间隔超时,防止频繁获取验证码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if (!wlyyRedisVerifyCodeService.isIntervalTimeout(clientId, username)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            throw new IllegalAccessException("SMS request frequency is too fast"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //发送短信获取验证码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        ResponseEntity<HashMap> result = loginService.sendDemoSms(clientId,msgType,username); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        ResponseEntity<HashMap> result = loginService.sendSms(clientId,msgType,username); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -70,15 +79,15 @@ public class LoginController extends EnvelopRestEndpoint { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "username", value = "登录账号", required = true)@RequestParam(required = true, name = "username") String username, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "captcha", value = "短信验证码", required = true)@RequestParam(required = true, name = "captcha") String captcha) throws ManageException, ParseException { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (wlyyRedisVerifyCodeService.verification(clientId, username, captcha)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return ObjEnvelop.getSuccess("验证码正确"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return success("验证码正确"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return ObjEnvelop.getError("验证码错误"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return failed("验证码错误"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @PostMapping("/mobile/login") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @ApiOperation(value = "【普通用户】-手机登录注册") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public ObjEnvelop<User> mobileLogin( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Envelop mobileLogin( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            HttpServletRequest request, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "clientId", value = "应用id", required = true)@RequestParam(required = true, name = "clientId") String clientId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "username", value = "账号", required = true)@RequestParam(required = true, name = "username") String username, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -92,26 +101,22 @@ public class LoginController extends EnvelopRestEndpoint { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return success(user); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return ObjEnvelop.getError("验证码错误"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return failed("验证码错误"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @PostMapping("/ijk/login") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @ApiOperation(value = "【普通用户】-i健康用户登陆") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public ObjEnvelop ijkLogin( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Envelop ijkLogin( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            HttpServletRequest request, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "clientId", value = "应用id", required = true)@RequestParam(required = true, name = "clientId") String clientId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "username", value = "账号", required = true)@RequestParam(required = true, name = "username") String username, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "password", value = "密码", required = true)@RequestParam(required = true, name = "password") String password) throws ManageException { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        User user = loginService.iJklogin(request,clientId,username, password); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (user !=null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            ObjEnvelop envelop = new ObjEnvelop(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            envelop.setStatus(200); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            envelop.setMessage("登录成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            envelop.setObj(user); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return envelop; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return success("登录成功",user); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return ObjEnvelop.getError("登录失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return failed("登录失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -122,10 +127,10 @@ public class LoginController extends EnvelopRestEndpoint { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "userCode", value = "用户code", required = true)@RequestParam(required = true, name = "userCode") String userCode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //修改用户状态  离线 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           return ObjEnvelop.getSuccess("登出成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           return success("登出成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return ObjEnvelop.getError("登出成功:" + e.getMessage(), -1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return failed("登出失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -134,32 +139,42 @@ public class LoginController extends EnvelopRestEndpoint { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @PostMapping("/mobile/manage/login") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @ApiOperation(value = "【管理员】-手机验证登录") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public ObjEnvelop administratorMobileLogin( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Envelop administratorMobileLogin( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            HttpServletRequest request, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "clientId", value = "应用id", required = true)@RequestParam(required = true, name = "clientId") String clientId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "username", value = "账号", required = true)@RequestParam(required = true, name = "username") String username, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "captcha", value = "短信验证码", required = true)@RequestParam(required = true, name = "captcha") String captcha) throws ManageException, ParseException { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "captcha", value = "短信验证码", required = true)@RequestParam(required = true, name = "captcha") String captcha) throws ParseException { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (wlyyRedisVerifyCodeService.verification(clientId, username, captcha)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            User user = loginService.managerPhoneLogin(request,username); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return ObjEnvelop.getSuccess("登录成功",user); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            User user = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                user = loginService.managerPhoneLogin(request,username); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } catch (ManageException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return failed(e.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return success("登录成功",user); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return ObjEnvelop.getError("验证码错误"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return failed("验证码错误"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @PostMapping("/manage/login") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @ApiOperation(value = "【管理员】-用户账号登陆") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public ObjEnvelop administratorLogin( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Envelop administratorLogin( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            HttpServletRequest request, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "clientId", value = "应用id", required = true)@RequestParam(required = true, name = "clientId") String clientId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "username", value = "账号", required = true)@RequestParam(required = true, name = "username") String username, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "password", value = "密码", required = true)@RequestParam(required = true, name = "password") String password) throws ManageException { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        User user = loginService.managerLogin(request,clientId,username, password); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (user !=null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return ObjEnvelop.getSuccess("登录成功",user); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return ObjEnvelop.getError("登录失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "password", value = "密码", required = true)@RequestParam(required = true, name = "password") String password) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            User user = loginService.managerLogin(request,clientId,username, password); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (user !=null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return success("登录成功",user); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return failed("登录失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (ManageException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           return failed(e.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @GetMapping(value = "/getRandomImageCode") 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -172,9 +187,9 @@ public class LoginController extends EnvelopRestEndpoint { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            response.setDateHeader("Expire", 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            RandomValidateCode randomValidateCode = new RandomValidateCode(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            randomValidateCode.getRandcode(request, response);//输出验证码图片方法 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return ObjEnvelop.getSuccess("获取验证码成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return success("获取验证码成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           return ObjEnvelop.getError("获取验证码失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return failed("获取验证码失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -183,14 +198,14 @@ public class LoginController extends EnvelopRestEndpoint { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Envelop checkImageCode(@ApiParam(name = "code",value = "输入的验证码")@RequestParam(value = "code",required = true)String code, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     HttpServletRequest request){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isEmpty(code)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return ObjEnvelop.getError("请输入验证码!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return failed("请输入验证码!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String codeRescource = String.valueOf(request.getSession().getAttribute(RandomValidateCode.RANDOMCODEKEY)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (code.toLowerCase().equals(codeRescource.toLowerCase())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            request.getSession().removeAttribute(RandomValidateCode.RANDOMCODEKEY); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return ObjEnvelop.getSuccess("验证码正确!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return success("验证码正确!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return ObjEnvelop.getError("验证码错误!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return failed("验证码错误!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 |