diff --git a/changelogs/2026-04/2026-04-13_product-v2_version_flow.md b/changelogs/2026-04/2026-04-13_product-v2_version_flow.md new file mode 100644 index 0000000..3869066 --- /dev/null +++ b/changelogs/2026-04/2026-04-13_product-v2_version_flow.md @@ -0,0 +1,37 @@ +# 接口使用提醒 — 2026-04-13 + +> **问题**:保存行程/路线/补充信息时报"数据已被其他人修改" +> **原因**:version版本号不匹配 + +--- + +## version版本号使用规则 + +每次保存操作都会让version+1。前端**必须始终使用最新的version**。 + +### 正确流程 + +``` +1. 创建产品(POST /admin/product/item/basic,不传version) + → 返回 productId + → 此时数据库 version=1(创建+保存基础信息各+1) + +2. 获取详情(GET /admin/product/item/{id}) + → 拿到最新 version(如1) + +3. 保存行程(PUT /admin/product/item/{id}/itinerary) + → 传 version=1(从详情拿到的) + → 成功后 version 变成 2 + +4. 保存路线(PUT /admin/product/item/{id}/route) + → 传 version=2 + → 成功后 version 变成 3 + +5. 以此类推... +``` + +### 关键点 + +- **每次保存前先获取详情拿最新version**,或者保存成功后前端本地version+1 +- **不能固定传version=0**,那是创建时的初始值,创建完就变了 +- 版本冲突时前端应提示用户刷新页面重新编辑