--- 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项目 - 构建中央数据仓库(CDR):Service方法签名索引、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 QualityGate(CI 阶段) - 指标: 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 开启;多仓储共享同一 EntityManager;Core 不直接操作事务对象 - 队列: 用例完成后入队;载荷仅传关键 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/`