diff --git a/changelogs/2026-07/13_feat_grassland_guide_delete.md b/changelogs/2026-07/13_feat_grassland_guide_delete.md index 2684b68..5680df0 100644 --- a/changelogs/2026-07/13_feat_grassland_guide_delete.md +++ b/changelogs/2026-07/13_feat_grassland_guide_delete.md @@ -6,7 +6,9 @@ > > 历史 PR:[HL #4960](https://git.1814.love:8443/wx/HL/pulls/4960)、[HL #4963](https://git.1814.love:8443/wx/HL/pulls/4963) 实现的是旧规则,已被本次业务口径纠正取代 > -> 当前状态:后端正在按纠正后的规则重新实现并回归;完成后先合入 `dev`,再由 `dev` 合入 `dev-v3` 部署 TEST;不合入 `main`、不部署正式环境 +> 纠正 PR:[HL #4967](https://git.1814.love:8443/wx/HL/pulls/4967) 已合入 `dev`;[HL #4968](https://git.1814.love:8443/wx/HL/pulls/4968) 已由 `dev` 合入 `dev-v3` +> +> 当前状态:TEST 双实例部署与真实接口验收通过;尚未合入 `main`、尚未部署正式环境 ## 1. 变更范围 @@ -64,14 +66,24 @@ grassland-guide:delete ## 7. 联调清单 -后端完成新规则回归及 TEST 验收后更新本节证据。前端联调清单如下: +后端新规则与 TEST 验收已完成,前端联调清单如下: -- [ ] `DRAFT`、`OFFLINE` 视频删除成功,管理端详情和小程序详情、列表均不再返回。 -- [ ] `PUBLISHED` 直接调用删除接口返回 `371008`,数据和引用关系不变。 -- [ ] 删除请求没有 body,也没有 `version`。 -- [ ] 重复删除返回 `371001`。 +- [x] `DRAFT`、`OFFLINE` 视频删除成功,管理端详情和小程序详情、列表均不再返回。 +- [x] `PUBLISHED` 直接调用删除接口返回 `371008`,数据和引用关系不变。 +- [x] 删除请求没有 body,也没有 `version`。 +- [x] 重复删除返回 `371001`。 - [ ] 无 `grassland-guide:delete` 权限时不展示入口。 - [ ] 管理端仅在 `DRAFT`、`OFFLINE` 状态展示删除入口,并完成二次确认交互。 -- [ ] 删除内容后,素材库中的原视频和封面仍然存在。 +- [x] 删除内容后,素材库中的原视频和封面仍然存在。 -> 注意:前端不提交 `version`;并发控制由后端内部实现。历史 TEST 证据基于旧规则,不作为本次纠正后的验收结论。 +TEST 后端证据(2026-07-14): + +- 部署任务 `f007ee1f` 成功,资源服务 `8082/8182` 两实例均已更新、注册 Nacos 且健康。 +- 实时 OpenAPI 摘要为“草稿或已下架状态允许”,DELETE 仅含路径参数 `videoId`,无 body、无 `version`。 +- 验收内容:`DRAFT` 删除成功;`OFFLINE` 删除成功;`PUBLISHED` 返回 `371008` 且状态、版本、引用数、日志数完全不变;重复删除返回 `371001`。 +- `DRAFT` 发布/删除与 `OFFLINE` 重发/删除各执行一次真实并发竞争,两组均恰好一方成功,失败方返回 `371002`,最终状态与事务副作用正确。 +- 5 条验收内容均已逻辑删除,素材引用和推荐关系均无残留,每条仅产生一条 DELETE 领域日志,`fromStatus` 仅为 `DRAFT` 或 `OFFLINE`。 +- 真实 4K OSS 素材 `2076658080942116865` 的 `fileId`、OSS URL 与引用计数恢复基线,OSS `HEAD` 返回 200、文件大小 `412400073` 字节,未删除素材、文件或 OSS 对象。 +- `/admin/menu/my` 已返回 `grassland-guide:delete`,TEST 数据库已授权 `OPERATOR`、`SUPER_ADMIN`。 + +> 注意:前端不提交 `version`;并发控制由后端内部实现。前端只需按 `DRAFT/OFFLINE` 展示入口,并处理并发失败响应。