1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
|
package $cn.cola.controller;
import cn.cola.model.dto.user.UserUpdateRequest;
import cn.cola.model.dto.user.UserQueryRequest;
import cn.cola.model.dto.user.UserAddRequest;
import cn.cola.common.constant.UserConstant;
import cn.cola.common.exception.ThrowUtils;
import cn.cola.common.DeleteRequest;
import cn.cola.common.BaseResponse;
import cn.cola.common.ResultUtils;
import cn.cola.common.AuthCheck;
import cn.cola.common.ErrorCode;
import cn.cola.model.po.User;
import cn.cola.model.vo.UserVO;
import cn.cola.service.UserService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.web.bind.annotation.*;
import org.springframework.beans.BeanUtils;
import lombok.extern.slf4j.Slf4j;
import javax.annotation.Resource;
import java.util.List;
/**
* 用户接口
*
* @author ColaBlack
*/
@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {
@Resource
private UserService userService;
// region 增删改查
/**
* 插入用户(仅管理员)
*
* @param userAddRequest 用户添加请求体
* @return 新增的用户ID
*/
@PostMapping("/insert")
@AuthCheck(mustRole = UserConstant.ADMIN_ROLE)
public BaseResponse<Long> insertUser(@RequestBody UserAddRequest userAddRequest) {
ThrowUtils.throwIf(userAddRequest == null, ErrorCode.PARAMS_ERROR, "参数不能为空");
ThrowUtils.throwIf(userAddRequest.getUserAccount() == null || userAddRequest.getUserAccount().isEmpty(), ErrorCode.PARAMS_ERROR, "账号不能为空");
User user = new User();
BeanUtils.copyProperties(userAddRequest, user);
int res = userService.getBaseMapper().insert(user);
ThrowUtils.throwIf(res <= 0, ErrorCode.OPERATION_ERROR, "数据库异常,增加用户失败");
return ResultUtils.success(user.getId());
}
/**
* 删除用户(仅管理员)
*
* @param deleteRequest 删除请求体
* @return 删除的记录数
*/
@PostMapping("/delete")
@AuthCheck(mustRole = UserConstant.ADMIN_ROLE)
public BaseResponse<Integer> deleteUser(@RequestBody DeleteRequest deleteRequest) {
ThrowUtils.throwIf(deleteRequest == null, ErrorCode.PARAMS_ERROR, "参数不能为空");
ThrowUtils.throwIf(deleteRequest.getId() <= 0, ErrorCode.PARAMS_ERROR, "参数错误");
int res = userService.getBaseMapper().deleteById(deleteRequest.getId());
ThrowUtils.throwIf(res <= 0, ErrorCode.OPERATION_ERROR, "数据库异常,删除用户失败");
return ResultUtils.success(res);
}
/**
* 修改用户(仅管理员)
*
* @param userUpdateRequest 用户更新请求体
* @return 更新的记录数
*/
@PostMapping("/update")
@AuthCheck(mustRole = UserConstant.ADMIN_ROLE)
public BaseResponse<Integer> updateUser(@RequestBody UserUpdateRequest userUpdateRequest) {
ThrowUtils.throwIf(userUpdateRequest == null, ErrorCode.PARAMS_ERROR, "参数不能为空");
ThrowUtils.throwIf(userUpdateRequest.getId() <= 0, ErrorCode.PARAMS_ERROR, "参数错误");
User user = new User();
BeanUtils.copyProperties(userUpdateRequest, user);
int res = userService.getBaseMapper().updateById(user);
ThrowUtils.throwIf(res <= 0, ErrorCode.OPERATION_ERROR);
return ResultUtils.success(res);
}
/**
* 分页查询用户列表(仅管理员)
*
* @param userQueryRequest 条件查询请求体
* @return 用户列表
*/
@PostMapping("/select/page")
@AuthCheck(mustRole = UserConstant.ADMIN_ROLE)
public BaseResponse<Page<User>> selectUserByPage(@RequestBody UserQueryRequest userQueryRequest) {
long current = userQueryRequest.getCurrent();
long size = userQueryRequest.getPageSize();
ThrowUtils.throwIf(current <= 0 || size <= 0 || size > 100, ErrorCode.PARAMS_ERROR, "参数错误");
Page<User> page = new Page<>(current, size);
QueryWrapper<User> queryWrapper = userService.getQueryWrapper(userQueryRequest);
Page<User> res = userService.getBaseMapper().selectPage(page, queryWrapper);
return ResultUtils.success(res);
}
/**
* 根据ID查询用户信息(仅管理员)
*
* @param userQueryRequest 条件查询请求体
* @return 用户信息
*/
@PostMapping("/select/id")
@AuthCheck(mustRole = UserConstant.ADMIN_ROLE)
public BaseResponse<User> selectUserById(@RequestBody UserQueryRequest userQueryRequest) {
ThrowUtils.throwIf(userQueryRequest == null, ErrorCode.PARAMS_ERROR, "参数不能为空");
ThrowUtils.throwIf(userQueryRequest.getId() <= 0, ErrorCode.PARAMS_ERROR, "参数错误");
User user = userService.getBaseMapper().selectById(userQueryRequest.getId());
return ResultUtils.success(user);
}
/**
* 根据ID查询用户信息(全体用户)
*/
@GetMapping("/get/id")
public BaseResponse<UserVO> getUserById(@RequestParam("id") long id) {
ThrowUtils.throwIf(id <= 0, ErrorCode.PARAMS_ERROR, "参数错误");
User user = userService.getBaseMapper().selectById(id);
UserVO userVO = new UserVO();
BeanUtils.copyProperties(user, userVO);
return ResultUtils.success(userVO);
}
/**
* 分页查询用户信息(全体用户)
*/
@PostMapping("/get/page")
public BaseResponse<Page<UserVO>> getUserByPage(@RequestBody UserQueryRequest userQueryRequest) {
long current = userQueryRequest.getCurrent();
long size = userQueryRequest.getPageSize();
ThrowUtils.throwIf(current <= 0 || size <= 0 || size > 20, ErrorCode.PARAMS_ERROR, "参数错误");
Page<User> page = new Page<>(current, size);
QueryWrapper<User> queryWrapper = userService.getQueryWrapper(userQueryRequest);
Page<User> res = userService.getBaseMapper().selectPage(page, queryWrapper);
Page<UserVO> userVoPage = new Page<>();
BeanUtils.copyProperties(res, userVoPage);
List<UserVO> records = userVoPage.getRecords();
records.clear();
for (User user : res.getRecords()) {
UserVO userVO = new UserVO();
BeanUtils.copyProperties(user, userVO);
records.add(userVO);
}
return ResultUtils.success(userVoPage);
}
// endregion
// region 其他接口
// todo: 此处补充其他接口
// endregion
}
|