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

@@ -12,24 +12,69 @@
* - 核心鉴权与密码策略由AdminCoreService提供
*
* 最近修改:
* - 2026-01-08: 注释规范优化 - 修正import路径创建缺失的控制器和服务文件 (修改者: moyin)
* - 2026-01-07: 代码规范优化 - 修正文件命名规范,更新作者信息和修改记录
*
* @author moyin
* @version 1.0.1
* @version 1.0.2
* @since 2025-12-19
* @lastModified 2026-01-07
* @lastModified 2026-01-08
*/
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { AdminCoreModule } from '../../core/admin_core/admin_core.module';
import { LoggerModule } from '../../core/utils/logger/logger.module';
import { UsersModule } from '../../core/db/users/users.module';
import { UserProfilesModule } from '../../core/db/user_profiles/user_profiles.module';
import { ZulipAccountsModule } from '../../core/db/zulip_accounts/zulip_accounts.module';
import { AdminController } from './admin.controller';
import { AdminService } from './admin.service';
import { AdminDatabaseController } from './admin_database.controller';
import { AdminOperationLogController } from './admin_operation_log.controller';
import { DatabaseManagementService } from './database_management.service';
import { AdminOperationLogService } from './admin_operation_log.service';
import { AdminOperationLog } from './admin_operation_log.entity';
import { AdminDatabaseExceptionFilter } from './admin_database_exception.filter';
import { AdminOperationLogInterceptor } from './admin_operation_log.interceptor';
/**
* 检查数据库配置是否完整
*
* @returns 是否配置了数据库
*/
function isDatabaseConfigured(): boolean {
const requiredEnvVars = ['DB_HOST', 'DB_PORT', 'DB_USERNAME', 'DB_PASSWORD', 'DB_NAME'];
return requiredEnvVars.every(varName => process.env[varName]);
}
@Module({
imports: [AdminCoreModule, LoggerModule],
controllers: [AdminController],
providers: [AdminService],
exports: [AdminService], // 导出AdminService供其他模块使用
imports: [
AdminCoreModule,
LoggerModule,
UsersModule,
// 根据数据库配置选择UserProfiles模块模式
isDatabaseConfigured() ? UserProfilesModule.forDatabase() : UserProfilesModule.forMemory(),
ZulipAccountsModule,
// 注册AdminOperationLog实体
TypeOrmModule.forFeature([AdminOperationLog])
],
controllers: [
AdminController,
AdminDatabaseController,
AdminOperationLogController
],
providers: [
AdminService,
DatabaseManagementService,
AdminOperationLogService,
AdminDatabaseExceptionFilter,
AdminOperationLogInterceptor
],
exports: [
AdminService,
DatabaseManagementService,
AdminOperationLogService
], // 导出服务供其他模块使用
})
export class AdminModule {}