chore: 代码风格统一和项目文档添加

主要变更:

1. 代码风格统一
   - 统一使用双引号替代单引号
   - 保持项目代码风格一致性
   - 涵盖所有模块、配置、实体和服务文件

2. 项目文档
   - 新增 SECURITY_FIXES_SUMMARY.md - 安全修复总结文档
   - 新增 项目问题评估报告.md - 项目问题评估文档

3. 包含修改的文件类别
   - 配置文件:app, database, jwt, redis, cache, performance
   - 实体文件:所有 TypeORM 实体
   - 模块文件:所有业务模块
   - 公共模块:guards, decorators, interceptors, filters, utils
   - 测试文件:单元测试和 E2E 测试

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
UGREEN USER
2026-01-28 13:03:28 +08:00
parent d73a6e28b3
commit 575a29ac8f
103 changed files with 3651 additions and 2710 deletions

View File

@@ -1,68 +1,95 @@
import { Module } from '@nestjs/common';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { TypeOrmModule } from '@nestjs/typeorm';
import { ScheduleModule } from '@nestjs/schedule';
import { APP_GUARD } from '@nestjs/core';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { Module } from "@nestjs/common";
import { ConfigModule, ConfigService } from "@nestjs/config";
import { TypeOrmModule } from "@nestjs/typeorm";
import { ScheduleModule } from "@nestjs/schedule";
import { APP_GUARD } from "@nestjs/core";
import { AppController } from "./app.controller";
import { AppService } from "./app.service";
import { ThrottlerModule, ThrottlerGuard } from "@nestjs/throttler";
// 公共模块
import { CommonModule } from './common/common.module';
import { CommonModule } from "./common/common.module";
// 配置文件
import appConfig from './config/app.config';
import databaseConfig from './config/database.config';
import jwtConfig from './config/jwt.config';
import redisConfig from './config/redis.config';
import cacheConfig from './config/cache.config';
import performanceConfig from './config/performance.config';
import appConfig from "./config/app.config";
import databaseConfig from "./config/database.config";
import jwtConfig from "./config/jwt.config";
import redisConfig from "./config/redis.config";
import cacheConfig from "./config/cache.config";
import performanceConfig from "./config/performance.config";
// 业务模块
import { AuthModule } from './modules/auth/auth.module';
import { UsersModule } from './modules/users/users.module';
import { GroupsModule } from './modules/groups/groups.module';
import { GamesModule } from './modules/games/games.module';
import { AppointmentsModule } from './modules/appointments/appointments.module';
import { LedgersModule } from './modules/ledgers/ledgers.module';
import { SchedulesModule } from './modules/schedules/schedules.module';
import { BlacklistModule } from './modules/blacklist/blacklist.module';
import { HonorsModule } from './modules/honors/honors.module';
import { AssetsModule } from './modules/assets/assets.module';
import { PointsModule } from './modules/points/points.module';
import { BetsModule } from './modules/bets/bets.module';
import { AuthModule } from "./modules/auth/auth.module";
import { UsersModule } from "./modules/users/users.module";
import { GroupsModule } from "./modules/groups/groups.module";
import { GamesModule } from "./modules/games/games.module";
import { AppointmentsModule } from "./modules/appointments/appointments.module";
import { LedgersModule } from "./modules/ledgers/ledgers.module";
import { SchedulesModule } from "./modules/schedules/schedules.module";
import { BlacklistModule } from "./modules/blacklist/blacklist.module";
import { HonorsModule } from "./modules/honors/honors.module";
import { AssetsModule } from "./modules/assets/assets.module";
import { PointsModule } from "./modules/points/points.module";
import { BetsModule } from "./modules/bets/bets.module";
// 守卫
import { JwtAuthGuard } from './common/guards/jwt-auth.guard';
import { RolesGuard } from './common/guards/roles.guard';
import { JwtAuthGuard } from "./common/guards/jwt-auth.guard";
import { RolesGuard } from "./common/guards/roles.guard";
@Module({
imports: [
// 配置模块
ConfigModule.forRoot({
isGlobal: true,
load: [appConfig, databaseConfig, jwtConfig, redisConfig, cacheConfig, performanceConfig],
load: [
appConfig,
databaseConfig,
jwtConfig,
redisConfig,
cacheConfig,
performanceConfig,
],
envFilePath: [
`.env.${process.env.NODE_ENV || 'development'}`,
'.env.local',
'.env',
`.env.${process.env.NODE_ENV || "development"}`,
".env.local",
".env",
],
}),
// 速率限制模块(防止暴力破解)
ThrottlerModule.forRoot([
{
name: "short",
ttl: 1000, // 1秒
limit: 3, // 允许3次请求
},
{
name: "medium",
ttl: 10000, // 10秒
limit: 20, // 允许20次请求
},
{
name: "long",
ttl: 60000, // 1分钟
limit: 100, // 允许100次请求
},
]),
// 数据库模块
TypeOrmModule.forRootAsync({
imports: [ConfigModule],
useFactory: (configService: ConfigService) => ({
type: 'mysql',
host: configService.get('database.host'),
port: configService.get('database.port'),
username: configService.get('database.username'),
password: configService.get('database.password'),
database: configService.get('database.database'),
entities: [__dirname + '/**/*.entity{.ts,.js}'],
synchronize: configService.get('database.synchronize'),
logging: configService.get('database.logging'),
timezone: '+08:00',
charset: 'utf8mb4',
type: "mysql",
host: configService.get("database.host"),
port: configService.get("database.port"),
username: configService.get("database.username"),
password: configService.get("database.password"),
database: configService.get("database.database"),
entities: [__dirname + "/**/*.entity{.ts,.js}"],
synchronize: configService.get("database.synchronize"),
logging: configService.get("database.logging"),
timezone: "+08:00",
charset: "utf8mb4",
}),
inject: [ConfigService],
}),
@@ -99,6 +126,11 @@ import { RolesGuard } from './common/guards/roles.guard';
provide: APP_GUARD,
useClass: RolesGuard,
},
// 速率限制守卫
{
provide: APP_GUARD,
useClass: ThrottlerGuard,
},
],
})
export class AppModule {}