SignController.java 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. package cn.minbb.edu.controller.rest;
  2. import cn.minbb.edu.data.ResponseResult;
  3. import cn.minbb.edu.model.User;
  4. import cn.minbb.edu.model.UserRole;
  5. import cn.minbb.edu.service.StageService;
  6. import cn.minbb.edu.service.UserRoleService;
  7. import cn.minbb.edu.service.UserService;
  8. import com.alibaba.fastjson.JSONObject;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.web.bind.annotation.*;
  11. import javax.servlet.http.HttpServletRequest;
  12. import java.util.HashSet;
  13. import java.util.Set;
  14. @RestController
  15. @RequestMapping("app/user")
  16. public class SignController {
  17. private UserService userService;
  18. private UserRoleService userRoleService;
  19. private StageService stageService;
  20. @Autowired
  21. public SignController(UserService userService, UserRoleService userRoleService, StageService stageService) {
  22. this.userService = userService;
  23. this.userRoleService = userRoleService;
  24. this.stageService = stageService;
  25. }
  26. @PostMapping(value = "login")
  27. public ResponseResult<User> login(
  28. @RequestParam(value = "username") String username,
  29. @RequestParam(value = "password") String password,
  30. HttpServletRequest request) {
  31. ResponseResult<User> result = new ResponseResult<>();
  32. User user = userService.findUserByUsername(username);
  33. if (user == null) {
  34. // 用户不存在
  35. result.setCode(0);
  36. result.setSuccess(false);
  37. result.setMessage("用户不存在");
  38. } else {
  39. if (password.equals(user.getPassword())) {
  40. // OK
  41. Integer stageId = user.getStageId();
  42. if (null != stageId) user.setVoStage(stageService.findOneById(user.getStageId()));
  43. result.setCode(1);
  44. result.setSuccess(true);
  45. result.setMessage("登录成功");
  46. result.setData(user);
  47. } else {
  48. // 密码错误
  49. result.setCode(0);
  50. result.setSuccess(false);
  51. result.setMessage("密码错误");
  52. }
  53. }
  54. return result;
  55. }
  56. @PostMapping(value = "register")
  57. public ResponseResult<User> register(@RequestBody String userJSON, HttpServletRequest request) {
  58. ResponseResult<User> result = new ResponseResult<>();
  59. User userClient = JSONObject.parseObject(userJSON, User.class);
  60. if (userClient != null) {
  61. String username = userClient.getUsername();
  62. if (userService.findUserByUsername(username) == null) {
  63. // 用户不存在 - 可以注册
  64. User u = new User(userClient.getName(), username, userClient.getPassword());
  65. Set<UserRole> userRoleSet = new HashSet<>();
  66. userRoleSet.add(userRoleService.findOneByRole(UserRole.Role.USER));
  67. u.setUserRoleSet(userRoleSet);
  68. User user = userService.save(u);
  69. if (user != null) {
  70. // 注册成功
  71. result.setCode(1);
  72. result.setSuccess(true);
  73. result.setMessage("注册成功");
  74. result.setData(user);
  75. } else {
  76. // 注册失败
  77. result.setCode(0);
  78. result.setSuccess(false);
  79. result.setMessage("注册失败");
  80. }
  81. } else {
  82. // 用户存在 - 不可以注册
  83. result.setCode(0);
  84. result.setSuccess(false);
  85. result.setMessage("用户已存在");
  86. }
  87. } else {
  88. // 错误的注册请求
  89. result.setCode(0);
  90. result.setSuccess(false);
  91. result.setMessage("错误的注册请求");
  92. }
  93. return result;
  94. }
  95. }