From 2e9bed02cbacf7106a4b7ef54021bba7da3f47c6 Mon Sep 17 00:00:00 2001 From: FallingCliff <8513575+yuluo688@user.noreply.gitee.com> Date: Wed, 28 May 2025 17:38:59 +0800 Subject: [PATCH] =?UTF-8?q?feat(admin-server):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E7=94=A8=E6=88=B7=E9=80=BB=E8=BE=91=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 Admin 和 Customer 实体类中添加 deleted 字段,用于逻辑删除 - 在 application.yml 及其不同环境配置中添加 MyBatis-Plus 逻辑删除配置 - 修改数据库初始化脚本,添加 deleted 字段 - 重构 SystemController,更名为 SystemUserController - 添加批量删除系统用户的接口 - 将 LoginDto 重命名为 LoginDTO,统一命名规范- 新增 IdListDTO,用于批量操作的参数校验 --- .../controller/admin/AdminAuthController.java | 4 ++-- ...ontroller.java => SystemUserController.java} | 17 ++++++++++++----- .../admin_server/model/dto/IdListDTO.java | 13 +++++++++++++ .../model/dto/{LoginDto.java => LoginDTO.java} | 2 +- .../admin_server/model/entity/Admin.java | 5 +++++ .../admin_server/model/entity/Customer.java | 5 +++++ src/main/resources/application-dev.yml | 6 ++++++ src/main/resources/application-prop.yml | 6 ++++++ src/main/resources/application-test.yml | 6 ++++++ src/main/resources/application.yml | 6 ++++++ src/main/resources/db/init.sql | 2 ++ 11 files changed, 64 insertions(+), 8 deletions(-) rename src/main/java/com/example/admin_server/controller/admin/{SystemController.java => SystemUserController.java} (63%) create mode 100644 src/main/java/com/example/admin_server/model/dto/IdListDTO.java rename src/main/java/com/example/admin_server/model/dto/{LoginDto.java => LoginDTO.java} (91%) diff --git a/src/main/java/com/example/admin_server/controller/admin/AdminAuthController.java b/src/main/java/com/example/admin_server/controller/admin/AdminAuthController.java index 20b5923..2e283e4 100644 --- a/src/main/java/com/example/admin_server/controller/admin/AdminAuthController.java +++ b/src/main/java/com/example/admin_server/controller/admin/AdminAuthController.java @@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.example.admin_server.common.Result; import com.example.admin_server.enums.ResultCode; import com.example.admin_server.mapper.AdminMapper; -import com.example.admin_server.model.dto.LoginDto; +import com.example.admin_server.model.dto.LoginDTO; import com.example.admin_server.model.entity.Admin; import com.example.admin_server.utils.JwtUtil; import io.jsonwebtoken.Claims; @@ -31,7 +31,7 @@ public class AdminAuthController { @PostMapping("/login") @ApiOperation("管理员登录") - public Result login(@Validated @RequestBody LoginDto request) { + public Result login(@Validated @RequestBody LoginDTO request) { Admin admin = adminMapper.selectOne( new QueryWrapper().eq("username", request.getUsername()) ); diff --git a/src/main/java/com/example/admin_server/controller/admin/SystemController.java b/src/main/java/com/example/admin_server/controller/admin/SystemUserController.java similarity index 63% rename from src/main/java/com/example/admin_server/controller/admin/SystemController.java rename to src/main/java/com/example/admin_server/controller/admin/SystemUserController.java index 1d992ab..5dd7b92 100644 --- a/src/main/java/com/example/admin_server/controller/admin/SystemController.java +++ b/src/main/java/com/example/admin_server/controller/admin/SystemUserController.java @@ -2,21 +2,22 @@ package com.example.admin_server.controller.admin; import com.example.admin_server.common.Result; import com.example.admin_server.common.query.IPageRequest; +import com.example.admin_server.model.dto.IdListDTO; import com.example.admin_server.model.query.AdminQuery; import com.example.admin_server.service.IAdminService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; + +import java.util.List; @RestController @RequestMapping("/api/admin/system") @RequiredArgsConstructor -@Api(tags = {"系统管理"}) -public class SystemController { +@Api(tags = {"系统用户管理"}) +public class SystemUserController { private final IAdminService iAdminService; @@ -25,4 +26,10 @@ public class SystemController { public Result getAdminUserList(AdminQuery query, IPageRequest pageRequest) { return Result.ok(iAdminService.pageList(pageRequest, query)); } + + @DeleteMapping("/user/delete") + @ApiOperation("批量删除系统用户") + public Result deleteAdminUsers(@RequestBody IdListDTO idList) { + return Result.ok(iAdminService.removeByIds(idList.getIdList())); + } } diff --git a/src/main/java/com/example/admin_server/model/dto/IdListDTO.java b/src/main/java/com/example/admin_server/model/dto/IdListDTO.java new file mode 100644 index 0000000..a457f6d --- /dev/null +++ b/src/main/java/com/example/admin_server/model/dto/IdListDTO.java @@ -0,0 +1,13 @@ +package com.example.admin_server.model.dto; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.util.List; + +@Data +public class IdListDTO { + + @NotBlank(message = "ID列表不能为空") + private List idList; +} diff --git a/src/main/java/com/example/admin_server/model/dto/LoginDto.java b/src/main/java/com/example/admin_server/model/dto/LoginDTO.java similarity index 91% rename from src/main/java/com/example/admin_server/model/dto/LoginDto.java rename to src/main/java/com/example/admin_server/model/dto/LoginDTO.java index 77500da..22a07cf 100644 --- a/src/main/java/com/example/admin_server/model/dto/LoginDto.java +++ b/src/main/java/com/example/admin_server/model/dto/LoginDTO.java @@ -5,7 +5,7 @@ import lombok.Data; import javax.validation.constraints.NotBlank; @Data -public class LoginDto { +public class LoginDTO { @NotBlank(message = "用户名不能为空") private String username; 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 886573e..4b27e7f 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 @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.TableLogic; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -82,5 +83,9 @@ public class Admin implements Serializable { @TableField("update_time") private LocalDateTime updateTime; + @ApiModelProperty(value = "是否删除:0未删除,1已删除") + @TableField("deleted") + @TableLogic + private Integer deleted; } diff --git a/src/main/java/com/example/admin_server/model/entity/Customer.java b/src/main/java/com/example/admin_server/model/entity/Customer.java index 39e6ddd..2cbb176 100644 --- a/src/main/java/com/example/admin_server/model/entity/Customer.java +++ b/src/main/java/com/example/admin_server/model/entity/Customer.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.TableLogic; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -78,5 +79,9 @@ public class Customer implements Serializable { @TableField("update_time") private LocalDateTime updateTime; + @ApiModelProperty(value = "是否删除:0未删除,1已删除") + @TableField("deleted") + @TableLogic + private Integer deleted; } diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 5c31755..f4f55c4 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -29,3 +29,9 @@ wx: knife4j: enable: true +mybatis-plus: + global-config: + db-config: + logic-delete-field: deleted + logic-delete-value: 1 + logic-not-delete-value: 0 diff --git a/src/main/resources/application-prop.yml b/src/main/resources/application-prop.yml index b210cf3..ef3f7b2 100644 --- a/src/main/resources/application-prop.yml +++ b/src/main/resources/application-prop.yml @@ -29,3 +29,9 @@ app: knife4j: enable: true +mybatis-plus: + global-config: + db-config: + logic-delete-field: deleted + logic-delete-value: 1 + logic-not-delete-value: 0 diff --git a/src/main/resources/application-test.yml b/src/main/resources/application-test.yml index 085a18d..dca094f 100644 --- a/src/main/resources/application-test.yml +++ b/src/main/resources/application-test.yml @@ -29,3 +29,9 @@ app: knife4j: enable: true +mybatis-plus: + global-config: + db-config: + logic-delete-field: deleted + logic-delete-value: 1 + logic-not-delete-value: 0 diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index f1548ac..67ce16c 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -33,3 +33,9 @@ app: knife4j: enable: true +mybatis-plus: + global-config: + db-config: + logic-delete-field: deleted + logic-delete-value: 1 + logic-not-delete-value: 0 diff --git a/src/main/resources/db/init.sql b/src/main/resources/db/init.sql index 300a844..f4622a5 100644 --- a/src/main/resources/db/init.sql +++ b/src/main/resources/db/init.sql @@ -26,6 +26,7 @@ CREATE TABLE `admin` ( `last_login_time` datetime DEFAULT NULL COMMENT '上次登录时间', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除:0未删除,1已删除', PRIMARY KEY (`id`), UNIQUE KEY `uk_username` (`username`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='后台管理员表'; @@ -44,6 +45,7 @@ CREATE TABLE `customer` ( `phone` varchar(20) DEFAULT NULL COMMENT '手机号(后续绑定时)', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除:0未删除,1已删除', PRIMARY KEY (`id`), UNIQUE KEY `uk_openid` (`openid`), UNIQUE KEY `uk_username` (`username`)