java-single/service/src/main/java/cn/bunny/services/controller/UserController.java

121 lines
5.4 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package cn.bunny.services.controller;
import cn.bunny.dao.dto.system.user.*;
import cn.bunny.dao.entity.system.AdminUser;
import cn.bunny.dao.pojo.result.PageResult;
import cn.bunny.dao.pojo.result.Result;
import cn.bunny.dao.pojo.result.ResultCodeEnum;
import cn.bunny.dao.vo.system.user.AdminUserVo;
import cn.bunny.dao.vo.system.user.SearchUserinfoVo;
import cn.bunny.dao.vo.system.user.UserVo;
import cn.bunny.services.service.UserService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import reactor.core.publisher.Mono;
import java.util.List;
@Tag(name = "用户信息", description = "用户信息相关接口")
@RestController
@RequestMapping("/admin/user")
public class UserController {
@Autowired
private UserService userService;
@Operation(summary = "分页查询用户信息", description = "分页查询用户信息")
@GetMapping("getAdminUserList/{page}/{limit}")
public Mono<Result<PageResult<AdminUserVo>>> getAdminUserList(
@Parameter(name = "page", description = "当前页", required = true)
@PathVariable("page") Integer page,
@Parameter(name = "limit", description = "每页记录数", required = true)
@PathVariable("limit") Integer limit,
AdminUserDto dto) {
Page<AdminUser> pageParams = new Page<>(page, limit);
PageResult<AdminUserVo> pageResult = userService.getAdminUserList(pageParams, dto);
return Mono.just(Result.success(pageResult));
}
@Operation(summary = "获取用户信息", description = "根据用户ID获取用户信息不包含Redis中的信息")
@GetMapping("getUserinfoById")
public Mono<Result<UserVo>> getUserinfoById(Long id) {
UserVo vo = userService.getUserinfoById(id);
return Mono.just(Result.success(vo));
}
@Operation(summary = "多条件查询用户", description = "多条件查询用户")
@GetMapping("noManage/queryUser")
public Mono<Result<List<SearchUserinfoVo>>> queryUser(String keyword) {
List<SearchUserinfoVo> voList = userService.queryUser(keyword);
return Mono.just(Result.success(voList));
}
@Operation(summary = "更新用户信息", description = "更新用户信息需要更新Redis中的内容")
@PutMapping("updateAdminUser")
public Result<String> updateAdminUser(@Valid @RequestBody AdminUserUpdateDto dto) {
userService.updateAdminUser(dto);
return Result.success(ResultCodeEnum.UPDATE_SUCCESS);
}
@Operation(summary = "更新本地用户信息", description = "更新本地用户信息需要更新Redis中的内容")
@PutMapping("noManage/updateAdminUserByLocalUser")
public Result<String> updateAdminUserByLocalUser(@Valid @RequestBody AdminUserUpdateByLocalUserDto dto) {
userService.updateAdminUserByLocalUser(dto);
return Result.success(ResultCodeEnum.UPDATE_SUCCESS);
}
@Operation(summary = "更新本地用户密码", description = "更新本地用户密码")
@PutMapping("noManage/updateUserPasswordByLocalUser")
public Result<String> updateUserPasswordByLocalUser(String password) {
userService.updateUserPasswordByLocalUser(password);
return Result.success(ResultCodeEnum.UPDATE_SUCCESS);
}
@Operation(summary = "管理员修改用户密码", description = "管理员修改管理员用户密码")
@PutMapping("updateUserPasswordByAdmin")
public Result<String> updateUserPasswordByAdmin(@Valid @RequestBody AdminUserUpdateWithPasswordDto dto) {
userService.updateUserPasswordByAdmin(dto);
return Result.success(ResultCodeEnum.UPDATE_SUCCESS);
}
@Operation(summary = "修改用户状态", description = "管理员修改用户状态")
@PutMapping("updateUserStatusByAdmin")
public Result<String> updateUserStatusByAdmin(@Valid @RequestBody AdminUserUpdateUserStatusDto dto) {
userService.updateUserStatusByAdmin(dto);
return Result.success(ResultCodeEnum.UPDATE_SUCCESS);
}
@Operation(summary = "修改用户头像", description = "管理员修改用户头像")
@PutMapping("uploadAvatarByAdmin")
public Result<String> uploadAvatarByAdmin(@Valid UserUpdateWithAvatarDto dto) {
userService.uploadAvatarByAdmin(dto);
return Result.success(ResultCodeEnum.UPDATE_SUCCESS);
}
@Operation(summary = "添加用户信息", description = "添加用户信息")
@PostMapping("addAdminUser")
public Result<Object> addAdminUser(@Valid @RequestBody AdminUserAddDto dto) {
userService.addAdminUser(dto);
return Result.success(ResultCodeEnum.ADD_SUCCESS);
}
@Operation(summary = "删除用户", description = "删除用户")
@DeleteMapping("deleteAdminUser")
public Mono<Result<String>> deleteAdminUser(@RequestBody List<Long> ids) {
userService.deleteAdminUser(ids);
return Mono.just(Result.success(ResultCodeEnum.DELETE_SUCCESS));
}
@Operation(summary = "强制退出", description = "强制退出")
@PutMapping("forcedOffline")
public Result<String> forcedOffline(@RequestBody Long id) {
userService.forcedOffline(id);
return Result.success();
}
}