feat:实现管理员系统核心功能

- 添加管理员数据库管理控制器和服务
- 实现管理员操作日志记录系统
- 添加数据库异常处理过滤器
- 完善管理员权限验证和响应格式
- 添加全面的属性测试覆盖
This commit is contained in:
moyin
2026-01-08 23:05:34 +08:00
parent 0f37130832
commit 6924416bbd
34 changed files with 9481 additions and 199 deletions

View File

@@ -0,0 +1,71 @@
/**
* 管理员相关 DTO
*
* 功能描述:
* - 定义管理员登录与用户密码重置的请求结构
* - 提供完整的数据验证规则
* - 支持Swagger文档自动生成
*
* 职责分离:
* - 请求数据结构定义
* - 输入参数验证规则
* - API文档生成支持
*
* 最近修改:
* - 2026-01-08: 文件夹扁平化 - 从dto/子文件夹移动到上级目录 (修改者: moyin)
* - 2026-01-07: 代码规范优化 - 修正文件命名规范,更新作者信息和修改记录
* - 2026-01-08: 注释规范优化 - 补充类注释完善DTO文档说明 (修改者: moyin)
*
* @author moyin
* @version 1.0.3
* @since 2025-12-19
* @lastModified 2026-01-08
*/
import { ApiProperty } from '@nestjs/swagger';
import { IsNotEmpty, IsString, MinLength } from 'class-validator';
/**
* 管理员登录请求DTO
*
* 功能描述:
* 定义管理员登录接口的请求数据结构和验证规则
*
* 验证规则:
* - identifier: 必填字符串,支持用户名/邮箱/手机号
* - password: 必填字符串,管理员密码
*
* 使用场景:
* - POST /admin/auth/login 接口的请求体
*/
export class AdminLoginDto {
@ApiProperty({ description: '登录标识符(用户名/邮箱/手机号)', example: 'admin' })
@IsString()
@IsNotEmpty()
identifier: string;
@ApiProperty({ description: '密码', example: 'Admin123456' })
@IsString()
@IsNotEmpty()
password: string;
}
/**
* 管理员重置密码请求DTO
*
* 功能描述:
* 定义管理员重置用户密码接口的请求数据结构和验证规则
*
* 验证规则:
* - newPassword: 必填字符串至少8位需包含字母和数字
*
* 使用场景:
* - POST /admin/users/:id/reset-password 接口的请求体
*/
export class AdminResetPasswordDto {
@ApiProperty({ description: '新密码至少8位包含字母和数字', example: 'NewPass1234' })
@IsString()
@IsNotEmpty()
@MinLength(8)
newPassword: string;
}