WARNING: This commit contains code with significant issues that need immediate attention: 1. Type Safety Issues: - Unused import ZulipAccountsService causing compilation warnings - Implicit 'any' type in formatZulipAccount method parameter - Type inconsistencies in service injections 2. Service Integration Problems: - Inconsistent service interface usage - Missing proper type definitions for injected services - Potential runtime errors due to type mismatches 3. Code Quality Issues: - Violation of TypeScript strict mode requirements - Inconsistent error handling patterns - Missing proper interface implementations Files affected: - src/business/admin/database_management.service.ts (main issue) - Multiple test files and service implementations - Configuration and documentation updates Next steps required: 1. Fix TypeScript compilation errors 2. Implement proper type safety 3. Resolve service injection inconsistencies 4. Add comprehensive error handling 5. Update tests to match new implementations Impact: High - affects admin functionality and system stability Priority: Urgent - requires immediate review and fixes Author: moyin Date: 2026-01-10
82 lines
3.0 KiB
TypeScript
82 lines
3.0 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(),
|
||
// 根据数据库配置选择ZulipAccounts模块模式
|
||
isDatabaseConfigured() ? ZulipAccountsModule.forDatabase() : ZulipAccountsModule.forMemory(),
|
||
// 注册AdminOperationLog实体
|
||
TypeOrmModule.forFeature([AdminOperationLog])
|
||
],
|
||
controllers: [
|
||
AdminController,
|
||
AdminDatabaseController,
|
||
AdminOperationLogController
|
||
],
|
||
providers: [
|
||
AdminService,
|
||
DatabaseManagementService,
|
||
AdminOperationLogService,
|
||
AdminDatabaseExceptionFilter,
|
||
AdminOperationLogInterceptor
|
||
],
|
||
exports: [
|
||
AdminService,
|
||
DatabaseManagementService,
|
||
AdminOperationLogService
|
||
], // 导出服务供其他模块使用
|
||
})
|
||
export class AdminModule {}
|