diff --git a/changelogs/2026-04/2026-04-14_1040_fix_amap_business_exception.md b/changelogs/2026-04/2026-04-14_1040_fix_amap_business_exception.md new file mode 100644 index 0000000..3d53522 --- /dev/null +++ b/changelogs/2026-04/2026-04-14_1040_fix_amap_business_exception.md @@ -0,0 +1,25 @@ +# fix(product-v2): 计算里程接口500错误修复 + +- **PR**: #480 +- **服务**: hl-product-service-v2 +- **类型**: bug修复 + +## 问题 + +`GET /admin/product/item/{id}/calculate-mileage` 接口在产品未保存行程途经点时返回500,前端只能看到"服务器内部错误",无法得知具体原因。 + +## 修复内容 + +将 `AmapDrivingService` 中的异常类型从 `IllegalArgumentException`/`RuntimeException` 改为 `BusinessException`,前端现在能看到具体错误提示: + +| 场景 | 修复前提示 | 修复后提示 | +|------|-----------|-----------| +| 途经点不足2个 | 服务器内部错误 | 行程途经点不足2个,无法计算里程,请先保存行程(Step2) | +| 有效坐标不足 | 服务器内部错误 | 有效途经点(含经纬度)不足2个,无法计算里程 | +| 高德API调用失败 | 服务器内部错误 | 里程计算失败: 具体原因 | + +## 前端影响 + +- **无接口变更**,接口入参和成功返回值不变 +- 失败时 `code` 从 `500` 变为业务错误码,`message` 字段包含具体中文提示,前端可直接展示给用户 +- 建议前端在调用失败时用 `message` 字段做 toast 提示