103 lines
3.8 KiB
Markdown
103 lines
3.8 KiB
Markdown
---
|
||
|
||
#### 需求拆解:
|
||
**[类变更类通知]** Vo、Dto、Model、Entity **目前只针对****<u>修改 </u>****<u><font style="background-color:#FBDE28;">删除也需要</font></u>**
|
||
|
||
**需要展示的内容:**
|
||
|
||
修改人、修改时间 (方便后续前端对接)
|
||
|
||
对象变更细节:变更了(增删改查)哪些字段 + 字段说明
|
||
|
||
影响范围:类的变更影响了哪些接口的使用(展示出影响的接口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 |
|
||
|
||
|
||
|
||
|
||
#### 三、分层说明
|
||
| **<font style="color:rgba(20, 20, 20, 0.92);">层级</font>** | **<font style="color:rgba(20, 20, 20, 0.92);">组件</font>** | **<font style="color:rgba(20, 20, 20, 0.92);">职责</font>** |
|
||
| :--- | :--- | :--- |
|
||
| **<font style="color:rgba(20, 20, 20, 0.92);">触发层</font>** | <font style="color:rgba(20, 20, 20, 0.92);">Git Push</font> | <font style="color:rgba(20, 20, 20, 0.92);">开发者提交代码,触发 CI 流程</font> |
|
||
| **<font style="color:rgba(20, 20, 20, 0.92);">CI/CD 层</font>** | <font style="color:rgba(20, 20, 20, 0.92);">Gitea Runner + Pipeline</font> | <font style="color:rgba(20, 20, 20, 0.92);">监听 Push 事件,编排流水线任务</font> |
|
||
| **<font style="color:rgba(20, 20, 20, 0.92);">解析层</font>** | <font style="color:rgba(20, 20, 20, 0.92);">GitDiff + JavaParser</font> | <font style="color:rgba(20, 20, 20, 0.92);">获取 diff,按 AST 解析 Controller/DTO/VO/Entity 变更</font> |
|
||
| **<font style="color:rgba(20, 20, 20, 0.92);">通知层</font>** | <font style="color:rgba(20, 20, 20, 0.92);">企业微信</font> | <font style="color:rgba(20, 20, 20, 0.92);">将分析结果推送给相关开发人员</font> |
|
||
|
||
|
||
|
||
|
||
#### 四、通知模版
|
||
【类变更通知】
|
||
|
||
■ 变更对象:{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
|
||
(若无影响则显示:无)
|
||
|