hl-api-changelog/changelogs/2026-03/2026-03-21_code_quality_fixes.md

55 行
2.4 KiB
Markdown

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

# 代码质量修复(多模块)
**日期**: 2026-03-21
**服务**: hl-order-service, hl-user-service, hl-payment-service, hl-file-service, hl-contract-service, hl-mp-service, hl-product-service, hl-insurance-service
**类型**: Bug修复 + 性能优化
---
## 变更说明
本次修复了多模块的代码级 bug,均为后端内部逻辑优化,**不影响现有接口的请求/响应格式**。
### 修复清单
| 模块 | 修复内容 |
|------|---------|
| hl-order-service | BigDecimal.equals→compareTo 修复价格比较精度问题 |
| hl-order-service | GROUP下单报价 NPE 防护quoteInfo.get() 空值处理) |
| hl-order-service | 订单号升级:毫秒精度+6位随机数,防碰撞 |
| hl-order-service | 自动投保/签约方案ID类型安全转换 |
| hl-order-service | GROUP下单出发日期已过校验 |
| hl-user-service | AdminAuthService 6处 NPE 防护(会话数据提取) |
| hl-payment-service | 日期查询参数格式校验400替代500 |
| hl-file-service | 文件统计空值防护 |
| hl-contract-service | userId 类型安全转换 |
| hl-mp-service | 产品列表 GROUP 团期获取从串行改为并行(性能优化) |
| hl-product-service | 车辆绑定异常信息不泄露技术细节 |
| hl-insurance-service | 投保公司主体错误提示不泄露用户输入 |
### 前端无需改动
以上修复均为后端内部逻辑,现有接口行为不变。
---
## 第二批修复(并发安全+幂等性+深层防护)
| 模块 | 修复内容 |
|------|---------|
| hl-product-service | PriceCalendarService: new Thread() → CompletableFuture.runAsync() |
| hl-order-service | OrderExpiryJob: 分布式锁 TTL 4min → 5min不短于任务间隔 |
| hl-order-service | OrderExpiryConsumer: 新增 Redis 幂等性检查 |
| hl-order-service | BatchDisbandConsumer: batchId 安全类型转换 |
| hl-order-service | GROUP下单 batchInfo 字段 null 防护 |
| hl-order-service | refundPolicyId 4处安全转换 |
| hl-order-service | contactPhone.substring 越界防护 |
| hl-order-service | Map.of() NPE 防护STATUS_LABELS 查询前 null 检查) |
| hl-insurance-service | InsuranceOrderService STATUS_LABELS null 防护 |
| hl-contract-service | ContractService STATUS_LABELS null 防护 |
| 全项目 | ((Number) map.get()).xxxValue() → instanceof 检查15处 |
### 测试统计
15 模块 3598 测试全绿,0 回归。