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:
@@ -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`;统一守卫与响应格式
|
||||
|
||||
|
||||
@@ -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的中间件方式更加灵活和类型安全,符合现代框架的设计理念。
|
||||
这种方式灵活且类型安全,符合现代框架的设计理念。
|
||||
|
||||
@@ -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/
|
||||
|
||||
Reference in New Issue
Block a user