package com.lib.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.lib.annotation.AuthCheck;
import com.lib.common.BaseResponse;
import com.lib.common.DeleteRequest;
import com.lib.common.ErrorCode;
import com.lib.common.ResultUtils;
import com.lib.constant.UserConstant;
import com.lib.exception.BusinessException;
import com.lib.exception.ThrowUtils;
import com.lib.model.dto.user.*;
import com.lib.model.entity.User;
import com.lib.model.vo.LoginUserVO;
import com.lib.model.vo.UserVO;
import com.lib.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
* 用户接口
*
* @author vv
*/
@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {
@Resource
private UserService userService;
// region 登录相关
/**
* 用户注册
*
* @param userRegisterRequest
* @return
*/
@PostMapping("/register")
public BaseResponse<Long> userRegister(@RequestBody UserRegisterRequest userRegisterRequest) {
if (userRegisterRequest == null) {
throw new BusinessException(ErrorCode.PARAMS_ERROR);
}
String account = userRegisterRequest.getAccount();
String password = userRegisterRequest.getPassword();
String checkPassword = userRegisterRequest.getCheckPassword();
String idCard = userRegisterRequest.getIdCard();
String username = userRegisterRequest.getUsername();
if (StringUtils.isAnyBlank(account, password, checkPassword,idCard,username)) {
return null;
}
long result = userService.userRegister(account, password, checkPassword,idCard,username);
return ResultUtils.success(result);
}
/**
* 用户登录
*
* @param userLoginRequest
* @param request
* @return
*/
@PostMapping("/login")
public BaseResponse<LoginUserVO> userLogin(@RequestBody UserLoginRequest userLoginRequest, HttpServletRequest request) {
if (userLoginRequest == null) {
throw new BusinessException(ErrorCode.PARAMS_ERROR);
}
String account = userLoginRequest.getAccount();
String password = userLoginRequest.getPassword();
if (StringUtils.isAnyBlank(account, password)) {
throw new BusinessException(ErrorCode.PARAMS_ERROR);
}
LoginUserVO loginUserVO = userService.userLogin(account, password, request);
return ResultUtils.success(loginUserVO);
}
/**
* 用户注销
*
* @param request
* @return
*/
@PostMapping("/logout")
public BaseResponse<Boolean> userLogout(HttpServletRequest request) {
if (request == null) {
throw new BusinessException(ErrorCode.PARAMS_ERROR);
}
boolean result = userService.userLogout(request);
return ResultUtils.success(result);
}
/**
* 获取当前登录用户
*
* @param request
* @return
*/
@GetMapping("/get/login")
public BaseResponse<LoginUserVO> getLoginUser(HttpServletRequest request) {
User user = userService.getLoginUser(request);
return ResultUtils.success(userService.getLoginUserVO(user));
}
// endregion
// region 增删改查
/**
* 创建用户
*
* @param userAddRequest
* @param request
* @return
*/
@PostMapping("/add")
@AuthCheck(mustRole = UserConstant.SUPER_ADMIN)
public BaseResponse<Long> addUser(@RequestBody UserAddRequest userAddRequest, HttpServletRequest request) {
if (userAddRequest == null) {
throw new BusinessException(ErrorCode.PARAMS_ERROR);
}
String username = userAddRequest.getUsername();
String account = userAddRequest.getAccount();
String password = userAddRequest.getPassword();
String idCard = userAddRequest.getIdCard();
if (StringUtils.isAnyBlank(account, password , idCard, username)) {
throw new BusinessException(ErrorCode.PARAMS_ERROR);
}
User user = new User();
BeanUtils.copyProperties(userAddRequest, user);
password = userService.encryptPassword(user.getPassword());
user.setPassword(password);
boolean result = userService.save(user);
ThrowUtils.throwIf(!result, ErrorCode.OPERATION_ERROR);
return ResultUtils.success(user.getId());
}
/**
* 删除用户
*
* @param deleteRequest
* @param request
* @return
*/
@PostMapping("/delete")
@AuthCheck(mustRole = UserConstant.SUPER_ADMIN)
public BaseResponse<Boolean> deleteUser(@RequestBody DeleteRequest deleteRequest, HttpServletRequest request) {
if (deleteRequest == null || deleteRequest.getId() <= 0) {
throw new BusinessException(ErrorCode.PARAMS_ERROR);
}
boolean b = userService.removeById(deleteRequest.getId());
return ResultUtils.success(b);
}
/**
* 更新用户
*
* @param userUpdateRequest
* @param request
* @return
*/
@PostMapping("/update")
@AuthCheck(mustRole = UserConstant.SUPER_ADMIN)
public BaseResponse<Boolean> updateUser(@RequestBody UserUpdateRequest userUpdateRequest,
HttpServletRequest request) {
if (userUpdateRequest == null || userUpdateRequest.getId() == null) {
throw new BusinessException(ErrorCode.PARAMS_ERROR);
}
User user = new User();
BeanUtils.copyProperties(userUpdateRequest, user);
boolean result = userService.updateById(user);
ThrowUtils.throwIf(!result, ErrorCode.OPERATION_ERROR);
return ResultUtils.success(true);
}
/**
* 根据 id 获取用户(仅管理员)
*
* @param id
* @param request
* @return
*/
@GetMapping("/get")
@AuthCheck(mustRole = UserConstant.SUPER_ADMIN)
public BaseResponse<User> getUserById(long id, HttpServletRequest request) {
if (id <= 0) {
throw new BusinessException(ErrorCode.PARAMS_ERROR);
}
User user = userService.getById(id);
ThrowUtils.throwIf(user == null, ErrorCode.NOT_FOUND_ERROR);
return ResultUtils.success(user);
}
/**
* 根据 id 获取包装类
*
* @param id
* @param request
* @return
*/
@GetMapping("/get/vo")
public BaseResponse<UserVO> getUserVOById(long id, HttpServletRequest request) {
BaseResponse<User> response = getUserById(id, request);
User user = response.getData();
return ResultUtils.success(userService.getUserVO(user));
}
/**
* 分页获取用户列表(仅管理员)
*
* @param userQueryRequest
* @param request
* @return
*/
@PostMapping("/list/page")
@AuthCheck(mustRole = UserConstant.SUPER_ADMIN)
public BaseResponse<Page<User>> listUserByPage(@RequestBody UserQueryRequest userQueryRequest,
HttpServletRequest request) {
long current = userQueryRequest.getCurrent();
long size = userQueryRequest.getPageSize();
Page<User> userPage = userService.page(new Page<>(current, size),
userService.getQueryWrapper(userQueryRequest));
return ResultUtils.success(userPage);
}
/**
* 分页获取用户封装列表
*
* @param userQueryRequest
* @param request
* @return
*/
@PostMapping("/list/page/vo")
public BaseResponse<Page<UserVO>> listUserVOByPage(@RequestBody UserQueryRequest userQueryRequest,
HttpServletRequest request) {
if (user
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
library-master.zip (72个子文件)
library-master
pom.xml 2KB
src
sql
lib.sql 5KB
main
resources
mapper
BlacklistMapper.xml 819B
BookMapper.xml 1KB
UserMapper.xml 1KB
CommentsMapper.xml 1KB
BookBorrowRecordMapper.xml 1KB
MeetingRoomBorrowRecordMapper.xml 1KB
MeetingRoomMapper.xml 802B
application.yaml 984B
java
com
lib
constant
CommonConstant.java 250B
UserConstant.java 621B
mapper
BlacklistMapper.java 213B
UserMapper.java 198B
BookMapper.java 198B
CommentsMapper.java 210B
BookBorrowRecordMapper.java 234B
MeetingRoomBorrowRecordMapper.java 255B
MeetingRoomMapper.java 219B
annotation
AuthCheck.java 434B
controller
BookController.java 2KB
UserController.java 9KB
utils
SqlUtils.java 480B
LibApplication.java 326B
service
UserService.java 2KB
BookService.java 977B
BlacklistService.java 213B
BookBorrowRecordService.java 234B
MeetingRoomBorrowRecordService.java 255B
impl
MeetingRoomServiceImpl.java 431B
MeetingRoomBorrowRecordServiceImpl.java 515B
UserServiceImpl.java 9KB
BookBorrowRecordServiceImpl.java 466B
BlacklistServiceImpl.java 417B
BookServiceImpl.java 4KB
CommentsServiceImpl.java 410B
MeetingRoomService.java 219B
CommentsService.java 210B
common
DeleteRequest.java 279B
BaseResponse.java 621B
ErrorCode.java 843B
PageRequest.java 484B
ResultUtils.java 936B
model
enums
UserRoleEnum.java 1KB
entity
BookBorrowRecord.java 1KB
Book.java 1KB
MeetingRoomBorrowRecord.java 1KB
MeetingRoom.java 866B
Blacklist.java 867B
User.java 1KB
Comments.java 1KB
dto
book
BookUpdateRequest.java 556B
BookAddRequest.java 495B
user
UserUpdateMyRequest.java 460B
UserLoginRequest.java 326B
UserAddRequest.java 550B
UserQueryRequest.java 619B
UserUpdateRequest.java 534B
UserRegisterRequest.java 425B
vo
LoginUserVO.java 613B
UserVO.java 1KB
BookVO.java 1KB
exception
ThrowUtils.java 950B
GlobalExceptionHandler.java 897B
BusinessException.java 680B
aop
LogInterceptor.java 2KB
AuthInterceptor.java 3KB
config
JsonConfig.java 986B
MyBatisPlusConfig.java 877B
CorsConfig.java 857B
Knife4jConfig.java 1KB
.gitignore 30B
共 72 条
- 1
资源评论
十小大
- 粉丝: 9975
- 资源: 2555
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功