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:
@@ -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: [
|
||||
|
||||
4
wwjcloud/src/common/cache/cache.module.ts
vendored
4
wwjcloud/src/common/cache/cache.module.ts
vendored
@@ -1,4 +0,0 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
|
||||
@Module({})
|
||||
export class CacheModule {}
|
||||
@@ -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',
|
||||
};
|
||||
@@ -1,9 +0,0 @@
|
||||
import { Controller, Get } from '@nestjs/common';
|
||||
|
||||
@Controller('dictionary')
|
||||
export class DictionaryController {
|
||||
@Get('ping')
|
||||
ping() {
|
||||
return 'dictionary ok';
|
||||
}
|
||||
}
|
||||
@@ -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 {}
|
||||
@@ -1,8 +0,0 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
|
||||
@Injectable()
|
||||
export class DictionaryService {
|
||||
ping() {
|
||||
return 'dictionary service ok';
|
||||
}
|
||||
}
|
||||
@@ -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'
|
||||
@@ -1,4 +0,0 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
|
||||
@Module({})
|
||||
export class HealthModule {}
|
||||
@@ -15,4 +15,4 @@ export * from './auth/decorators/RolesDecorator';
|
||||
export * from './settings';
|
||||
|
||||
// 导出常量
|
||||
export * from './config/constants';
|
||||
export * from '../config/common/constants';
|
||||
@@ -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 {}
|
||||
@@ -1,4 +0,0 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
|
||||
@Module({})
|
||||
export class OpenapiModule {}
|
||||
@@ -1,4 +0,0 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
|
||||
@Module({})
|
||||
export class QueueModule {}
|
||||
@@ -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 {
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
|
||||
Reference in New Issue
Block a user