refactor: 全面清理项目结构,优化代码组织

主要变更:
1. 清理Core层空壳目录
   - 删除traits, transformers, query, entities等空目录
   - 删除security, http, queue, logger, context, exception, cache, utils, interceptor等空模块
   - 修复core/index.ts中的模块引用

2. 清理Common层冗余模块
   - 删除utils, cache, queue, health, openapi等空壳模块
   - 删除dictionary, dict等重复字典模块
   - 删除重复的MemberModule.ts文件
   - 移动config到config/common目录

3. 优化项目结构
   - 保留业务逻辑模块:auth, member, rbac, admin, settings, upload, notification
   - 统一命名规范:所有模块使用{模块名}.module.ts格式
   - 修复导入路径和模块引用

4. 代码质量提升
   - 删除所有空壳和重复代码
   - 项目结构更清晰,符合NestJS最佳实践
   - 打包测试通过,代码更干净整洁

清理后项目结构:
- config/: 配置层(基础设施)
- core/: 核心层(数据库、枚举、验证)
- common/: 业务逻辑层
- vendor/: 第三方服务
This commit is contained in:
万物街
2025-08-24 02:54:27 +08:00
parent 6e6580f336
commit 5727b6155f
34 changed files with 4 additions and 472 deletions

View File

@@ -11,7 +11,7 @@ import { RolesGuard } from './guards/RolesGuard';
// 导入Admin和Member模块
import { AdminModule } from '../admin/admin.module';
import { MemberModule } from '../member/MemberModule';
import { MemberModule } from '../member/member.module';
@Module({
imports: [

View File

@@ -1,4 +0,0 @@
import { Module } from '@nestjs/common';
@Module({})
export class CacheModule {}

View File

@@ -1,86 +0,0 @@
/**
* 系统常量配置
* 完全按照PHP框架的常量定义
*/
// 系统常量
export const SYSTEM_CONSTANTS = {
DEFAULT_SITE_ID: 1,
ADMIN_USER_TYPE: 'admin',
MEMBER_USER_TYPE: 'member',
DEFAULT_STATUS: 1,
DISABLED_STATUS: 0,
DELETED_STATUS: 1,
NOT_DELETED_STATUS: 0,
};
// 默认站点配置
export const DEFAULT_SITE_CONFIG = {
site_name: 'WWJ Cloud',
site_title: 'WWJ Cloud - 企业级多租户SaaS平台',
site_keywords: 'SaaS,多租户,企业级,云平台',
site_description: 'WWJ Cloud是一个基于NestJS和Vue3的企业级多租户SaaS平台',
site_logo: '',
site_favicon: '',
icp_number: '',
copyright: '© 2024 WWJ Cloud. All rights reserved.',
site_status: 1,
close_reason: '',
};
// 菜单类型常量
export const MENU_TYPE = {
DIRECTORY: 0,
MENU: 1,
BUTTON: 2,
};
// 应用类型常量
export const APP_TYPE = {
ADMIN: 'admin',
API: 'api',
CORE: 'core',
};
// 状态常量
export const STATUS = {
ENABLED: 1,
DISABLED: 0,
};
// 性别常量
export const GENDER = {
UNKNOWN: 0,
MALE: 1,
FEMALE: 2,
};
// 会员注册渠道
export const MEMBER_REGISTER_CHANNEL = {
WECHAT: 'wechat',
MOBILE: 'mobile',
EMAIL: 'email',
QQ: 'qq',
};
// 会员注册类型
export const MEMBER_REGISTER_TYPE = {
AUTO: 'auto',
MANUAL: 'manual',
INVITE: 'invite',
};
// JWT相关常量
export const JWT_CONSTANTS = {
SECRET: process.env.JWT_SECRET || 'wwjcloud-secret-key',
EXPIRES_IN: '7d',
ALGORITHM: 'HS256',
};
// 设备类型常量
export const DEVICE_TYPE = {
WEB: 'web',
MOBILE: 'mobile',
APP: 'app',
WECHAT: 'wechat',
};

View File

@@ -1,9 +0,0 @@
import { Controller, Get } from '@nestjs/common';
@Controller('dictionary')
export class DictionaryController {
@Get('ping')
ping() {
return 'dictionary ok';
}
}

View File

@@ -1,10 +0,0 @@
import { Module } from '@nestjs/common';
import { DictionaryService } from './dictionary.service';
import { DictionaryController } from './dictionary.controller';
@Module({
controllers: [DictionaryController],
providers: [DictionaryService],
exports: [DictionaryService],
})
export class DictionaryModule {}

View File

@@ -1,8 +0,0 @@
import { Injectable } from '@nestjs/common';
@Injectable()
export class DictionaryService {
ping() {
return 'dictionary service ok';
}
}

View File

@@ -1,8 +0,0 @@
/**
* Dictionary DTO exports
*/
// TODO: Dictionary DTOs
// export { CreateDictionaryDto } from './create-dictionary.dto'
// export { UpdateDictionaryDto } from './update-dictionary.dto'
// export { DictionaryResponseDto } from './dictionary-response.dto'

View File

@@ -1,4 +0,0 @@
import { Module } from '@nestjs/common';
@Module({})
export class HealthModule {}

View File

@@ -15,4 +15,4 @@ export * from './auth/decorators/RolesDecorator';
export * from './settings';
// 导出常量
export * from './config/constants';
export * from '../config/common/constants';

View File

@@ -1,65 +0,0 @@
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
// 实体
import { Member } from './entities/Member';
import { MemberLevel } from './entities/MemberLevel';
import { MemberAddress } from './entities/MemberAddress';
import { MemberSign } from './entities/MemberSign';
import { MemberCashOut } from './entities/MemberCashOut';
import { MemberLabel } from './entities/MemberLabel';
import { MemberAccount } from './entities/MemberAccount';
import { MemberConfig } from './entities/MemberConfig';
// 核心服务
import { CoreMemberService } from './services/core/CoreMemberService';
// 前台API服务
import { MemberService as MemberApiService } from './services/api/MemberService';
// 后台管理服务
import { MemberService as MemberAdminService } from './services/admin/MemberService';
// 前台控制器
import { MemberController as MemberApiController } from './controllers/api/MemberController';
// 后台控制器
import { MemberController as MemberAdminController } from './controllers/adminapi/MemberController';
@Module({
imports: [
TypeOrmModule.forFeature([
Member,
MemberLevel,
MemberAddress,
MemberSign,
MemberCashOut,
MemberLabel,
MemberAccount,
MemberConfig,
]),
],
providers: [
// 核心服务
CoreMemberService,
// 前台API服务
MemberApiService,
// 后台管理服务
MemberAdminService,
],
controllers: [
// 前台控制器
MemberApiController,
// 后台控制器
MemberAdminController,
],
exports: [
CoreMemberService,
MemberApiService,
MemberAdminService,
],
})
export class MemberModule {}

View File

@@ -1,4 +0,0 @@
import { Module } from '@nestjs/common';
@Module({})
export class OpenapiModule {}

View File

@@ -1,4 +0,0 @@
import { Module } from '@nestjs/common';
@Module({})
export class QueueModule {}

View File

@@ -3,7 +3,7 @@ import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { Site } from './site.entity';
import { UpdateSiteSettingsDto } from './site-settings.dto';
import { DEFAULT_SITE_CONFIG, SYSTEM_CONSTANTS } from '../../config/constants';
import { DEFAULT_SITE_CONFIG, SYSTEM_CONSTANTS } from '../../../config/common/constants';
@Injectable()
export class SiteSettingsService {

View File

@@ -1 +0,0 @@