forked from datawhale/whale-town-end
81 lines
2.8 KiB
TypeScript
81 lines
2.8 KiB
TypeScript
/**
|
||
* 管理员业务模块
|
||
*
|
||
* 功能描述:
|
||
* - 提供后台管理的HTTP API(管理员登录、用户管理、密码重置等)
|
||
* - 集成管理员核心服务和日志管理服务
|
||
* - 导出管理员服务供其他模块使用
|
||
*
|
||
* 职责分离:
|
||
* - 模块依赖管理和服务注册
|
||
* - HTTP层与业务流程编排
|
||
* - 核心鉴权与密码策略由AdminCoreService提供
|
||
*
|
||
* 最近修改:
|
||
* - 2026-01-08: 注释规范优化 - 修正import路径,创建缺失的控制器和服务文件 (修改者: moyin)
|
||
* - 2026-01-07: 代码规范优化 - 修正文件命名规范,更新作者信息和修改记录
|
||
*
|
||
* @author moyin
|
||
* @version 1.0.2
|
||
* @since 2025-12-19
|
||
* @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,
|
||
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 {}
|