4.1 KiB
4.1 KiB
Round 2 review 收尾 7 项:Wrapper 漏修 + LockFailure 500 + JavaDoc 旧编号 + 孤儿枚举 + Publisher rename + 脱敏收敛 + Mapper default 单测
存放目录: 二期 →
changelogs-v2/2026-05/服务: hl-user-service + hl-common-core + hl-starter-protection + hl-order-service-v3 PR: #2850 Issue: #2849 日期: 2026-05-22 影响范围: 全部内部代码简化 / 无破坏性变更 — 但 HouseEventPublisher → HouseNotificationPublisher rename + LockFailureException 全局新错误码
⚠️ 关键变化(前端可感知)
1. 🟡 @Lock4j 抢锁失败错误码 100503 RESOURCE_LOCKED
之前 @Lock4j(acquireTimeout=5s) 抢锁失败抛 LockFailureException 上抛 GlobalExceptionHandler 兜底返 500,前端体验差。
现:全局 LockFailureExceptionHandler 拦截返:
{ "code": 100503, "message": "资源被占用,请稍后重试", "success": false }
生效范围:全部 @Lock4j 注解(目前主要 ProductSnapshotService.restoreSnapshot,后续扩展)。前端如有错误码映射需识别 100503 显示"操作冲突,请稍后重试"提示。
2. 🟢 Bug 修复:漏修的 listCustomers Wrapper(后端内部)
hl-user-service listCustomers Service 内 Wrapper 残留下沉到 UserMapper.selectCustomerPage default。前端无感知。
一、变更接口清单
| # | 接口 | 变更类型 | 说明 |
|---|---|---|---|
| 1 | 所有 @Lock4j 注解接口(目前 /admin/product/snapshot/restore) |
错误码新增 | 抢锁失败返 100503 RESOURCE_LOCKED 而非 500 |
| 2 | /admin/customer/page 等 |
内部重构 | listCustomers Wrapper 下沉到 Mapper default(前端响应不变) |
二、关键改动(内部)
hl-common-core.CommonErrorCode新增RESOURCE_LOCKED(100503, "资源被占用,请稍后重试")hl-starter-protection.LockFailureExceptionHandler新增全局@RestControllerAdvice拦截LockFailureException返 100503HouseEventEnum.CUSTOMER_CHANGE孤儿常量删除(PR #2846 删了对应状态机规则,枚举常量是孤儿)HouseEventPublisher→HouseNotificationPublisherrename(单职责后类名误导)— 9 处引用 + 3 IT @MockBean 同步ComplaintConverter手工 substring 脱敏 →PiiMaskUtil.maskPhone()(删 13 行)- PR #2846 8 处 JavaDoc 旧编号/类名更新(808990→808900 / 808994→808901 / 808993→808941 /
RESOURCE_SERVICE_UNAVAILABLE→RESOURCE_UNAVAILABLE/INVENTORY_DEDUCT_FAILED→ROOM_STOCK_INSUFFICIENT) - 5 个新 Mapper default 单测:LoginLogMapperTest / UserMapperTest / AdminUserMapperTest(8 测试)
三、测试服验证
| 服务 | 部署 commit | uptime | 验证 |
|---|---|---|---|
| hl-user-service | dev-v3 含 #2850 | 21:34 | ✅ Wrapper 下沉 + 新 Mapper default 单测全绿 |
| hl-order-service-v3 | dev-v3 含 #2850 | 21:36(SSH restart) | ✅ Publisher rename 后启动正常 |
四、累计 Round 1 + Round 2 收益
| 维度 | 数值 |
|---|---|
| PR 数 | 5 张(#2845 / #2846 / #2847 / #2848 / #2850) |
| 工单数 | 5 张(#2841 / #2842 / #2843 / #2844 / #2849) |
| 净行数 | -1359(R1) + +311(R2 含 5 新测试文件)= 净 -1048 行 |
| HOUSE 模块评分 | C+ → A- |
| 整体评分 | Round 1 A- → Round 2 后整体 A |
| 单测数 | 2579 + Round 1 各服务 全绿 |
五、留尾(独立工单 backlog)
- product-v2 全模块 294 文件 HTML 标签清零(P0 铁规 15h 全局)→ 大工程独立工单
- MpTripDetailVO Object → List 真实数据回归 → /@qa 工单
- AdminUserService 9 处跨聚合 Mapper(红线 5 二期) → 独立工单
- HOUSE FLEET vehicle_plan Feign 接通后补 DRIVER 通知三件套 → 独立工单
- MaterialCategory ↔ Permission 双 @Lazy 抽 PermissionGate → backlog
- EquipmentTemplateService ↔ ProductLineService 双 @Lazy 抽 ProductEquipmentBindingService → backlog
六、关联
- 工单: #2849(closed)
- PR: #2850(merged)
- Round 2 review 来源: Claude /@cr 3 agent 并发(A/B/C)2026-05-22
- memory P0 铁规 7 升级:agent 严禁 git stash(同周 3 次违规累计 4+ 次)