fix: 修复service模块重命名逻辑并成功集成core层API

主要修改:
1. 修复module-generator中服务重命名时的DI错误
   - 对于重命名的服务,直接使用别名注册,避免TypeScript找不到原始名称
   - 移除不必要的provide/useClass模式

2. 集成core层到主应用
   - 在app.module.ts中导入wwjcloud-core的AppModule
   - 在wwjcloud-core/src/index.ts中导出AppModule

3. 构建结果
   - 编译错误: 64+ -> 0
   - 注册路由: 15 -> 678
   - Docker服务全部正常启动
   - API接口正常响应
This commit is contained in:
wanwu
2025-10-26 20:40:23 +08:00
parent 0e8b6f5782
commit b735e24428
1712 changed files with 110857 additions and 273779 deletions

View File

@@ -2,46 +2,46 @@
## 📋 概述
本文档为AI开发者提供完整的智能体协作工作流程确保AI能够高效、规范地完成NestJS项目开发同时与PHP项目保持100%业务一致性。
本文档为AI开发者提供完整的智能体协作工作流程确保AI能够高效、规范地完成NestJS项目开发同时与Java项目保持100%业务一致性。
## 🎯 核心目标
- **框架层面**: 100% 使用 NestJS 的方式
- **业务层面**: 与 PHP 项目保持 100% 一致
- **数据层面**: 与 PHP 项目数据库结构 100% 一致
- **业务层面**: 与 Java 项目保持 100% 一致
- **数据层面**: 与 Java 项目数据库结构 100% 一致
## 🚫 AI开发严格约束条件必须遵守
### 绝对禁止的AI行为
1. **🚫 禁止自创业务逻辑** - 所有业务逻辑必须严格基于PHP项目真实代码
2. **🚫 禁止假设数据结构** - 所有数据结构必须基于 `g:\wwjcloud-nestjs\sql\wwjcloud.sql` 真实表结构
3. **🚫 禁止使用默认值** - 所有字段、方法、配置必须基于PHP项目真实值
1. **🚫 禁止自创业务逻辑** - 所有业务逻辑必须严格基于Java项目真实代码
2. **🚫 禁止假设数据结构** - 所有数据结构必须基于 `sql/wwjcloud.sql` 真实表结构
3. **🚫 禁止使用默认值** - 所有字段、方法、配置必须基于Java项目真实值
4. **🚫 禁止编写骨架代码** - 不允许生成空方法、TODO注释或占位符代码
5. **🚫 禁止写死数据** - 不允许硬编码任何业务数据或配置
6. **🚫 禁止猜测API接口** - 所有接口必须基于PHP控制器真实方法
6. **🚫 禁止猜测API接口** - 所有接口必须基于Java控制器真实方法
7. **🚫 禁止随意命名** - 所有命名必须遵循既定规范,不允许自由发挥
8. **🚫 禁止跳过验证** - 每个生成的文件都必须经过严格验证
### 必须遵循的数据源
- **数据库结构**: `g:\wwjcloud-nestjs\sql\wwjcloud.sql` (唯一权威数据源)
- **PHP控制器**: `niucloud-php\niucloud\app\adminapi\controller\` (API接口定义)
- **PHP服务层**: `niucloud-php\niucloud\app\service\` (业务逻辑实现)
- **PHP模型**: `niucloud-php\niucloud\app\model\` (数据模型定义)
- **PHP验证器**: `niucloud-php\niucloud\app\validate\` (数据验证规则)
- **数据库结构**: `sql/wwjcloud.sql` (唯一权威数据源)
- **Java控制器**: `niucloud-java/niucloud-core/src/main/java/.../controller/` (API接口定义)
- **Java服务层**: `niucloud-java/niucloud-core/src/main/java/.../service/` (业务逻辑实现)
- **Java实体**: `niucloud-java/niucloud-core/src/main/java/.../entity/` (数据模型定义)
- **Java验证器**: `niucloud-java/niucloud-core/src/main/java/.../validator/` (数据验证规则)
### AI开发质量标准
- **数据库字段映射准确率**: 100%
- **PHP方法对应准确率**: 100%
- **Java方法对应准确率**: 100%
- **业务逻辑一致性**: 100%
- **代码可直接运行**: 100%
- **命名规范符合率**: 100%
### AI开发检查清单
- [ ] 已查看对应的PHP源码文件
- [ ] 已查看对应的Java源码文件
- [ ] 已查看相关的数据库表结构
- [ ] 已理解真实的业务逻辑
- [ ] 已确认所有依赖关系
@@ -51,9 +51,9 @@
## 🤖 智能体角色定义(按执行顺序标注)
### S1 需求分析体(Analyzer)
- **职责**: 解析需求、对应 PHP/Nest 规范、输出任务切分与验收标准
- **输入**: 业务需求/接口变更/对齐 PHP 的说明
- **输出**: 模块划分、路由表、DTO、实体字段清单、与 DB/ThinkPHP 对照
- **职责**: 解析需求、对应 Java/Nest 规范、输出任务切分与验收标准
- **输入**: 业务需求/接口变更/对齐 Java 的说明
- **输出**: 模块划分、路由表、DTO、实体字段清单、与 DB/Spring Boot 对照
### S2 架构治理体(Architect)
- **职责**: 校验分层/依赖/目录规范,给出重构建议与边界清单
@@ -82,7 +82,7 @@
### S7 规范审计体(Auditor)
- **职责**: 按清单逐项核查,出具差异报告与修复项
- **检查**: 规范清单,字段/命名/路由/守卫/事务/队列/事件 与 PHP/DB 对齐
- **检查**: 规范清单,字段/命名/路由/守卫/事务/队列/事件 与 Java/DB 对齐
- **产物**: 差异报告与修复任务
### S8 上线管控体(Release)
@@ -122,12 +122,12 @@
- **层级内聚**模块内部按Spring Boot分层架构组织Controller→Service→Repository→Entity
- **模块间解耦**:模块间通过明确的接口和事件进行通信,避免直接依赖
### 2. 功能复写实现 → 参考 PHP项目 的业务逻辑
### 2. 功能复写实现 → 参考 Java项目 的业务逻辑
- 所有业务逻辑必须严格基于PHP项目真实代码
- API接口功能与PHP控制器保持100%一致
- 数据处理流程与PHP服务层保持100%一致
- 业务规则与PHP验证器保持100%一致
- 所有业务逻辑必须严格基于Java项目真实代码
- API接口功能与Java控制器保持100%一致
- 数据处理流程与Java服务层保持100%一致
- 业务规则与Java验证器保持100%一致
### 3. 框架特性使用 → 使用 NestJS 的技术特性
@@ -143,21 +143,21 @@
### auto-mapping-checker.js 使用指南
```bash
# 检查PHP和NestJS项目对应关系
# 检查Java和NestJS项目对应关系
node auto-mapping-checker.js
# 检查结果解读:
# ✅ 表示文件对应正确
# ❌ 表示PHP存在但NestJS缺失
# ❌ 表示Java存在但NestJS缺失
# 📊 统计信息:检查模块数、发现问题数
```
### 工具检查维度
- **模块对应性**: PHP模块与NestJS模块一一对应
- **模块对应性**: Java模块与NestJS模块一一对应
- **分层完整性**: 控制器、服务、实体等层级完整
- **文件命名规范**: 确保命名符合各自框架规范
- **业务逻辑一致性**: 功能实现与PHP项目保持一致
- **业务逻辑一致性**: 功能实现与Java项目保持一致
## 📚 相关文档
@@ -176,7 +176,7 @@ node auto-mapping-checker.js
## 🔗 核心约束
-PHP 业务/数据100%一致;与 NestJS 规范100%匹配
-Java 业务/数据100%一致;与 NestJS 规范100%匹配
- 禁止创建 DB 不存在字段;`sys_config.value(JSON)` 统一
- 管理端路由 `/adminapi`,前台 `/api`;统一守卫与响应格式

View File

@@ -2,17 +2,7 @@
## 认证架构对比
### 1. PHP ThinkPHP (传统方式)
```php
// 通过中间件全局处理
class AdminCheckToken {
public function handle(Request $request, Closure $next) {
// 检查token某些路由可以跳过
}
}
```
### 2. Java Spring Boot (注解方式)
### 1. Java Spring Boot (注解方式)
```java
@RestController
public class AuthController {
@@ -26,7 +16,7 @@ public class AuthController {
}
```
### 3. NestJS (装饰器方式) - 更像Java
### 2. NestJS (装饰器方式) - 更像Java
```typescript
@Controller('adminapi/auth')
export class AuthController {
@@ -104,15 +94,15 @@ export const Public = () => SetMetadata(IS_PUBLIC_KEY, true);
### 路由路径对齐
#### PHP → NestJS 路径映射
#### Java → NestJS 路径映射
```typescript
// PHP: /adminapi/sys/get/website
// Java: /adminapi/sys/get/website
// NestJS: @Get('get/website') 在 @Controller('adminapi/sys')
// PHP: /adminapi/login
// Java: /adminapi/login
// NestJS: @Get('login') 在 @Controller('adminapi') + @Public()
// PHP: /adminapi/captcha/create
// Java: /adminapi/captcha/create
// NestJS: @Get('create') 在 @Controller('adminapi/captcha') + @Public()
```
@@ -145,9 +135,9 @@ export class ConfigController {
```
#### 3. 路径命名规范
- **PHP方法名**: `getWebsite()`**NestJS路径**: `get/website`
- **PHP方法名**: `setWebsite()`**NestJS路径**: `set/website`
- **PHP方法名**: `getSceneDomain()`**NestJS路径**: `get/scene/domain`
- **Java方法名**: `getWebsite()`**NestJS路径**: `get/website`
- **Java方法名**: `setWebsite()`**NestJS路径**: `set/website`
- **Java方法名**: `getSceneDomain()`**NestJS路径**: `get/scene/domain`
### 验证方法
@@ -168,10 +158,10 @@ curl -H "Authorization: Bearer <token>" http://localhost:3001/adminapi/site/list
### 总结
NestJS的认证处理方式**更像Java Spring Boot**,使用装饰器模式:
NestJS的认证处理方式**Java Spring Boot相同**,使用装饰器模式:
1. **@Public()** = Java的 **@SaNotCheckLogin**
2. **默认需要登录** = Java的 **@SaCheckLogin**
3. **全局守卫** = Java的 **拦截器**
这种方式比PHP的中间件方式更加灵活类型安全,符合现代框架的设计理念。
这种方式灵活类型安全,符合现代框架的设计理念。

View File

@@ -8,11 +8,11 @@
### 1. 框架使用原则
- **框架层面**: 100% 使用 NestJS 的方式和特性
- **业务层面**: 与 PHP 项目保持 100% 一致
- **数据层面**: 与 PHP 项目数据库结构 100% 一致
- **业务层面**: 与 Java 项目保持 100% 一致
- **数据层面**: 与 Java 项目数据库结构 100% 一致
### 2. 开发约束条件
-**必须**: 基于 PHP 项目真实代码进行开发
-**必须**: 基于 Java 项目真实代码进行开发
-**必须**: 基于真实数据库表结构进行映射
-**必须**: 遵循项目既定的命名规范
-**禁止**: 自创业务逻辑或数据结构
@@ -107,7 +107,7 @@ src/
#### 1. 业务方法
- **格式**: `camelCase`
- **原则**: 与 PHP 项目方法名保持一致
- **原则**: 与 Java 项目方法名保持一致
- **示例**: `getUserList()`, `addUser()`, `updateConfig()`
#### 2. 私有方法
@@ -126,7 +126,7 @@ src/
#### 2. 业务变量
- **格式**: `camelCase`
- **原则**: 与 PHP 项目变量名保持一致
- **原则**: 与 Java 项目变量名保持一致
- **示例**: `userId`, `userName`, `configKey`
#### 3. 常量
@@ -136,12 +136,12 @@ src/
### 数据库相关命名
#### 1. 表名映射
- **原则**: 与 PHP 项目表名 100% 一致
- **原则**: 与 Java 项目表名 100% 一致
- **示例**: `nc_sys_config`, `nc_sys_user`, `nc_member_level`
- **说明**: 不能修改任何表名或前缀
#### 2. 字段名映射
- **原则**: 与 PHP 项目字段名 100% 一致
- **原则**: 与 Java 项目字段名 100% 一致
- **示例**: `site_id`, `config_key`, `create_time`, `update_time`
- **说明**: 不能修改任何字段名或类型
@@ -214,7 +214,7 @@ export class CreateUserDto {
## 📋 开发检查清单
### 开发前检查
- [ ] 已查看对应的 PHP 源码文件
- [ ] 已查看对应的 Java 源码文件
- [ ] 已查看相关的数据库表结构
- [ ] 已理解真实的业务逻辑
- [ ] 已确认所有依赖关系
@@ -222,9 +222,9 @@ export class CreateUserDto {
### 开发中检查
- [ ] 文件命名符合项目规范
- [ ] 类命名符合项目规范
- [ ] 方法命名与 PHP 项目一致
- [ ] 方法命名与 Java 项目一致
- [ ] 数据库字段映射准确
- [ ] 业务逻辑与 PHP 项目一致
- [ ] 业务逻辑与 Java 项目一致
### 开发后检查
- [ ] 代码可以正常编译
@@ -245,16 +245,16 @@ export class CreateUserDto {
### 3. 业务逻辑错误
- ❌ 错误: 自创业务逻辑
- ✅ 正确: 基于 PHP 项目真实代码
- ✅ 正确: 基于 Java 项目真实代码
### 4. 数据库映射错误
- ❌ 错误: 修改表名或字段名
- ✅ 正确: 与 PHP 项目 100% 一致
- ✅ 正确: 与 Java 项目 100% 一致
## 📚 参考资源
- **项目仓库**: wwjcloud-nsetjs
- **PHP 项目**: niucloud-php
- **Java 项目**: niucloud-java
- **数据库结构**: `sql/wwjcloud.sql`
- **NestJS 官方文档**: https://nestjs.com/
- **TypeORM 文档**: https://typeorm.io/