package com.yupi.project.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.yupi.project.common.BaseResponse; import com.yupi.project.common.ErrorCode; import com.yupi.project.common.ResultUtils; import com.yupi.project.exception.BusinessException; import com.yupi.project.model.entity.User; import com.yupi.project.model.request.UserLoginRequest; import com.yupi.project.model.request.UserRegisterRequest; import com.yupi.project.service.UserService; import java.util.List; import java.util.stream.Collectors; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang3.StringUtils; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * 用户接口 * * @author yupi */ @RestController @RequestMapping("/user") public class UserController { @Resource private UserService userService; @PostMapping("/register") public BaseResponse userRegister(@RequestBody UserRegisterRequest userRegisterRequest) { if (userRegisterRequest == null) { throw new BusinessException(ErrorCode.PARAMS_ERROR); } String userAccount = userRegisterRequest.getUserAccount(); String userPassword = userRegisterRequest.getUserPassword(); String checkPassword = userRegisterRequest.getCheckPassword(); if (StringUtils.isAnyBlank(userAccount, userPassword, checkPassword)) { return null; } long result = userService.userRegister(userAccount, userPassword, checkPassword); return ResultUtils.success(result); } @PostMapping("/login") public BaseResponse userLogin(@RequestBody UserLoginRequest userLoginRequest, HttpServletRequest request) { if (userLoginRequest == null) { throw new BusinessException(ErrorCode.PARAMS_ERROR); } String userAccount = userLoginRequest.getUserAccount(); String userPassword = userLoginRequest.getUserPassword(); if (StringUtils.isAnyBlank(userAccount, userPassword)) { throw new BusinessException(ErrorCode.PARAMS_ERROR); } User user = userService.userLogin(userAccount, userPassword, request); return ResultUtils.success(user); } @PostMapping("/logout") public BaseResponse userLogout(HttpServletRequest request) { if (request == null) { throw new BusinessException(ErrorCode.PARAMS_ERROR); } int result = userService.userLogout(request); return ResultUtils.success(result); } @GetMapping("/current") public BaseResponse getCurrentUser(HttpServletRequest request) { User loginUser = userService.getLoginUser(request); long userId = loginUser.getId(); User user = userService.getById(userId); User safetyUser = userService.getSafetyUser(user); return ResultUtils.success(safetyUser); } @GetMapping("/search") public BaseResponse> searchUser(String username, HttpServletRequest request) { userService.assertAdmin(request); QueryWrapper queryWrapper = new QueryWrapper<>(); if (StringUtils.isNotBlank(username)) { queryWrapper.like("username", username); } List userList = userService.list(queryWrapper); List list = userList.stream().map(user -> userService.getSafetyUser(user)).collect(Collectors.toList()); return ResultUtils.success(list); } @PostMapping("/delete") public BaseResponse deleteUser(@RequestBody long id, HttpServletRequest request) { userService.assertAdmin(request); if (id <= 0) { throw new BusinessException(ErrorCode.PARAMS_ERROR); } boolean b = userService.removeById(id); return ResultUtils.success(b); } }