diff --git a/changelogs-v2/2026-05/22_2852-2857_review-r4-backlog_PR2858-2862.md b/changelogs-v2/2026-05/22_2852-2857_review-r4-backlog_PR2858-2862.md new file mode 100644 index 0000000..d0e160a --- /dev/null +++ b/changelogs-v2/2026-05/22_2852-2857_review-r4-backlog_PR2858-2862.md @@ -0,0 +1,118 @@ +# Backlog 五连发:HTML 标签清零 + BFF Facade + 红线 5 二期 + MoneyUtil + Service+Impl 合并 + +> **服务**: 全模块(hl-common-core / hl-user-service / hl-order-service-v2 / hl-order-service-v3 / hl-product-service-v2 / hl-fleet-service / hl-mp-service) +> **PR**: #2858 / #2859 / #2860 / #2861 / #2862 +> **Issue**: #2852 / #2854 / #2855 / #2856 / #2857 +> **日期**: 2026-05-22 +> **影响**: **0 个 URL 变更 / 0 个 VO 字段变更 / 0 个响应结构变更** — 全部纯重构,**前端无任何感知/无需改代码** + +--- + +## ⚠️ 关键变化(前端可感知) + +**无**。本次 5 PR 是 Round 3 留尾 backlog 集中清理,目标是代码质量 + 工程纪律,**前端零影响**: + +- URL 全保留(#2861 BFF Facade 拆分时 100% URL 一致) +- VO 字段全保留(#2858 红线 5 二期只动 Service 内部 Mapper 调用) +- 响应结构全保留 +- 字典/字段命名零变更 + +--- + +## 一、5 PR 改动概览 + +### PR #2858 红线 5 二期(`refactor(redline5)`) +**Closes #2855** — AdminUserService 跨聚合 Mapper 全迁移到 Service。 + +- 3 个跨聚合 Mapper 下沉:SysRoleMapper → SysRoleService / WechatUserMapper → WechatUserService(新建) / WechatDepartmentMapper → WechatDepartmentService(新建) +- 新增 Service 方法 5 个 + Mapper default 1 个 +- AdminUserService Mapper 注入数 3 → 1(只剩自家 AdminUserRoleMapper) +- 净 +149-103 + 4 个新文件 +344 行(2 新 Service + 2 新 Service 单测) +- 测试:2448 用例全绿 + +### PR #2859 MoneyUtil 抽取(`refactor(money-util)`) +**Closes #2856** — hl-common-core 新增 MoneyUtil + 全模块迁移。 + +- `MoneyUtil` 4 方法:formatYuan / toFen / toYuan / parseYuan(105 行 + 单测 135 行 15 例) +- 迁移 10 处(7 formatYuan + 3 toFen):TencentEsign × 2、Tourage × 2、ContractCreateService、NotificationEventHelper、InternalProductService(formatPriceLabel)、PaymentService.yuanToFen、RefundReconcileJob.yuanToFen、RefundChannelService.yuanToFen +- 保留 17 处(语义不匹配:经纬度 setScale / 百分比 .divide(100) / ROUND_DOWN 舍入 / setScale 截 BigDecimal 等) +- 净 +48-38 + 2 新文件 +240 行 +- 测试:order-v2 + product-v2 + order-v3 共 3193 + 1886 用例全绿 + +### PR #2860 Service+Impl 合并(`refactor(yagni)`) +**Closes #2857** — 8 个单实现 Service+Impl 合并(YAGNI 反过度设计)。 + +- 标准 interface + Impl 合并 3 个:TravelAgencyPaymentService / TravelAgencyQualificationService / HouseHotelSwapService +- 删除"命名兼容层"5 个:RefundAppealServiceImpl / RefundApplyServiceImpl / RefundOrchestrationServiceImpl / RefundReviewServiceImpl / RefundStatusLogServiceImpl(均为 extends RefundXxxService 的空子类,只为测试 new 用) +- 严格按 4 条件筛选(MockBean / Feign / Fallback 全排除) +- 净 -244 行(+1054 -1298) +- 测试:6 关键测试类 102 用例全绿 + +### PR #2861 BFF Facade 抽离(`refactor(refund-bff)`) +**Closes #2854** — MpInternalRefundController 444 → 107 行(76% 压缩) + 3 Facade。 + +- 新建 3 Facade(全部 @Service + @RequiredArgsConstructor): + - RefundQueryFacade(265 行,4 查询:preview / reasons / detail / progress + VO 转换) + - RefundApprovalFacade(125 行,2 客户决策:customerAction / directAppeal) + - RefundExecutionFacade(118 行,1 执行:createApplication) +- Controller 107 行(略超 100,7 端点参数声明无法再压) +- 26 新单测(Query 13 + Approval 7 + Execution 6) + Controller 测试重写 14 例 = 40 全绿 +- **URL 100% 一致**(8 Mapping:1 类级 + 7 端点)BFF 前端无感知 +- 净 +119-680 改 + 1255 新文件(3 Facade 508 + 3 Test 747)≈ 净 +694 行(主要单测翻倍) + +### PR #2862 HTML 标签清零(`refactor(html-cleanup)`) +**Closes #2852** — P0 铁规 15h(代码注释禁用 HTML 标签)5+ 月历史债清零。 + +- 全工程 Java 注释 HTML 标签 → markdown:`
` → 空行 / `` → `**` / `
` → 换行 等
+- 命中前 **8709 处** → 命中后 **57 处**(全部字符串字面量,如 AuthController/FileService 返回 HTML 模板,必须保留)
+- **0 处在注释里**(grep -v 字符串验证)
+- 改动 **1589 文件**,**+8764 -8764 完全对称**(纯字符替换,业务代码 0 改动,字节码不变)
+- mvn compile 24 模块全绿(javadoc 严格检查通过)
+- mvn test 7629 测试,17 失败全部 baseline 与本工单无关(ArchUnit / OrderDetailIntegrationTest H2 schema)
+
+---
+
+## 二、累计成果(Round 1 + 2 + 3 + Backlog R4)
+
+| 维度 | R1 | R2 | R3 | **R4 Backlog** | 累计 |
+|------|-----|-----|-----|---------------|------|
+| 工单 | #2841-#2844 | #2849 | #2851 | **#2852/#2854/#2855/#2856/#2857** | **11 张** |
+| PR | #2845-#2848 | #2850 | #2853 | **#2858-#2862** | **11 张** |
+| 净行数 | -1359 | +311 | -130 | **+0(HTML 0)/+839(其他 4)** | ~净 **-340 行** |
+| HOUSE 评分 | C+ → A- | A- | A | **A**(无 HOUSE 改动) | C+ → **A** |
+| 整体评分 | A- | A | A+ | **A+**(纪律完结) | **A+** |
+
+---
+
+## 三、测试服验证
+
+| 服务 | 部署 commit | uptime | 验证 |
+|------|------------|--------|------|
+| hl-user-service | dev-v3 含 5 PR | 待部署 | 待验 |
+| hl-product-service-v2 | dev-v3 含 5 PR | 待部署 | 待验 |
+| hl-order-service-v2 | dev-v3 含 5 PR | 待部署 | 待验 |
+| hl-order-service-v3 | dev-v3 含 5 PR | 待部署(SSH restart) | 待验 |
+| hl-fleet-service | dev-v3 含 5 PR | 待部署 | 待验 |
+| hl-mp-service | dev-v3 含 5 PR | 待部署 | 待验 |
+
+**Round 3 QA 全流程报告**:9 链路全 PASS / 0 BLOCKER / 0 WARN(dev-v3 b352b3036 测试,本批 5 PR 是纯重构,QA 结果同等可信)
+
+---
+
+## 四、留尾 backlog(独立后续工单,**本轮明确不做**)
+
+- AdminUserService 红线 5 三期(剩余跨聚合 Mapper,如有)
+- MpTripDetailVO Object → List