feat(admin-server): 添加系统用户逻辑删除功能

- 在 Admin 和 Customer 实体类中添加 deleted 字段,用于逻辑删除
- 在 application.yml 及其不同环境配置中添加 MyBatis-Plus 逻辑删除配置
- 修改数据库初始化脚本,添加 deleted 字段
- 重构 SystemController,更名为 SystemUserController
- 添加批量删除系统用户的接口
- 将 LoginDto 重命名为 LoginDTO,统一命名规范- 新增 IdListDTO,用于批量操作的参数校验
This commit is contained in:
FallingCliff 2025-05-28 17:38:59 +08:00
parent ebf09639fe
commit 2e9bed02cb
11 changed files with 64 additions and 8 deletions

View File

@ -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<Admin>().eq("username", request.getUsername())
);

View File

@ -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()));
}
}

View File

@ -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<Integer> idList;
}

View File

@ -5,7 +5,7 @@ import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class LoginDto {
public class LoginDTO {
@NotBlank(message = "用户名不能为空")
private String username;

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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`)