---
#### 需求拆解:
**[类变更类通知]** 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
(若无影响则显示:无)