LoginController.java 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. package com.huimv.admin.system.controller;
  2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  3. import com.huimv.admin.system.entity.Account;
  4. import com.huimv.admin.system.entity.BaseFarmX;
  5. import com.huimv.admin.system.entity.SysAccountMultilevel;
  6. import com.huimv.admin.system.service.IBaseFarmXService;
  7. import com.huimv.admin.system.service.ILoginService;
  8. import com.huimv.admin.system.session.AccessToken;
  9. import com.huimv.common.exception.ExceptionEnum;
  10. import com.huimv.common.exception.MiException;
  11. import com.huimv.common.token.TokenSign;
  12. import com.huimv.common.utils.Result;
  13. import com.huimv.common.utils.ResultCode;
  14. import com.huimv.common.utils.VerifyUtil;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.data.redis.core.RedisTemplate;
  17. import org.springframework.web.bind.annotation.*;
  18. import javax.servlet.http.HttpServletRequest;
  19. import javax.servlet.http.HttpServletResponse;
  20. import java.util.Date;
  21. import java.util.Map;
  22. import java.util.concurrent.TimeUnit;
  23. @RestController
  24. @RequestMapping(value = "/my")
  25. public class LoginController {
  26. @Autowired
  27. ILoginService iLoginService;
  28. // @Autowired
  29. // RedisTemplate redisTemplate;
  30. @RequestMapping(value = "/login", method = RequestMethod.POST)
  31. public Result login(HttpServletRequest req, @RequestBody Map<String, String> map) {
  32. // 对密码加密
  33. // Result result = iLoginService.login(accountName, .getMD5Str(password));
  34. String accountName = map.get("accountName");
  35. String password = map.get("password");
  36. /* String code = map.get("code");
  37. String remoteHost = req.getRemoteHost();
  38. String redisCode = redisTemplate.opsForValue().get(remoteHost);
  39. if (redisCode == null) {
  40. return new Result(10005,"验证码过期,点击刷新",false);
  41. }
  42. if (!redisCode.equals(code.toUpperCase())) {
  43. return new Result(10006,"验证码错误,登录失败",false);
  44. }*/
  45. // 未对密码加密
  46. Result result = iLoginService.login(accountName, password);
  47. if(result.getCode() == 10000){
  48. Account accountEntity = (Account) result.getData();
  49. AccessToken accessToken = new AccessToken();
  50. accessToken.setCreated(new Date());
  51. accessToken.setAccountName(accountName);
  52. accessToken.setCode(result.getCode());
  53. accessToken.setMessage(result.getMessage());
  54. String token = TokenSign.sign(accountName,accountEntity.getId());
  55. accessToken.setToken(token);
  56. accessToken.setId( accountEntity.getId());
  57. // accessToken.setLoginIp(remoteHost);
  58. return new Result(ResultCode.SUCCESS,accessToken);
  59. }
  60. return result;
  61. }
  62. @RequestMapping("/logout")
  63. public Result logout(@RequestParam(name = "accountName", required = true) String accountName, @RequestParam(name = "password", required = true) String password) {
  64. return iLoginService.logout();
  65. }
  66. @Autowired
  67. private RedisTemplate<String, String> redisTemplate;
  68. @GetMapping("/send")
  69. public void createImg(HttpServletRequest request, HttpServletResponse response) {
  70. try {
  71. //设置响应类型,告诉浏览器输出的内容为图片
  72. response.setContentType("image/jpeg");
  73. //设置响应头信息,告诉浏览器不要缓存此内容
  74. response.setHeader("Pragma", "No-cache");
  75. response.setHeader("Cache-Control", "no-cache");
  76. response.setDateHeader("Expire", 0);
  77. VerifyUtil randomValidateCode = new VerifyUtil();
  78. //输出验证码图片
  79. String code = randomValidateCode.getRandcode(request, response);
  80. System.out.println(code);
  81. //将生成的随机验证码存放到redis中
  82. String remoteHost = request.getRemoteHost();
  83. redisTemplate.opsForValue().set(remoteHost,code,300, TimeUnit.SECONDS);
  84. } catch (Exception e) {
  85. System.out.println("获取验证码异常:"+e);
  86. throw new MiException(ExceptionEnum.VERIFCATION_FAID);
  87. }
  88. }
  89. //登录-多牧场
  90. @PostMapping(value = "/loginMultilevel")
  91. public Result loginMultilevel(HttpServletRequest req, @RequestBody Map<String, String> map) {
  92. String accountName = map.get("accountName");
  93. String password = map.get("password");
  94. String code = map.get("code");
  95. String remoteHost = req.getRemoteHost();
  96. // String redisCode = redisTemplate.opsForValue().get(remoteHost);
  97. // if (redisCode == null) {
  98. // return new Result(10005,"验证码过期,点击刷新",false);
  99. // }
  100. // if (!redisCode.equals(code.toUpperCase())) {
  101. // return new Result(10006,"验证码错误,登录失败",false);
  102. // }
  103. // 未对密码加密
  104. Result result = iLoginService.loginMultilevel(accountName, password);
  105. if(result.getCode() == 10000){
  106. SysAccountMultilevel accountEntity = (SysAccountMultilevel) result.getData();
  107. Integer id = accountEntity.getId();
  108. AccessToken accessToken = new AccessToken();
  109. accessToken.setCreated(new Date());
  110. accessToken.setAccountName(accountName);
  111. accessToken.setCode(result.getCode());
  112. accessToken.setMessage(result.getMessage());
  113. String token = TokenSign.sign(accountName,id);
  114. accessToken.setToken(token);
  115. accessToken.setId(id);
  116. accessToken.setLoginIp(remoteHost);
  117. return new Result(ResultCode.SUCCESS,accessToken);
  118. }
  119. return result;
  120. }
  121. //测试-token
  122. @PostMapping(value = "/getToken")
  123. public String getToken(HttpServletRequest req) {
  124. String token = TokenSign.sign("superadmin",1);
  125. return token;
  126. }
  127. @Autowired
  128. IBaseFarmXService baseFarmXService;
  129. @PostMapping("/xadd")
  130. public Result add(@RequestBody BaseFarmX baseFarmX){
  131. baseFarmXService.save(baseFarmX);
  132. return new Result(ResultCode.SUCCESS);
  133. }
  134. @GetMapping("/xremove")
  135. public Result remove(@RequestParam(name = "id")Integer id){
  136. baseFarmXService.removeById(id);
  137. return new Result(ResultCode.SUCCESS);
  138. }
  139. @PostMapping("/xupdate")
  140. public Result update(@RequestBody BaseFarmX baseFarmX){
  141. baseFarmXService.updateById(baseFarmX);
  142. return new Result(ResultCode.SUCCESS);
  143. }
  144. @GetMapping("/xlist")
  145. public Result list(){
  146. return new Result(ResultCode.SUCCESS,baseFarmXService.list());
  147. }
  148. @GetMapping("/xfarmList")
  149. public Result farmList(@RequestParam(name = "id")Integer id){
  150. QueryWrapper<BaseFarmX> wrapper = new QueryWrapper<>();
  151. wrapper.eq("row_status",true);
  152. if (id != null){
  153. wrapper.ne("id",id);
  154. }
  155. return new Result(ResultCode.SUCCESS,baseFarmXService.list(wrapper));
  156. }
  157. }