--- #### 需求拆解: **[类变更类通知]** Vo、Dto、Model、Entity **目前只针对****修改 ****删除也需要** **需要展示的内容:** 修改人、修改时间 (方便后续前端对接) 对象变更细节:变更了(增删改查)哪些字段 + 字段说明 影响范围:类的变更影响了哪些接口的使用(展示出影响的接口List) * **入参影响** --> dto改变 --> 展示出影响的接口List * **类转换影响** --> dto到entity的转换(这种类型需要 配置开关 判断是否需要检测) --> 展示出Entity类? * **对前端的影响** --> Vo的变动 --> 展示出影响的接口List #### 一、请求链路 Push ↓ Gitea Runner ↓ Pipeline ↓ GitDiff获取变更 ↓ JavaParser解析(AST Controller变化\DTO变化\VO变化\ENTITY变化) ↓ 企业微信通知 #### 二、架构&技术选型 | 组件 | 方案 | | --- | --- | | Git Diff | Git | | 源码解析 | JavaParser | | 引用分析 | JavaParser Symbol Solver | | Spring Endpoint扫描 | Spring Mapping AST | | 通知 | 企业微信机器人 webhook | | CI集成 | Jenkins/GitLab CI | #### 三、分层说明 | **层级** | **组件** | **职责** | | :--- | :--- | :--- | | **触发层** | Git Push | 开发者提交代码,触发 CI 流程 | | **CI/CD 层** | Gitea Runner + Pipeline | 监听 Push 事件,编排流水线任务 | | **解析层** | GitDiff + JavaParser | 获取 diff,按 AST 解析 Controller/DTO/VO/Entity 变更 | | **通知层** | 企业微信 | 将分析结果推送给相关开发人员 | #### 四、通知模版 【类变更通知】 ■ 变更对象:{ClassName}({类类型:Dto/Vo/Entity/Model}) ■ 修改人:{Modifier} ■ 修改时间:{ModifyTime} ──────────────────────────────── ▶ 对象变更细节 ──────────────────────────────── 字段变更列表: [新增] 字段名: fieldA 说明: {字段说明} [删除] 字段名: fieldB 说明: {字段说明} [修改] 字段名: fieldC 说明: {原说明 → 新说明 / 类型变更等} ──────────────────────────────── ▶ 影响范围 ──────────────────────────────── ① 入参影响(Dto变更导致接口参数变化): 影响接口列表: - GET /api/attendance/dayStaList - POST /api/attendance/export (若无影响则显示:无) ② 类转换影响(Dto → Entity 转换,已开启检测): 涉及Entity类:{EntityClassName} (若开关关闭或未检测到影响则显示:无 / 未开启检测) ③ 前端影响(Vo变更导致返回结构变化): 影响接口列表: - GET /api/attendance/detail - GET /api/attendance/summary (若无影响则显示:无)