|  | @ -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("验证码错误!");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 |