feat(admin-server): 添加管理员用户相关功能

- 新增管理员用户添加和编辑功能
- 修改管理员实体和相关模型,将"real_name"字段改为"nickname"
- 添加数据传输对象(AdminAddDTO、AdminUpdateDTO)用于管理员用户的创建和更新
- 更新系统用户列表接口,返回值类型改为AdminVO
- 优化用户删除接口,增加参数校验
This commit is contained in:
FallingCliff 2025-05-28 18:12:59 +08:00
parent 2e9bed02cb
commit 330cabdeb4
5 changed files with 97 additions and 8 deletions

View File

@ -1,13 +1,20 @@
package com.example.admin_server.controller.admin; package com.example.admin_server.controller.admin;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.example.admin_server.common.Result; import com.example.admin_server.common.Result;
import com.example.admin_server.common.query.IPageRequest; import com.example.admin_server.common.query.IPageRequest;
import com.example.admin_server.model.dto.AdminAddDTO;
import com.example.admin_server.model.dto.AdminUpdateDTO;
import com.example.admin_server.model.dto.IdListDTO; import com.example.admin_server.model.dto.IdListDTO;
import com.example.admin_server.model.entity.Admin;
import com.example.admin_server.model.query.AdminQuery; import com.example.admin_server.model.query.AdminQuery;
import com.example.admin_server.model.vo.AdminVO;
import com.example.admin_server.service.IAdminService; import com.example.admin_server.service.IAdminService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
@ -23,13 +30,26 @@ public class SystemUserController {
@GetMapping("/user/list") @GetMapping("/user/list")
@ApiOperation("系统用户列表") @ApiOperation("系统用户列表")
public Result<?> getAdminUserList(AdminQuery query, IPageRequest pageRequest) { public Result<IPage<AdminVO>> getAdminUserList(AdminQuery query, IPageRequest pageRequest) {
return Result.ok(iAdminService.pageList(pageRequest, query)); return Result.ok(iAdminService.pageList(pageRequest, query));
} }
@DeleteMapping("/user/delete") @DeleteMapping("/user/delete")
@ApiOperation("批量删除系统用户") @ApiOperation("批量删除系统用户")
public Result<?> deleteAdminUsers(@RequestBody IdListDTO idList) { public Result<?> deleteAdminUsers(@Validated @RequestBody IdListDTO idList) {
return Result.ok(iAdminService.removeByIds(idList.getIdList())); return Result.ok(iAdminService.removeByIds(idList.getIdList()));
} }
@PostMapping("/user/add")
@ApiOperation("添加系统用户")
public Result<?> addAdminUser(@Validated @RequestBody AdminAddDTO adminAdd) {
Admin admin = BeanUtil.copyProperties(adminAdd, Admin.class);
return Result.ok(iAdminService.save(admin));
}
@PutMapping("/user/edit")
@ApiOperation("编辑系统用户")
public Result<?> editAdminUser(@Validated @RequestBody AdminUpdateDTO adminUpdateDTO) {
Admin admin = BeanUtil.copyProperties(adminUpdateDTO, Admin.class);
return Result.ok(iAdminService.updateById(admin));
}
} }

View File

@ -0,0 +1,33 @@
package com.example.admin_server.model.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
@ApiModel(value="管理员添加对象", description="用于创建新管理员的数据传输对象")
public class AdminAddDTO {
@ApiModelProperty(value = "用户名")
@NotBlank(message = "用户名不能为空")
private String username;
@ApiModelProperty(value = "密码")
@NotBlank(message = "密码不能为空")
private String password;
@ApiModelProperty(value = "昵称")
private String nickname;
@ApiModelProperty(value = "邮箱")
private String email;
@ApiModelProperty(value = "手机号")
private String phone;
@ApiModelProperty(value = "头像")
private String avatar;
}

View File

@ -0,0 +1,36 @@
package com.example.admin_server.model.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@Data
@ApiModel(value="管理员更新对象", description="用于更新现有管理员信息的数据传输对象")
public class AdminUpdateDTO {
@ApiModelProperty(value = "主键ID")
@NotNull(message = "主键ID不能为空")
private Long id;
@ApiModelProperty(value = "用户名")
@NotBlank(message = "用户名不能为空")
private String username;
@ApiModelProperty(value = "密码")
private String password;
@ApiModelProperty(value = "昵称")
private String nickname;
@ApiModelProperty(value = "邮箱")
private String email;
@ApiModelProperty(value = "手机号")
private String phone;
@ApiModelProperty(value = "头像")
private String avatar;
}

View File

@ -43,9 +43,9 @@ public class Admin implements Serializable {
@TableField("password") @TableField("password")
private String password; private String password;
@ApiModelProperty(value = "姓名") @ApiModelProperty(value = "昵称")
@TableField("real_name") @TableField("nickname")
private String realName; private String nickname;
@ApiModelProperty(value = "邮箱") @ApiModelProperty(value = "邮箱")
@TableField("email") @TableField("email")

View File

@ -26,9 +26,9 @@ public class AdminVO implements Serializable {
@ApiModelProperty(value = "用户名") @ApiModelProperty(value = "用户名")
private String username; private String username;
@ApiModelProperty(value = "姓名") @ApiModelProperty(value = "昵称")
@TableField("real_name") @TableField("nickname")
private String realName; private String nickname;
@ApiModelProperty(value = "邮箱") @ApiModelProperty(value = "邮箱")
@TableField("email") @TableField("email")