Files

208 lines
9.3 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
description: Java后端迁移到v1框架的智能体工作流程规则
globs:
alwaysApply: true
---
## 智能体工作流程(多智能体协作 - Java迁移版
### 角色定义(按执行顺序标注)
- S1 需求分析体(Analyzer): 解析Java项目结构、建立元数据索引、输出Java→NestJS映射关系
- S2 架构治理体(Architect): 校验分层/依赖/目录规范确保与Java架构对齐
- S3 基建接入体(InfraOperator): 接入/校验 Kafka、Redis、队列、事务与配置提供接入差异与示例
- S4 开发执行体(Developer): 使用迁移工具生成代码按Java逻辑对齐业务实现
- S5 安全基线体(SecurityGuard): 检查守卫、跨租户(site_id)隔离、敏感信息暴露(开发中与提测前各执行一次)
- S6 质量门禁体(QualityGate): 聚合 ESLint/TS/覆盖率/e2e 结果,低于阈值阻断合并
- S7 规范审计体(Auditor): 按Java迁移清单逐项核查确保与Java版本100%一致
- S8 上线管控体(Release): 构建、变更说明、灰度计划与回滚预案
- S9 性能优化体(PerfTuner): 建议缓存/异步化/批处理,识别大对象传输与 N+1开发后期与上线后持续执行
### 串联流程(带顺序)
1) S1 Analyzer (Java迁移版)
- 输入: Java项目扫描结果、业务逻辑对齐需求
- 输出: Java→NestJS映射关系、方法签名对比、依赖关系分析
- 执行:
- 运行迁移工具 `tools/java-to-nestjs-migration/migration-coordinator.js` 扫描Java项目
- 构建中央数据仓库CDRService方法签名索引、DTO类型映射、实体映射关系
- 生成映射报告Java文件→NestJS文件映射表、方法签名对比表、依赖关系分析报告
2) S2 Architect
- 校验: 模块目录、分层结构、依赖方向确保与Java架构对齐
- 输出: 设计说明、端口(Repository/Provider)定义、删除/迁移建议
- 重点: 确保动态模块加载机制正确EntityModule.register()、ServiceModule.register()、ControllerModule.register()
3) S3 InfraOperator
- 接入: Kafka/Redis/队列/事务的工程化接入与配置
- 产物: 接入差异与示例代码,健康检查/配置项校验清单
- 注意: 使用v1框架能力AuthService、CacheService、AppConfigService
4) S4 Developer
- **Java迁移执行步骤**:
1. 使用迁移工具生成代码骨架Entity、DTO、Service、Controller
2. 按模块优先级逐个对齐Java业务逻辑P0核心→P1基础→P2业务→P3扩展
3. 严格对齐方法签名、参数处理、返回值、异常处理、数据库操作
4. 使用v1框架能力AuthService、CacheService、AppConfigService、工具类
5. 禁止自创业务逻辑必须完全按照Java实现
- 接入: 守卫(RBAC)、Pipes(JSON/Timestamp)、拦截器(请求日志)、事件与队列
- 测试: 单测/集成/e2e构建通过
5) S5 SecurityGuard第一次开发阶段
- 检查: 控制器守卫、site_id 隔离、敏感字段输出、配置权限
6) S6 QualityGateCI 阶段)
- 指标: ESLint/TS 无报错覆盖率≥阈值e2e 关键路径通过
- 动作: 不达标阻断合并
7) S7 Auditor提测前 - Java迁移版
- **Java迁移审计检查点**:
- 检查方法签名是否与Java完全一致
- 检查API路径、HTTP方法、参数名是否与Java一致
- 检查响应格式、错误码、异常消息是否与Java一致
- 检查数据库操作是否与Java逻辑一致
- 检查是否使用了框架能力而非自创逻辑
- 检查表名、字段名是否与Java完全一致禁止修改
- 产物: 差异报告与修复任务
8) S5 SecurityGuard第二次提测前
- 复检: 重要接口的鉴权/越权/敏感输出
9) S9 PerfTuner并行/持续)
- 建议: 缓存、异步化、批量化、索引与查询优化;识别 N+1、大对象传输
10) S8 Release
- 产出: 变更日志、部署步骤、数据迁移脚本、回滚预案
### 关键约束Java迁移
- **核心原则**:与 Java 业务逻辑100%对齐数据库结构100%对齐API接口100%对齐
- **优先原则**优先对齐Java逻辑再优化框架特性禁止自创业务逻辑
- **数据库约束**禁止修改表名、字段名、字段类型、索引结构必须与Java完全一致
- **API约束**路由路径、HTTP方法、参数名、响应格式、错误码必须与Java一致
- 禁止创建 DB 不存在字段;`sys_config.value(JSON)` 统一
- 管理端路由 `/adminapi`,前台 `/api`;统一守卫与响应格式
### 基础能力检查点Kafka / Redis / 队列 / 事务)
- 事务: 仅在 Application 开启;多仓储共享同一 EntityManagerCore 不直接操作事务对象
- 队列: 用例完成后入队;载荷仅传关键 ID处理器在 Infrastructure按队列名分域
- 事件: 统一用 DomainEventService事件名 `domain.aggregate.action`;默认 DB Outbox可切 Kafka
- Redis: 短缓存配置读取、上传限流/防刷(计数器)、幂等(SETNX+TTL)
### 命名与对齐Java迁移
- **Java业务命名优先**(不违反 Nest/TS 规范前提下包括服务方法、DTO 字段
- **表名、字段名必须与Java完全一致**(禁止修改)
- **Service实现类命名规则**
- Java `ServiceImpl` → NestJS `ServiceImpl`保持原样不添加Service后缀
- Java `IService` → NestJS `Service`接口去掉I前缀
- **动态模块加载**:使用 `EntityModule.register()`、`ServiceModule.register()`、`ControllerModule.register()`
- Nest 特有类型按规范命名:`*.module.ts`、`*.controller.ts`、`*.service.ts`、`*.entity.ts`、`*.dto.ts`
### 核心链接
- **Java迁移方案**: `./java-migration.mdc`(完整迁移方案和规则)
- **迁移工具**: `tools/java-to-nestjs-migration/`(迁移工具目录)
- **迁移报告**: `tools/java-to-nestjs-migration/migration-report.json`(迁移报告)
### 执行与验收CI/PR 建议)
- PR 必须通过: build、单测/集成/e2e
- 审计体根据 `java-migration.mdc` 自动检查Java对齐情况
- 安全基线: 管理端控制器统一 `JwtAuthGuard + RolesGuard`/adminapi 与 /api 路由前缀
### 目录职能速查Java迁移项目 - v1框架
#### 核心目录结构:
- **entities/**(实体层)
- TypeORM实体文件表名、字段名必须与Java完全一致
- 由迁移工具自动生成,禁止手动修改表结构
- 文件命名:`*.entity.ts`(如 `sys-user.entity.ts`
- **dtos/**(数据传输对象层)
- DTO/VO/Param文件字段名、类型必须与Java一致
- 目录结构:`dtos/admin/*/*.dto.ts`、`dtos/api/*/*.dto.ts`、`dtos/core/*/*.dto.ts`
- 由迁移工具自动生成,需要手动对齐验证规则
- **services/**(服务层)
- **admin/**管理端服务对应Java `service.admin`
- **api/**前台服务对应Java `service.api`
- **core/**核心服务对应Java `service.core`
- 使用动态模块加载:`ServiceModule.register()`
- 文件命名:`*-service-impl.service.ts`(实现类)
- **controllers/**(控制器层)
- **adminapi/**管理端控制器对应Java `controller.adminapi`
- **api/**前台控制器对应Java `controller.api`
- 使用动态模块加载:`ControllerModule.register()`
- 文件命名:`*.controller.ts`
- **entity.module.ts、service.module.ts、controller.module.ts**
- 动态模块文件,由迁移工具自动生成
- 自动扫描并注册所有实体、服务、控制器
- 必须使用 `.register()` 方法注册
- **jobs/**(定时任务层)
- 定时任务文件对应Java `job.*`
- 使用 `JobProviderRegistry` 注册
- **listeners/**(监听器层)
- 事件监听器文件对应Java `listener.*`
- **enums/**(枚举层)
- 枚举文件对应Java枚举类
#### 模块优先级(对齐顺序):
1. **P0 核心模块**:认证、权限、用户管理
- `services/admin/auth/*`
- `services/admin/user/*`
- `services/admin/rbac/*`
2. **P1 基础模块**:配置、菜单、字典
- `services/admin/sys/*`
- `services/core/config/*`
3. **P2 业务模块**:业务功能模块
- `services/admin/member/*`
- `services/admin/order/*`
- `services/admin/pay/*`
4. **P3 扩展模块**:插件、扩展功能
- `services/admin/addon/*`
### 对齐检查清单每个Service方法
- [ ] **方法签名对齐**与Java方法签名完全一致
- [ ] **参数处理对齐**参数类型、参数名与Java一致
- [ ] **返回值对齐**返回值类型与Java一致
- [ ] **异常处理对齐**异常类型、异常消息与Java一致
- [ ] **数据库操作对齐**查询逻辑与Java一致
- [ ] **事务处理对齐**事务范围与Java一致
- [ ] **使用框架能力**使用AuthService、CacheService等不重复造轮子
### 迁移工具使用
```bash
# 运行迁移工具
cd tools/java-to-nestjs-migration
node migration-coordinator.js
# 输出:
# - 扫描Java项目1215个文件
# - 生成NestJS代码骨架
# - 生成映射报告
```
### 质量控制检查点
1. **编译通过**`npm run build` - 无TypeScript编译错误
2. **服务启动**`docker-compose up -d` - 所有模块正确加载
3. **API测试**测试接口与Java版本一致
4. **数据库验证**CRUD操作与Java一致
---
**参考文档**
- 完整迁移方案:`./java-migration.mdc`
- 迁移工具目录:`tools/java-to-nestjs-migration/`