From 66c02b1c6cb69221c66a4c44bf17831c607c0c9b Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Mon, 18 May 2026 12:02:21 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20PR=20#2493=20saveSnapshot=20=E4=B8=8D?= =?UTF-8?q?=E6=94=B9=E4=BA=A7=E5=93=81=E7=8A=B6=E6=80=81=20+=20=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3=20PR=20#2487=20changelog?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 18_fix_product_v2_snapshot_save_no_status_change.md (PR #2493) - 修正 18_feat_product_v2_snapshot_p23_loosen_save_group_batch.md Section 2 关于"PR #2487 保存退草稿"的描述, 改为指向 PR #2493 最终态 - mmg 弹窗文案: 「保存版本」弹窗删警告; 「还原版本」弹窗保留 --- ...v2_snapshot_p23_loosen_save_group_batch.md | 18 +++--- ...oduct_v2_snapshot_save_no_status_change.md | 63 +++++++++++++++++++ 2 files changed, 73 insertions(+), 8 deletions(-) create mode 100644 changelogs/2026-05/18_fix_product_v2_snapshot_save_no_status_change.md diff --git a/changelogs/2026-05/18_feat_product_v2_snapshot_p23_loosen_save_group_batch.md b/changelogs/2026-05/18_feat_product_v2_snapshot_p23_loosen_save_group_batch.md index 7575597..a1eb041 100644 --- a/changelogs/2026-05/18_feat_product_v2_snapshot_p23_loosen_save_group_batch.md +++ b/changelogs/2026-05/18_feat_product_v2_snapshot_p23_loosen_save_group_batch.md @@ -20,15 +20,17 @@ - **真实业务收益**:解锁了「定制师本人 + 该产品所属公司其他 CUSTOMIZER 同事」的多角色保存场景(之前只 SUPER_ADMIN 或单一 owner)。彻底"所有 admin 都能保存任意产品"**没达成**(@DataScope 拦着,符合业务安全考虑——CUSTOMIZER 不该备份别人的产品) - 还原/删除/标记永久**仍保留 Service 层 checkPriceEditPermission 严格校验** -### 2. 状态校验彻底取消(**PR #2487 进一步放开**) +### 2. 状态校验彻底取消(PR #2487 → PR #2493 修正最终态) - ~~P2.3 初版:`DRAFT / UNPUBLISHED / COMPLETED` 三种~~ -- **最终(PR #2487)**:**任意状态都可保存**(PUBLISHED / 审批中也行) -- ⚠️ **但保存动作 = 备份 + 退草稿组合**: - - 保存成功后产品状态会**自动退回 `DRAFT`**(原状态写到操作日志 detail) - - 已经是 DRAFT 的产品不变 - - **PUBLISHED 产品点保存 → 立即下架**(mp 端看不到) - - **审批中产品点保存 → 撤销审批** -- mmg **必须**在弹窗加警告文案:「保存后产品将退回草稿状态,已上架产品会下架」 +- ~~PR #2487 (错的, 已被 #2493 推翻):保存 = 备份 + 强制退草稿组合~~ +- **最终态(PR #2493)**:**任意状态都可保存, 且保存动作绝不改产品状态** + - PUBLISHED 产品保存 → 仍 PUBLISHED, mp 端**不下架** + - UNPUBLISHED / 审批中产品保存 → 状态**保持不变** + - DRAFT 产品保存 → 仍 DRAFT +- ⚠️ **退草稿只发生在「还原版本」(restoreSnapshot)**, 不在「保存版本」(saveSnapshot) +- mmg 弹窗文案修正: + - 「保存版本」弹窗: **去掉**"保存后产品将退回草稿状态"的警告 (PR #2487 时让 mmg 加, 现在错的要去掉) + - 「还原版本」弹窗: **保留**"还原后产品状态将变为草稿"警告 (这是真实行为) ### 3. GROUP 小蒙马班期完整保存(修复缺陷) - **旧版 P2.2 漏存** `group_tour_batch` 表 → GROUP 还原后班期数据丢失 diff --git a/changelogs/2026-05/18_fix_product_v2_snapshot_save_no_status_change.md b/changelogs/2026-05/18_fix_product_v2_snapshot_save_no_status_change.md new file mode 100644 index 0000000..49f3a5e --- /dev/null +++ b/changelogs/2026-05/18_fix_product_v2_snapshot_save_no_status_change.md @@ -0,0 +1,63 @@ +# product-v2: 紧急修复 — 保存版本不再改产品状态(退草稿只在还原时发生) + +> **服务**: hl-product-service-v2 (端口 8083) +> **PR**: #2493 +> **Issue**: #2491 +> **关联 PR**: 修正 PR #2487 (本日上午合, 误把保存动作改成退草稿) +> **日期**: 2026-05-18 +> **影响范围**: 产品快照保存逻辑 + mmg 前端弹窗文案 + +--- + +## ⚠️ mmg 必看:撤回 PR #2487 的弹窗警告文案 + +### 修正前 (PR #2487, 错的) +- 「保存版本」弹窗加警告: 「保存后产品将退回草稿状态, 已上架产品会下架」 + +### 修正后 (PR #2493, 用户铁规) +- 「保存版本」弹窗: **删掉上面那行警告**, 保存动作纯粹是备份, 不会改任何产品状态 +- 「还原版本」弹窗: **保留**警告「还原后产品状态将变为草稿」(这才是真实行为) + +--- + +## 业务规则最终态(用户两次纠偏后定稿) + +| 动作 | 状态校验 | 保存/还原后产品状态 | +|------|----------|---------------------| +| **保存版本** (saveSnapshot) | 无 (任意状态可保存) | **保持原状态不变** (PUBLISHED→PUBLISHED, UNPUBLISHED→UNPUBLISHED) | +| **还原版本** (restoreSnapshot) | 非 PUBLISHED + 无活跃订单 + payload.productType 一致 | **强制 DRAFT** + 清空 publishedAt/approvalNo/pendingStatus | + +--- + +## 服务端改动 + +仅 ProductSnapshotService.java + Test,2 文件 / +18 / -87 行: + +- **saveSnapshot**: 删除 PR #2487 加的 `if (!DRAFT.equals(originalStatus)) helperService.updateProduct(patch)` 整段 +- **restoreSnapshot**: 代码**完全不动**, 既有 `updateProduct.setStatus(DRAFT)` 行为是正确的, 这才是用户要的 +- 强化 javadoc, 业务语义点明: 保存不改状态 / 还原必退草稿 +- 清理废弃常量 `SAVE_ALLOWED_STATUSES_LEGACY` 和无用 import +- 单测断言 `verify(helperService, never()).updateProduct(any())` 反证保存动作不调 update + +--- + +## 接口契约不变 + +- URL / Method / 入参 / 出参 全部不变 +- 仅是**行为修复**: 之前 PR #2487 让保存动作有了"自动退草稿"副作用, 这个副作用现在去掉了 + +--- + +## e2e 验收 (2026-05-18 测试服) + +- ✅ PUBLISHED 产品 (2049754271968047106) 保存 snapshotId=2056223052173131778, 前后 status=PUBLISHED +- ✅ UNPUBLISHED 产品 (2046069754753335297) 保存 snapshotId=2056223131302871042, 前后 status=UNPUBLISHED +- ✅ 单测全绿 (1295 product-v2 单测) + +--- + +## 部署 + +- 测试服: Deploy Panel task `b9e613ba` (2026-05-18 11:53, 已部署) +- 正式服: 待 Deploy Panel /prod 触发 +- nacos: 无需配置变化