From 330cabdeb438b7310506e817064185c66f4b5c23 Mon Sep 17 00:00:00 2001 From: FallingCliff <8513575+yuluo688@user.noreply.gitee.com> Date: Wed, 28 May 2025 18:12:59 +0800 Subject: [PATCH] =?UTF-8?q?feat(admin-server):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=91=98=E7=94=A8=E6=88=B7=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增管理员用户添加和编辑功能 - 修改管理员实体和相关模型,将"real_name"字段改为"nickname" - 添加数据传输对象(AdminAddDTO、AdminUpdateDTO)用于管理员用户的创建和更新 - 更新系统用户列表接口,返回值类型改为AdminVO - 优化用户删除接口,增加参数校验 --- .../admin/SystemUserController.java | 24 +++++++++++-- .../admin_server/model/dto/AdminAddDTO.java | 33 +++++++++++++++++ .../model/dto/AdminUpdateDTO.java | 36 +++++++++++++++++++ .../admin_server/model/entity/Admin.java | 6 ++-- .../admin_server/model/vo/AdminVO.java | 6 ++-- 5 files changed, 97 insertions(+), 8 deletions(-) create mode 100644 src/main/java/com/example/admin_server/model/dto/AdminAddDTO.java create mode 100644 src/main/java/com/example/admin_server/model/dto/AdminUpdateDTO.java diff --git a/src/main/java/com/example/admin_server/controller/admin/SystemUserController.java b/src/main/java/com/example/admin_server/controller/admin/SystemUserController.java index 5dd7b92..81c3264 100644 --- a/src/main/java/com/example/admin_server/controller/admin/SystemUserController.java +++ b/src/main/java/com/example/admin_server/controller/admin/SystemUserController.java @@ -1,13 +1,20 @@ 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.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.entity.Admin; import com.example.admin_server.model.query.AdminQuery; +import com.example.admin_server.model.vo.AdminVO; import com.example.admin_server.service.IAdminService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -23,13 +30,26 @@ public class SystemUserController { @GetMapping("/user/list") @ApiOperation("系统用户列表") - public Result getAdminUserList(AdminQuery query, IPageRequest pageRequest) { + public Result> getAdminUserList(AdminQuery query, IPageRequest pageRequest) { return Result.ok(iAdminService.pageList(pageRequest, query)); } @DeleteMapping("/user/delete") @ApiOperation("批量删除系统用户") - public Result deleteAdminUsers(@RequestBody IdListDTO idList) { + public Result deleteAdminUsers(@Validated @RequestBody IdListDTO idList) { 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)); + } } diff --git a/src/main/java/com/example/admin_server/model/dto/AdminAddDTO.java b/src/main/java/com/example/admin_server/model/dto/AdminAddDTO.java new file mode 100644 index 0000000..9b6d8c0 --- /dev/null +++ b/src/main/java/com/example/admin_server/model/dto/AdminAddDTO.java @@ -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; +} diff --git a/src/main/java/com/example/admin_server/model/dto/AdminUpdateDTO.java b/src/main/java/com/example/admin_server/model/dto/AdminUpdateDTO.java new file mode 100644 index 0000000..ff05247 --- /dev/null +++ b/src/main/java/com/example/admin_server/model/dto/AdminUpdateDTO.java @@ -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; +} diff --git a/src/main/java/com/example/admin_server/model/entity/Admin.java b/src/main/java/com/example/admin_server/model/entity/Admin.java index 4b27e7f..05f82d3 100644 --- a/src/main/java/com/example/admin_server/model/entity/Admin.java +++ b/src/main/java/com/example/admin_server/model/entity/Admin.java @@ -43,9 +43,9 @@ public class Admin implements Serializable { @TableField("password") private String password; - @ApiModelProperty(value = "姓名") - @TableField("real_name") - private String realName; + @ApiModelProperty(value = "昵称") + @TableField("nickname") + private String nickname; @ApiModelProperty(value = "邮箱") @TableField("email") diff --git a/src/main/java/com/example/admin_server/model/vo/AdminVO.java b/src/main/java/com/example/admin_server/model/vo/AdminVO.java index 9c2e79d..cb4247d 100644 --- a/src/main/java/com/example/admin_server/model/vo/AdminVO.java +++ b/src/main/java/com/example/admin_server/model/vo/AdminVO.java @@ -26,9 +26,9 @@ public class AdminVO implements Serializable { @ApiModelProperty(value = "用户名") private String username; - @ApiModelProperty(value = "姓名") - @TableField("real_name") - private String realName; + @ApiModelProperty(value = "昵称") + @TableField("nickname") + private String nickname; @ApiModelProperty(value = "邮箱") @TableField("email")