| 
					
				 | 
			
			
				@ -7,6 +7,7 @@ import com.yihu.jw.healthyhouse.service.user.LoginService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				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.util.security.RandomValidateCode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import io.swagger.annotations.Api; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import io.swagger.annotations.ApiOperation; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import io.swagger.annotations.ApiParam; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -18,6 +19,7 @@ import org.springframework.web.bind.annotation.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.web.client.RestTemplate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import javax.servlet.http.HttpServletRequest; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import javax.servlet.http.HttpServletResponse; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.text.ParseException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.HashMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -45,24 +47,38 @@ 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 为空!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //验证请求间隔超时,防止频繁获取验证码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if (!wlyyRedisVerifyCodeService.isIntervalTimeout(clientId, username)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            throw new IllegalAccessException("SMS request frequency is too fast"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        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; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @PostMapping("/captcha/check") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @ApiOperation(value = "验证短信验证码") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Envelop checkCaptcha( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            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 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (wlyyRedisVerifyCodeService.verification(clientId, username, captcha)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return success("验证码正确"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            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, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -76,26 +92,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("登录失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -106,10 +118,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("登出失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -118,31 +130,68 @@ 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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return success("登录成功",user); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return failed("登录失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @GetMapping(value = "/getRandomImageCode") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @ApiOperation(value = "修改密码时生成图形验证码",notes = "修改密码时生成图形验证码") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Envelop getImageCode (HttpServletRequest request, HttpServletResponse response)throws Exception{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            response.setContentType("image/jpeg");//设置相应类型,告诉浏览器输出的内容为图片 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            response.setHeader("Pragma", "No-cache");//设置响应头信息,告诉浏览器不要缓存此内容 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            response.setHeader("Cache-Control", "no-cache"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            response.setDateHeader("Expire", 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            RandomValidateCode randomValidateCode = new RandomValidateCode(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            randomValidateCode.getRandcode(request, response);//输出验证码图片方法 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return success("获取验证码成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return failed("获取验证码失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @PostMapping(value = "/checkRandomImageCode") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @ApiOperation(value = "检验图片验证码",notes = "检验图片验证码") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Envelop checkImageCode(@ApiParam(name = "code",value = "输入的验证码")@RequestParam(value = "code",required = true)String code, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     HttpServletRequest request){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isEmpty(code)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return failed("请输入验证码!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String codeRescource = String.valueOf(request.getSession().getAttribute(RandomValidateCode.RANDOMCODEKEY)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (code.toLowerCase().equals(codeRescource.toLowerCase())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            request.getSession().removeAttribute(RandomValidateCode.RANDOMCODEKEY); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return success("验证码正确!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return ObjEnvelop.getError("登录失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return failed("验证码错误!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 |