UserController.java 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. package space.anyi.serve.controller;
  2. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  3. import jakarta.annotation.Resource;
  4. import jakarta.validation.Valid;
  5. import jakarta.validation.constraints.NotBlank;
  6. import jakarta.validation.constraints.NotEmpty;
  7. import jakarta.validation.constraints.NotNull;
  8. import org.springframework.beans.BeanUtils;
  9. import org.springframework.web.bind.annotation.*;
  10. import space.anyi.serve.entity.PageVo;
  11. import space.anyi.serve.entity.Response;
  12. import space.anyi.serve.entity.user.*;
  13. import space.anyi.serve.service.UserService;
  14. import java.util.List;
  15. import java.util.stream.Collectors;
  16. /**
  17. * (User)表控制层
  18. *
  19. * @author 杨逸
  20. * @since 2026-03-31 13:17:55
  21. */
  22. @RestController
  23. @RequestMapping("user")
  24. public class UserController {
  25. /**
  26. * 服务对象
  27. */
  28. @Resource
  29. private UserService userService;
  30. /**
  31. * 分页查询
  32. * @param account
  33. * @param username
  34. * @param role
  35. * @param enable
  36. * @param pageNum
  37. * @param pageSize
  38. * @return
  39. */
  40. @GetMapping
  41. public Response<PageVo<List<UserVo>>> queryByPage(
  42. @NotNull @RequestParam(defaultValue = "") String account,
  43. @NotNull @RequestParam(defaultValue = "") String username,
  44. @NotNull @RequestParam(defaultValue = "") String role,
  45. @NotNull @RequestParam(defaultValue = "1") Integer enable,
  46. @NotNull(message = "页码不能为null") @RequestParam(defaultValue = "1") Integer pageNum,
  47. @NotNull(message = "分页大小不能为null")@RequestParam(defaultValue = "10") Integer pageSize) {
  48. User user = new User();
  49. user.setAccount(account);
  50. user.setUsername(username);
  51. user.setRole(role);
  52. user.setEnable(enable);
  53. Page<User> page = this.userService.queryByPage(user, Page.of(pageNum, pageSize));
  54. return Response.ok(new PageVo<List<UserVo>>(page.getTotal(),UserVo.from(page.getRecords())));
  55. }
  56. /**
  57. * 通过主键查询单条数据
  58. *
  59. * @param id 主键
  60. * @return 单条数据
  61. */
  62. @GetMapping("{id}")
  63. public Response<UserVo> queryById(@NotBlank(message = "用户ID不能为空") @PathVariable String id) {
  64. User user = this.userService.queryById(Long.valueOf(id));
  65. return Response.ok(UserVo.form(user));
  66. }
  67. /**
  68. * 新增数据
  69. *
  70. * @param userDto 实体
  71. * @return 新增结果
  72. */
  73. @PostMapping
  74. public Response<Boolean> add(@Valid@RequestBody UserDto userDto) {
  75. User user = new User();
  76. BeanUtils.copyProperties(userDto,user);
  77. return Response.ok(this.userService.insert(user));
  78. }
  79. /**
  80. * 编辑数据
  81. *
  82. * @param userDto 实体
  83. * @return 编辑结果
  84. */
  85. @PutMapping
  86. public Response<Boolean> edit(@Valid@RequestBody UserDto userDto) {
  87. User user = new User();
  88. BeanUtils.copyProperties(userDto,user);
  89. user.setId(Long.valueOf(userDto.getId()));
  90. return Response.ok(this.userService.update(user));
  91. }
  92. /**
  93. * 删除数据
  94. *
  95. * @param ids 主键
  96. * @return 删除是否成功
  97. */
  98. @DeleteMapping
  99. public Response<Boolean> deleteById(@NotEmpty(message = "ID列表不能为空") @RequestParam List<String> ids) {
  100. List<Long> list = ids.stream().map(Long::valueOf).toList();
  101. return Response.ok(this.userService.deleteById(list));
  102. }
  103. /**
  104. * 更新用户状态
  105. * @param dto
  106. * @return
  107. */
  108. @PutMapping("/updateStatus")
  109. public Response updateUserStatus(@Valid@RequestBody UpdateUserStatusDto dto){
  110. User user = new User();
  111. BeanUtils.copyProperties(dto,user);
  112. user.setId(Long.valueOf(dto.getId()));
  113. return Response.ok(userService.updateUserStatus(user));
  114. }
  115. /**
  116. * 更新用户头像
  117. * @param dto
  118. * @return
  119. */
  120. @PutMapping("/updateAvatar")
  121. public Response updateUserAvatar(@Valid@RequestBody UpdateUserAvatarDto dto){
  122. User user = new User();
  123. BeanUtils.copyProperties(dto,user);
  124. user.setId(Long.valueOf(dto.getId()));
  125. return Response.ok(userService.updateUserAvatar(user));
  126. }
  127. /**
  128. * 更新用户密码
  129. * @param dto
  130. * @return
  131. */
  132. @PutMapping("/updatePassword")
  133. public Response updatePassword(@Valid @RequestBody UpdateUserPasswordDto dto){
  134. User user = new User();
  135. BeanUtils.copyProperties(dto,user);
  136. user.setId(Long.valueOf(dto.getId()));
  137. return Response.ok(userService.updatePassword(user,dto.getOldPassword()));
  138. }
  139. }