chore(amap): mmg 决定前端自改 citylimit, 后端代理接口转备用
这个提交包含在:
父节点
a66279a766
当前提交
9947af26d0
@ -0,0 +1,119 @@
|
|||||||
|
# 后端核查回执: 管理端产品页 30+ 死 API 调用清单
|
||||||
|
|
||||||
|
> **服务**: 后端核查(非接口变更)
|
||||||
|
> **PR**: 无(后端审计)
|
||||||
|
> **Issue**: 无
|
||||||
|
> **日期**: 2026-05-13
|
||||||
|
> **影响范围**: hl-ui 管理端 `src/api/pricing.js` + `src/api/core.js` 中调用 product-v2 旧路径的函数
|
||||||
|
> **致**: @mmg
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ⚠️ 关键变化
|
||||||
|
|
||||||
|
你列的"前端有、后端完全没有"5 类清单已逐条 grep 核对。**结论:30 个函数确认是死调用(v2 后端无对应路由),可放心删除**;同时有 14 个函数后端 v2 还在用,**别删**。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 一、背景
|
||||||
|
|
||||||
|
你前端反馈了 5 类(旧定价 / 旧批次 / 细粒度行程 / 定制师配置 / 废弃 CRUD)函数怀疑后端没有实现。我用 grep 把 `hl-ui` 中每个函数的 axios URL 抓出来,逐条反查 `hl-product-service-v2` 的 Controller @RequestMapping,再核对 gateway 路由是否切到 v2。结果如下。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 二、A 类「前端可删」(30 项,确认无后端 v2 路由)
|
||||||
|
|
||||||
|
### pricing.js(20 项 — 旧定价模型完全废弃)
|
||||||
|
|
||||||
|
| 函数 | 前端 URL | 后端 v2 状态 |
|
||||||
|
|------|---------|-------------|
|
||||||
|
| getProductPricing | `GET /product/item/{id}/pricing` | ❌ 无路由(v2 已换 pricing-calendar 模型) |
|
||||||
|
| saveProductPricing | `POST /product/item/{id}/pricing` | ❌ 无路由 |
|
||||||
|
| getProductCostItems | `GET /product/item/{id}/cost-items` | ❌ 无路由 |
|
||||||
|
| addProductCostItem | `POST /product/item/{id}/cost-item` | ❌ 无路由 |
|
||||||
|
| updateProductCostItem | `PUT /product/item/{id}/cost-item/{itemId}` | ❌ 无路由 |
|
||||||
|
| deleteProductCostItem | `DELETE /product/item/{id}/cost-item/{itemId}` | ❌ 无路由 |
|
||||||
|
| getProductCustomFees | `GET /product/item/{id}/custom-fees` | ❌ 无路由 |
|
||||||
|
| addProductCustomFee | `POST /product/item/{id}/custom-fee` | ❌ 无路由 |
|
||||||
|
| updateProductCustomFee | `PUT /product/item/{id}/custom-fee/{feeId}` | ❌ 无路由 |
|
||||||
|
| deleteProductCustomFee | `DELETE /product/item/{id}/custom-fee/{feeId}` | ❌ 无路由 |
|
||||||
|
| getProductExtraCosts | `GET /product/item/{id}/extra-costs` | ❌ 无路由(字段嵌入 ProductRouteSaveReqVO,无独立 URL) |
|
||||||
|
| addProductExtraCost / update / delete | `*/extra-cost*` | ❌ 无路由 |
|
||||||
|
| getProductSupplies | `GET /product/item/{id}/supplies` | ❌ 无路由(Service 在但 Controller 未暴露) |
|
||||||
|
| addProductSupply / update / delete | `*/supplies*` | ❌ 无路由 |
|
||||||
|
| getInsuranceFeePreview | `GET /product/item/{id}/pricing/insurance-fee-preview` | ❌ 无路由 |
|
||||||
|
| getGroupQuote | `GET /product/item/{id}/group-quote` | ❌ admin 无(v2 仅 `/internal/product/{id}/group-quote` 内部用) |
|
||||||
|
|
||||||
|
### core.js(10 项)
|
||||||
|
|
||||||
|
| 函数 | 前端 URL | 后端 v2 状态 |
|
||||||
|
|------|---------|-------------|
|
||||||
|
| addProduct | `POST /product/item` | ❌ v2 用 `/admin/product/basic` 统一 SaveReqVO |
|
||||||
|
| updateProduct | `PUT /product/item/{id}` | ❌ 同上 |
|
||||||
|
| generateShareLink | `POST /product/item/{id}/share-link` | ⚠ v2 有路径但是 `POST /admin/product/{id}/share` — 前端 URL 不对 |
|
||||||
|
| generateRouteMap | `POST /product/item/{id}/generate-route-map` | ⚠ v2 改 `POST /admin/product/{id}/map/generate-by-amap` |
|
||||||
|
| getProductLogs | `GET /product/item/{id}/logs` | ⚠ v2 改 `GET /admin/product/{id}/operation-logs` |
|
||||||
|
| getFolderTree | `GET /product/folder/tree` | ❌ 文件夹模型已废弃 |
|
||||||
|
| addFolder / update / delete | `/product/folder/*` | ❌ 同上 |
|
||||||
|
| moveProduct | `PUT /product/item/{id}/move` | ❌ 文件夹移动随之废弃 |
|
||||||
|
|
||||||
|
### batch.js 整文件(旧批次模型)
|
||||||
|
|
||||||
|
| 范围 | 后端 v2 状态 |
|
||||||
|
|------|-------------|
|
||||||
|
| `/batch/*` 路由全部 | ❌ 整批迁移到 `/admin/product/{id}/schedules` (新 schedule 模型) |
|
||||||
|
| 关联面板 `BatchManagementPanel.vue` | 可同步删 |
|
||||||
|
|
||||||
|
### itinerary.js 部分函数(细粒度行程)
|
||||||
|
|
||||||
|
| 函数 | 前端 URL | 状态 |
|
||||||
|
|------|---------|------|
|
||||||
|
| 节点级 CRUD(addNode/updateNode/deleteNode) | `/itinerary/node/*` | ❌ v2 无独立节点 CRUD |
|
||||||
|
| 酒店级 CRUD | `/itinerary/hotel/*` | ❌ v2 无独立 CRUD |
|
||||||
|
| 餐饮级 CRUD | `/itinerary/dining/*` | ❌ v2 无独立 CRUD |
|
||||||
|
|
||||||
|
注:admin v2 只保留 `saveItinerary` 整树保存 + `addItineraryDay` / `deleteItineraryDay`。
|
||||||
|
|
||||||
|
### custom.js 整文件(定制师配置)
|
||||||
|
|
||||||
|
| 范围 | 状态 |
|
||||||
|
|------|------|
|
||||||
|
| family / staff-config 全部接口 | ❌ VO 还在数据模型但无 Controller 端点 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 三、B 类「前端别删」(14 项,v2 还在用)
|
||||||
|
|
||||||
|
| 函数 | 后端 v2 路径 |
|
||||||
|
|------|-------------|
|
||||||
|
| getProductPage / getProductDetail | `GET /admin/product/page` / `/admin/product/{id}` |
|
||||||
|
| deleteProduct / copyProduct | `DELETE /admin/product/{id}` / `POST /admin/product/{id}/copy` |
|
||||||
|
| validatePublish / togglePublish | `POST /admin/product/{id}/validate-publish` / `/publish-toggle` |
|
||||||
|
| completeDesign | `POST /admin/product/{id}/complete-design` |
|
||||||
|
| saveBasicInfo | `POST /admin/product/basic` |
|
||||||
|
| saveItinerary / addItineraryDay / deleteItineraryDay | `PUT /admin/product/{id}/itinerary` 等 |
|
||||||
|
| saveRoute | `PUT /admin/product/{id}/route` |
|
||||||
|
| saveSupplement | `PUT /admin/product/{id}/supplement` |
|
||||||
|
| getFeeDeductionPreview | v2 有保留 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 四、特别说明
|
||||||
|
|
||||||
|
- **`generateShareLink` / `generateRouteMap` / `getProductLogs`** 是 ⚠ 类(路径变了但功能在)。建议前端把这三个函数的 URL 改成新路径(见上表),保留函数。
|
||||||
|
- **文件夹 + 移动产品**功能 v2 整体废弃。但你前端 UI(`FolderPanel.vue` + 列表页"移动产品"按钮)还在用。**建议前端连同 UI 一起删掉**,因为 v2 的产品组织改用 schedule 维度,不再需要文件夹。
|
||||||
|
- **batch.js 整文件**直接删(已被 schedule 替代)。`BatchManagementPanel.vue` 一并删。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 五、为什么后端不补回来这些 API
|
||||||
|
|
||||||
|
- pricing 旧模型:v2 已重构为 pricing-calendar(按日期+档位定价),旧的"成本项/自定义费/额外费/物资"独立 CRUD 模式已废弃,统一进 schedule 保存
|
||||||
|
- 文件夹:v2 产品组织维度变了(主题/版本/档位/schedule),文件夹这个老组织维度无意义
|
||||||
|
- 细粒度行程:编辑体验改为整树保存(一次 PUT 全部行程),节点级 CRUD 让数据一致性变难
|
||||||
|
|
||||||
|
如果你前端在做产品列表的"文件夹分组展示"或"批次管理面板"且必须保留 UI,先告诉我,我评估能不能在 v2 加路由;否则按上面清单删即可。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**附:PR #2166 已部署测试服**(commit d49d6013,10:57:45 完成)。改动是 32 处 `Result<Map>` 改具体 VO + 字典段修正 + 部分 Map 入参改 ReqVO。**字段名跟原 Map 一致,前端契约不变**,等你日常联调中如果 mp wiki/review/wish/transport 4 个接口有反序列化异常立刻反馈我。
|
||||||
@ -2,14 +2,16 @@
|
|||||||
date: 2026-05-14
|
date: 2026-05-14
|
||||||
type: backend-feature
|
type: backend-feature
|
||||||
module: admin-amap-poi-proxy
|
module: admin-amap-poi-proxy
|
||||||
priority: high
|
priority: low
|
||||||
backend_pr: ["#2253", "#2259", "#2261", "#2264"]
|
backend_pr: ["#2253", "#2259", "#2261", "#2264"]
|
||||||
backend_issue: "#2249"
|
backend_issue: "#2249"
|
||||||
notify: ["@mmg"]
|
notify: ["@mmg"]
|
||||||
status: ready-for-frontend
|
status: backend-ready-but-frontend-chose-self-fix
|
||||||
related: ["12_frontend_bug_admin_mappicker-citylimit-blocks-cross-city-search.md"]
|
related: ["12_frontend_bug_admin_mappicker-citylimit-blocks-cross-city-search.md"]
|
||||||
---
|
---
|
||||||
|
|
||||||
|
> ⚠️ **2026-05-14 更新**:mmg 决定**前端继续直连高德, 不切到本接口**, 自行修复 citylimit 锁城 BUG。后端接口**已上线测试服并保留备用**(代码不删, nacos key 不撤), 以备未来需要"统一入口/统一限流/key 收回"时再启用。本 changelog 不再要求 mmg 切接口, 只作技术档案。
|
||||||
|
|
||||||
# 后端代理高德 POI 搜索接口已就绪 — 前端可切换不再直连高德
|
# 后端代理高德 POI 搜索接口已就绪 — 前端可切换不再直连高德
|
||||||
|
|
||||||
## TL;DR
|
## TL;DR
|
||||||
|
|||||||
正在加载...
x
在新工单中引用
屏蔽一个用户