UserController.java 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. package com.lianda.backend.controller;
  2. import com.lianda.backend.annotation.RequirePermission;
  3. import com.lianda.backend.dto.PageResponse;
  4. import com.lianda.backend.dto.UserCreateDTO;
  5. import com.lianda.backend.dto.UserDTO;
  6. import com.lianda.backend.dto.UserQueryDTO;
  7. import com.lianda.backend.dto.UserSaveDTO;
  8. import com.lianda.backend.model.SysDictionaryItem;
  9. import com.lianda.backend.service.UserService;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.http.HttpStatus;
  12. import org.springframework.http.ResponseEntity;
  13. import org.springframework.web.bind.annotation.*;
  14. import javax.validation.Valid;
  15. import java.util.HashMap;
  16. import java.util.List;
  17. import java.util.Map;
  18. @RestController
  19. @RequestMapping("/user")
  20. public class UserController {
  21. @Autowired
  22. private UserService userService;
  23. /**
  24. * 查询用户列表
  25. *
  26. * @param queryDTO 查询条件
  27. * @return 分页结果
  28. */
  29. @GetMapping("/list")
  30. @RequirePermission("0101")
  31. public ResponseEntity<Map<String, Object>> getUsers(UserQueryDTO queryDTO) {
  32. PageResponse<UserDTO> users = userService.queryUsers(queryDTO);
  33. Map<String, Object> response = new HashMap<>();
  34. response.put("success", true);
  35. response.put("data", users);
  36. return new ResponseEntity<>(response, HttpStatus.OK);
  37. }
  38. /**
  39. * 获取所有状态列表
  40. *
  41. * @return 状态列表
  42. */
  43. @GetMapping("/record-status")
  44. @RequirePermission("010102")
  45. public ResponseEntity<List<SysDictionaryItem>> getRecordStatus() {
  46. List<SysDictionaryItem> recordStatusList = userService.getRecordStatusList();
  47. return new ResponseEntity<>(recordStatusList, HttpStatus.OK);
  48. }
  49. /**
  50. * 保存用户(新增或修改)
  51. *
  52. * @param userSaveDTO 用户保存DTO
  53. * @return 保存后的用户DTO
  54. */
  55. @PostMapping("/save")
  56. @RequirePermission("0104")
  57. public ResponseEntity<Map<String, Object>> saveUser(@Valid @RequestBody UserSaveDTO userSaveDTO) {
  58. try {
  59. UserDTO userDTO = userService.saveUser(userSaveDTO);
  60. Map<String, Object> response = new HashMap<>();
  61. response.put("success", true);
  62. response.put("message", userSaveDTO.getId() == null || userSaveDTO.getId().isEmpty() ? "用户创建成功" : "用户更新成功");
  63. response.put("data", userDTO);
  64. return new ResponseEntity<>(response, HttpStatus.OK);
  65. } catch (Exception e) {
  66. Map<String, Object> response = new HashMap<>();
  67. response.put("success", false);
  68. response.put("message", userSaveDTO.getId() == null || userSaveDTO.getId().isEmpty() ? "用户创建失败:" + e.getMessage() : "用户更新失败:" + e.getMessage());
  69. return new ResponseEntity<>(response, HttpStatus.INTERNAL_SERVER_ERROR);
  70. }
  71. }
  72. /**
  73. * 删除用户
  74. *
  75. * @param userIds 用户ID列表
  76. * @return 操作结果
  77. */
  78. @DeleteMapping("/delete")
  79. @RequirePermission("0102")
  80. public ResponseEntity<Map<String, Object>> deleteUsers(@RequestBody List<String> userIds) {
  81. if (userIds == null || userIds.isEmpty()) {
  82. Map<String, Object> response = new HashMap<>();
  83. response.put("success", false);
  84. response.put("message", "用户ID不能为空");
  85. return new ResponseEntity<>(response, HttpStatus.BAD_REQUEST);
  86. }
  87. try {
  88. userService.deleteUsers(userIds);
  89. Map<String, Object> response = new HashMap<>();
  90. response.put("success", true);
  91. response.put("message", "删除成功");
  92. response.put("deletedCount", userIds.size());
  93. return new ResponseEntity<>(response, HttpStatus.OK);
  94. } catch (Exception e) {
  95. Map<String, Object> response = new HashMap<>();
  96. response.put("success", false);
  97. response.put("message", "删除失败:" + e.getMessage());
  98. return new ResponseEntity<>(response, HttpStatus.INTERNAL_SERVER_ERROR);
  99. }
  100. }
  101. /**
  102. * 重置用户密码
  103. *
  104. * @param userId 用户ID
  105. * @param newPassword 新密码
  106. * @return 操作结果
  107. */
  108. @PostMapping("/reset-password")
  109. @RequirePermission("0103")
  110. public ResponseEntity<Map<String, Object>> resetPassword(@RequestBody Map<String, String> request) {
  111. String userId = request.get("userId");
  112. String newPassword = request.get("newPassword");
  113. if (userId == null || userId.isEmpty()) {
  114. Map<String, Object> response = new HashMap<>();
  115. response.put("success", false);
  116. response.put("message", "用户ID不能为空");
  117. return new ResponseEntity<>(response, HttpStatus.BAD_REQUEST);
  118. }
  119. if (newPassword == null || newPassword.isEmpty()) {
  120. Map<String, Object> response = new HashMap<>();
  121. response.put("success", false);
  122. response.put("message", "新密码不能为空");
  123. return new ResponseEntity<>(response, HttpStatus.BAD_REQUEST);
  124. }
  125. try {
  126. userService.resetPassword(userId, newPassword);
  127. Map<String, Object> response = new HashMap<>();
  128. response.put("success", true);
  129. response.put("message", "密码重置成功");
  130. return new ResponseEntity<>(response, HttpStatus.OK);
  131. } catch (Exception e) {
  132. Map<String, Object> response = new HashMap<>();
  133. response.put("success", false);
  134. response.put("message", "密码重置失败:" + e.getMessage());
  135. return new ResponseEntity<>(response, HttpStatus.INTERNAL_SERVER_ERROR);
  136. }
  137. }
  138. }