feat(admin-server): 添加系统用户逻辑删除功能
- 在 Admin 和 Customer 实体类中添加 deleted 字段,用于逻辑删除 - 在 application.yml 及其不同环境配置中添加 MyBatis-Plus 逻辑删除配置 - 修改数据库初始化脚本,添加 deleted 字段 - 重构 SystemController,更名为 SystemUserController - 添加批量删除系统用户的接口 - 将 LoginDto 重命名为 LoginDTO,统一命名规范- 新增 IdListDTO,用于批量操作的参数校验
This commit is contained in:
parent
ebf09639fe
commit
2e9bed02cb
|
|
@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.example.admin_server.common.Result;
|
import com.example.admin_server.common.Result;
|
||||||
import com.example.admin_server.enums.ResultCode;
|
import com.example.admin_server.enums.ResultCode;
|
||||||
import com.example.admin_server.mapper.AdminMapper;
|
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.model.entity.Admin;
|
||||||
import com.example.admin_server.utils.JwtUtil;
|
import com.example.admin_server.utils.JwtUtil;
|
||||||
import io.jsonwebtoken.Claims;
|
import io.jsonwebtoken.Claims;
|
||||||
|
|
@ -31,7 +31,7 @@ public class AdminAuthController {
|
||||||
|
|
||||||
@PostMapping("/login")
|
@PostMapping("/login")
|
||||||
@ApiOperation("管理员登录")
|
@ApiOperation("管理员登录")
|
||||||
public Result<?> login(@Validated @RequestBody LoginDto request) {
|
public Result<?> login(@Validated @RequestBody LoginDTO request) {
|
||||||
Admin admin = adminMapper.selectOne(
|
Admin admin = adminMapper.selectOne(
|
||||||
new QueryWrapper<Admin>().eq("username", request.getUsername())
|
new QueryWrapper<Admin>().eq("username", request.getUsername())
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -2,21 +2,22 @@ package com.example.admin_server.controller.admin;
|
||||||
|
|
||||||
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.IdListDTO;
|
||||||
import com.example.admin_server.model.query.AdminQuery;
|
import com.example.admin_server.model.query.AdminQuery;
|
||||||
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.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/api/admin/system")
|
@RequestMapping("/api/admin/system")
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@Api(tags = {"系统管理"})
|
@Api(tags = {"系统用户管理"})
|
||||||
public class SystemController {
|
public class SystemUserController {
|
||||||
|
|
||||||
private final IAdminService iAdminService;
|
private final IAdminService iAdminService;
|
||||||
|
|
||||||
|
|
@ -25,4 +26,10 @@ public class SystemController {
|
||||||
public Result<?> getAdminUserList(AdminQuery query, IPageRequest pageRequest) {
|
public Result<?> getAdminUserList(AdminQuery query, IPageRequest pageRequest) {
|
||||||
return Result.ok(iAdminService.pageList(pageRequest, query));
|
return Result.ok(iAdminService.pageList(pageRequest, query));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@DeleteMapping("/user/delete")
|
||||||
|
@ApiOperation("批量删除系统用户")
|
||||||
|
public Result<?> deleteAdminUsers(@RequestBody IdListDTO idList) {
|
||||||
|
return Result.ok(iAdminService.removeByIds(idList.getIdList()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
@ -5,7 +5,7 @@ import lombok.Data;
|
||||||
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotBlank;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class LoginDto {
|
public class LoginDTO {
|
||||||
@NotBlank(message = "用户名不能为空")
|
@NotBlank(message = "用户名不能为空")
|
||||||
private String username;
|
private String username;
|
||||||
|
|
||||||
|
|
@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
@ -82,5 +83,9 @@ public class Admin implements Serializable {
|
||||||
@TableField("update_time")
|
@TableField("update_time")
|
||||||
private LocalDateTime updateTime;
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "是否删除:0未删除,1已删除")
|
||||||
|
@TableField("deleted")
|
||||||
|
@TableLogic
|
||||||
|
private Integer deleted;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
@ -78,5 +79,9 @@ public class Customer implements Serializable {
|
||||||
@TableField("update_time")
|
@TableField("update_time")
|
||||||
private LocalDateTime updateTime;
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "是否删除:0未删除,1已删除")
|
||||||
|
@TableField("deleted")
|
||||||
|
@TableLogic
|
||||||
|
private Integer deleted;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -29,3 +29,9 @@ wx:
|
||||||
knife4j:
|
knife4j:
|
||||||
enable: true
|
enable: true
|
||||||
|
|
||||||
|
mybatis-plus:
|
||||||
|
global-config:
|
||||||
|
db-config:
|
||||||
|
logic-delete-field: deleted
|
||||||
|
logic-delete-value: 1
|
||||||
|
logic-not-delete-value: 0
|
||||||
|
|
|
||||||
|
|
@ -29,3 +29,9 @@ app:
|
||||||
knife4j:
|
knife4j:
|
||||||
enable: true
|
enable: true
|
||||||
|
|
||||||
|
mybatis-plus:
|
||||||
|
global-config:
|
||||||
|
db-config:
|
||||||
|
logic-delete-field: deleted
|
||||||
|
logic-delete-value: 1
|
||||||
|
logic-not-delete-value: 0
|
||||||
|
|
|
||||||
|
|
@ -29,3 +29,9 @@ app:
|
||||||
knife4j:
|
knife4j:
|
||||||
enable: true
|
enable: true
|
||||||
|
|
||||||
|
mybatis-plus:
|
||||||
|
global-config:
|
||||||
|
db-config:
|
||||||
|
logic-delete-field: deleted
|
||||||
|
logic-delete-value: 1
|
||||||
|
logic-not-delete-value: 0
|
||||||
|
|
|
||||||
|
|
@ -33,3 +33,9 @@ app:
|
||||||
knife4j:
|
knife4j:
|
||||||
enable: true
|
enable: true
|
||||||
|
|
||||||
|
mybatis-plus:
|
||||||
|
global-config:
|
||||||
|
db-config:
|
||||||
|
logic-delete-field: deleted
|
||||||
|
logic-delete-value: 1
|
||||||
|
logic-not-delete-value: 0
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,7 @@ CREATE TABLE `admin` (
|
||||||
`last_login_time` datetime DEFAULT NULL COMMENT '上次登录时间',
|
`last_login_time` datetime DEFAULT NULL COMMENT '上次登录时间',
|
||||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE 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`),
|
PRIMARY KEY (`id`),
|
||||||
UNIQUE KEY `uk_username` (`username`)
|
UNIQUE KEY `uk_username` (`username`)
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='后台管理员表';
|
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='后台管理员表';
|
||||||
|
|
@ -44,6 +45,7 @@ CREATE TABLE `customer` (
|
||||||
`phone` varchar(20) DEFAULT NULL COMMENT '手机号(后续绑定时)',
|
`phone` varchar(20) DEFAULT NULL COMMENT '手机号(后续绑定时)',
|
||||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE 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`),
|
PRIMARY KEY (`id`),
|
||||||
UNIQUE KEY `uk_openid` (`openid`),
|
UNIQUE KEY `uk_openid` (`openid`),
|
||||||
UNIQUE KEY `uk_username` (`username`)
|
UNIQUE KEY `uk_username` (`username`)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue