优化结构
This commit is contained in:
@@ -58,7 +58,7 @@
|
||||
| stringOr;normalizePayPalOrderState;paypalOrderTradeNo;nestedString/amountFromDecimalField(shim 连调用者都没有) | wechat_v2.go:584、paypal.go:651,388-391、result.go:98,148-155 |
|
||||
| RegisterAll 仅测试调用;TaskScheduler.Trigger(task) 可未导出(仅 TriggerID 内部用) | pkg/task/registry.go:39;worker/task_scheduler.go:425 |
|
||||
| 仅测试调用:decryptWechatV3、alipaySignContent、validatePaymentConfig、wechatV2Sign(可移测试文件) | wechat_v3.go:600-605、alipay.go:572-585、data/payment/payment.go:551-553、wechat_v2.go:47 |
|
||||
| P1-3 修复残留 micro-shim:result.go:58-64 与 payment_helpers.go:5-11 仍保留同名本地包装转发 paymentutil | integration/payment/result.go;data/payment/payment_helpers.go |
|
||||
| P1-3 修复残留 micro-shim:result.go:58-64 与 payment_helpers.go:5-11 仍保留同名本地包装转发 paymentkit | integration/payment/result.go;data/payment/payment_helpers.go |
|
||||
|
||||
## 三、重复实现 / 双份维护
|
||||
|
||||
@@ -95,7 +95,7 @@
|
||||
| D-17 | data/payment:callbackFields/first 整函数复制且已分叉(integration 版 Content-Type 大小写不敏感遍历 vs data 版直接下标,行为漂移隐患);values() 与 testRow() 近重复;渠道"免 notify_url"同义词表在 data 层重抄一份与各适配器 createMethod 表双份维护 | data/payment/payment.go:507-540,31-50,273-292,394-425 vs integration/payment/result.go:14-56 |
|
||||
| D-18 | service:authorityResponse 与 convertAuthority 逐字重复;"单条 DTO helper + for-append"样板 9 处;"Request 包装+Filter 包装+裸方法"三重入口家族(audit/parameter/export/dictionary/media);user 空对象兜底三连 | service/system/authority.go:30-36 vs user_conversion.go:8-14 等 |
|
||||
| D-19 | payment 金额守恒校验四处重复(biz validatePaymentBreakdown + vendor + wechat_v3 + douyin 各一份) | biz/payment/payment.go:1112-1135;vendor.go:235-253;wechat_v3.go:555;douyin.go |
|
||||
| D-20 | 状态词汇归一三处维护(paymentutil.NormalizeStatus + 各 adapter + data/payment normalizeOrderPaymentStatus) | paymentkit/status.go:8-19;data/payment/payment_order.go:478 |
|
||||
| D-20 | 状态词汇归一三处维护(paymentkit.NormalizeStatus + 各 adapter + data/payment normalizeOrderPaymentStatus) | paymentkit/status.go:8-19;data/payment/payment_order.go:478 |
|
||||
|
||||
## 四、过度分层:转发门面 / 透传壳 / 回调穿透
|
||||
|
||||
@@ -139,7 +139,7 @@
|
||||
| P-1 | pkg/httpx | internal/server/httpx | 消费者 100% 在 internal/server 7 文件;中文文案+x-token cookie 是本项目契约;logging/source.go:59 已预留该路径 marker | 7 文件 |
|
||||
| P-2 | pkg/logging | internal/logging | source.go:47-69 硬编码本仓库 internal 路径;zap.go:366-382 中文文案;模块路由硬编码服务日志查看器语义;AGENTS.md 声称的 internal/logging 不存在 | 约 5 文件 |
|
||||
| P-3 | pkg/module | internal/modules | Menu/API/Surface/TimedTask 是本项目模块系统契约;import gin;15 消费者全在本仓库 | 15 文件 |
|
||||
| P-4 | pkg/paymentkit 渠道常量(provider.go) | internal/biz/payment 本体 | 常量归位并删 biz/payment/payment.go:20-43 的 17+2 个别名转发层;目录更名 paymentutil 对齐包名(当前目录名≠包名);通用工具(signing/json/amount/xml)可留 pkg 或并入 internal/utils | 约 8 文件 |
|
||||
| P-4 | pkg/paymentkit 渠道常量(provider.go) | internal/biz/payment 本体 | 常量归位并删 biz/payment/payment.go:20-43 的 17+2 个别名转发层;目录更名 paymentkit 对齐包名(当前目录名≠包名);通用工具(signing/json/amount/xml)可留 pkg 或并入 internal/utils | 约 8 文件 |
|
||||
| P-5 | pkg/mq + pkg/websocket(Hub) | 收缩或合并进 internal/integration/mq | 全链零业务消费者(见 2.2);保留 TestConfig 探测+基础驱动,删 Registry/Client()/namedClient/legacy API/Hub/ApplySubscriptions | 约 7 文件 |
|
||||
| P-6 | integration/mq 与 integration/websocket 的重复 JSON map helper | internal/utils/jsonvalue | 上收去重(逐字符相同) | 2-3 文件 |
|
||||
| P-7 | storage:aws-sdk-v2 栈与 minio-go 栈双 S3 实现并存 | 统一 S3 兼容单栈(可选) | qiniu/aliyun/huawei/tencent 原生 SDK 均有 S3 兼容端点,可收敛删 4 实现+s3 死分支 | 5-6 文件 |
|
||||
@@ -225,6 +225,30 @@
|
||||
|
||||
---
|
||||
|
||||
## 第四轮处置结果(2026-08-27)
|
||||
|
||||
本轮按 `2.1`、`2.3`、第三至第九节逐项反查。保持现有 HTTP 路径和 JSON 契约;`2.2` 及其交叉项 D-6、P-5、P-6、P-11、C-7、C-10、`namedClient/Client()` 明确排除。
|
||||
|
||||
### 已修复
|
||||
|
||||
- **2.1/2.3 死代码**:删除 Permission 三个旧按钮入口、APITokenRepo 旧禁用入口、UserRepo 两个冗余组合入口、FindMediaByHash、AuthorityMenuIDs、Email.Alert、Security.ActiveTokenMatches、MenuService.List、无消费者 service/DTO 包装及零散支付 helper;测试专用签名/解密 helper 移入 `_test.go`;`TaskScheduler.Trigger` 改为私有。
|
||||
- **支付与分层**:data 不再直接 import integration/payment,改由 biz 声明 `PaymentAdapterFactory`、integration 实现;hooks/订单来源/发货注册表改为构造注入;渠道常量与回调 ACK 归 `biz/payment`,通用金额/JSON/签名/XML 工具归 `internal/paymentkit`。
|
||||
- **正确性残留**:vendor 退款非 JSON或无业务状态时失败关闭;支付回调读体错误加入 Gin error chain;ErrAuthoritiesRequired 原样透传;版本导入与导入留痕改为单事务;Excel `[]byte` 区分数值和前导零文本;登录日志补 IP/时间筛选;任务描述复用模块元数据。
|
||||
- **包归属与门面**:`pkg/httpx`→`internal/server/httpx`、`pkg/logging`→`internal/logging`、`pkg/paymentkit`→`internal/paymentkit`;handler/server 直接依赖具体 service 子包,根 service 仅保留 Wire 聚合;DataScope 回调注册移回 Data 生命周期。
|
||||
- **其他减法**:删除 `RegisterAll`、`parseTemplateColumns`、PayPal/WeChat/vendor 等确认无调用函数;`NewGinEngine` 移为测试 helper。S3 构造器分支和 vendor SuperPay 等存在交叉或误报的条目未强行删除。
|
||||
|
||||
### 核实后保留
|
||||
|
||||
- APIToken 作废链、Permission SelectedButtons 链、AuditRecorder.CreateErrorRequest、vendor SuperPay、支付内部支付/退款扩展接口均有真实消费者或明确扩展职责,不按死代码删除。
|
||||
- 标准 biz usecase、service transport 边界、initialize 编排、config.Store/runtimeconfig.Store 分离、`pkg/module`、`pkg/database`、`internal/data/provider` 属于既定分层契约,保留。
|
||||
- F-1 保留 DTO↔DO 转换,只移除无意义转发;D-9、D-11、P-3、P-7、P-10、P-13、F-7、F-9、F-10、C-8、X-6、X-8、X-11 经核实不采用原建议。
|
||||
|
||||
### 部分完成/后续批次
|
||||
|
||||
- D-1~D-5、D-7~D-8、D-10、D-12~D-20、L-2~L-12、S-1~S-9、X-1~X-5、X-7、X-9~X-10 中的大范围统一 ListOptions、路由单一声明源、配置通道统一、middleware 全量去重和文件重组未在本轮强行完成;这些变更耦合面大,应拆分为独立批次并逐批验证。
|
||||
- L-1 已消除 data→integration/payment 直接依赖,但支付连通性测试编排仍位于 data/payment,后续可迁至 biz 应用流程。
|
||||
- F-4 handler/http 便捷门面和部分 payment micro-shim 暂留;外部契约不变,后续可在独立机械重构中清理。
|
||||
|
||||
## 已修复并经复查确认(第三轮逐条验证,2026-08-27)
|
||||
|
||||
> 以下条目经第三轮 5 路代理逐条核查属实(含编译验证通过),从上方问题清单移除,此处留痕。复查中发现的部分修复残留已回升为一节 R 系列条目。
|
||||
|
||||
Reference in New Issue
Block a user