package com.lianda.backend.controller; import com.lianda.backend.annotation.RequirePermission; import com.lianda.backend.dto.PageResponse; import com.lianda.backend.dto.UserCreateDTO; import com.lianda.backend.dto.UserDTO; import com.lianda.backend.dto.UserQueryDTO; import com.lianda.backend.dto.UserSaveDTO; import com.lianda.backend.model.SysDictionaryItem; import com.lianda.backend.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.HashMap; import java.util.List; import java.util.Map; @RestController @RequestMapping("/user") public class UserController { @Autowired private UserService userService; /** * 查询用户列表 * * @param queryDTO 查询条件 * @return 分页结果 */ @GetMapping("/list") @RequirePermission("0101") public ResponseEntity> getUsers(UserQueryDTO queryDTO) { PageResponse users = userService.queryUsers(queryDTO); Map response = new HashMap<>(); response.put("success", true); response.put("data", users); return new ResponseEntity<>(response, HttpStatus.OK); } /** * 获取所有状态列表 * * @return 状态列表 */ @GetMapping("/record-status") @RequirePermission("010102") public ResponseEntity> getRecordStatus() { List recordStatusList = userService.getRecordStatusList(); return new ResponseEntity<>(recordStatusList, HttpStatus.OK); } /** * 保存用户(新增或修改) * * @param userSaveDTO 用户保存DTO * @return 保存后的用户DTO */ @PostMapping("/save") @RequirePermission("0104") public ResponseEntity> saveUser(@Valid @RequestBody UserSaveDTO userSaveDTO) { try { UserDTO userDTO = userService.saveUser(userSaveDTO); Map response = new HashMap<>(); response.put("success", true); response.put("message", userSaveDTO.getId() == null || userSaveDTO.getId().isEmpty() ? "用户创建成功" : "用户更新成功"); response.put("data", userDTO); return new ResponseEntity<>(response, HttpStatus.OK); } catch (Exception e) { Map response = new HashMap<>(); response.put("success", false); response.put("message", userSaveDTO.getId() == null || userSaveDTO.getId().isEmpty() ? "用户创建失败:" + e.getMessage() : "用户更新失败:" + e.getMessage()); return new ResponseEntity<>(response, HttpStatus.INTERNAL_SERVER_ERROR); } } /** * 删除用户 * * @param userIds 用户ID列表 * @return 操作结果 */ @DeleteMapping("/delete") @RequirePermission("0102") public ResponseEntity> deleteUsers(@RequestBody List userIds) { if (userIds == null || userIds.isEmpty()) { Map response = new HashMap<>(); response.put("success", false); response.put("message", "用户ID不能为空"); return new ResponseEntity<>(response, HttpStatus.BAD_REQUEST); } try { userService.deleteUsers(userIds); Map response = new HashMap<>(); response.put("success", true); response.put("message", "删除成功"); response.put("deletedCount", userIds.size()); return new ResponseEntity<>(response, HttpStatus.OK); } catch (Exception e) { Map response = new HashMap<>(); response.put("success", false); response.put("message", "删除失败:" + e.getMessage()); return new ResponseEntity<>(response, HttpStatus.INTERNAL_SERVER_ERROR); } } /** * 重置用户密码 * * @param userId 用户ID * @param newPassword 新密码 * @return 操作结果 */ @PostMapping("/reset-password") @RequirePermission("0103") public ResponseEntity> resetPassword(@RequestBody Map request) { String userId = request.get("userId"); String newPassword = request.get("newPassword"); if (userId == null || userId.isEmpty()) { Map response = new HashMap<>(); response.put("success", false); response.put("message", "用户ID不能为空"); return new ResponseEntity<>(response, HttpStatus.BAD_REQUEST); } if (newPassword == null || newPassword.isEmpty()) { Map response = new HashMap<>(); response.put("success", false); response.put("message", "新密码不能为空"); return new ResponseEntity<>(response, HttpStatus.BAD_REQUEST); } try { userService.resetPassword(userId, newPassword); Map response = new HashMap<>(); response.put("success", true); response.put("message", "密码重置成功"); return new ResponseEntity<>(response, HttpStatus.OK); } catch (Exception e) { Map response = new HashMap<>(); response.put("success", false); response.put("message", "密码重置失败:" + e.getMessage()); return new ResponseEntity<>(response, HttpStatus.INTERNAL_SERVER_ERROR); } } }