package com.xy.xyaicpzs.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.xy.xyaicpzs.common.DeleteRequest; import com.xy.xyaicpzs.common.ErrorCode; import com.xy.xyaicpzs.common.ResultUtils; import com.xy.xyaicpzs.common.response.ApiResponse; import com.xy.xyaicpzs.domain.dto.user.*; import com.xy.xyaicpzs.domain.entity.User; import com.xy.xyaicpzs.domain.vo.UserVO; import com.xy.xyaicpzs.exception.BusinessException; import com.xy.xyaicpzs.service.UserService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.web.bind.annotation.*; import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletRequest; import java.util.List; import java.util.stream.Collectors; /** * 用户接口 */ @Slf4j @RestController @RequestMapping("/user") @Tag(name = "用户管理", description = "用户管理相关接口") public class UserController { @Resource private UserService userService; // region 登录相关 /** * 用户注册 * * @param userRegisterRequest * @return */ @PostMapping("/register") @Operation(summary = "用户注册", description = "用户注册接口") public ApiResponse 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)) { throw new BusinessException(ErrorCode.PARAMS_ERROR); } long result = userService.userRegister(userAccount, userPassword, checkPassword); return ResultUtils.success(result); } /** * 用户登录 * * @param userLoginRequest * @param request * @return */ @PostMapping("/login") @Operation(summary = "用户登录", description = "用户登录接口") public ApiResponse 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); UserVO userVO = new UserVO(); BeanUtils.copyProperties(user, userVO); return ResultUtils.success(userVO); } /** * 用户注销 * * @param request * @return */ @PostMapping("/logout") @Operation(summary = "用户注销", description = "用户注销接口") public ApiResponse 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") @Operation(summary = "获取当前登录用户", description = "获取当前登录用户信息") public ApiResponse getLoginUser(HttpServletRequest request) { User user = userService.getLoginUser(request); UserVO userVO = new UserVO(); BeanUtils.copyProperties(user, userVO); return ResultUtils.success(userVO); } // endregion }