From 311d43827819c47b7eaa35165a4d0de562f61466 Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Wed, 6 May 2026 21:59:33 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20admin=20hide/restore=20=E5=90=8E?= =?UTF-8?q?=E8=AF=84=E4=BB=B7=E4=BB=8E=E4=B8=BE=E6=8A=A5=E9=98=9F=E5=88=97?= =?UTF-8?q?=E6=B0=B8=E4=B9=85=E6=B6=88=E5=A4=B1=20(PR=20#1766=20Closes=20#?= =?UTF-8?q?1765)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 后端修 2 个 BUG: - selectReportQueuePage 硬过滤 report_count>=1 让 HIDDEN+count=0 消失 - restore 硬编码 reportCount=0 清掉历史 前端 mmg 需配合: 状态机判断 reportStatus !== HIDDEN 显示禁止展示 (把现有 PENDING_REVIEW === 改成 !== HIDDEN), 接口/VO 0 改动。 --- ...iew_report_queue_hide_restore_disappear.md | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 changelogs/2026-05/06_fix_review_report_queue_hide_restore_disappear.md diff --git a/changelogs/2026-05/06_fix_review_report_queue_hide_restore_disappear.md b/changelogs/2026-05/06_fix_review_report_queue_hide_restore_disappear.md new file mode 100644 index 0000000..349af4b --- /dev/null +++ b/changelogs/2026-05/06_fix_review_report_queue_hide_restore_disappear.md @@ -0,0 +1,70 @@ +# fix(review-report): admin hide/restore 后评价从举报队列永久消失 + +**PR**: [#1766](https://git.1814.love:8443/wx/HL/pulls/1766) **Issue**: [#1765](https://git.1814.love:8443/wx/HL/issues/1765) **合并**: 2026-05-06 + +通知对象: @mmg(前端配合) + +--- + +## 后端修了什么 + +@mmg 之前接入 `/admin/review/report-queue/*` 5 个 API 后,你做了状态机判断: +- `reportStatus === 'PENDING_REVIEW'` 显示「隐藏」 +- `reportStatus === 'HIDDEN'` 显示「恢复」 +- `reportStatus !== 'HIDDEN'` 显示「警告作者/忽略全部」 + +但 admin 实际操作 hide 或 restore 后, **评价从队列永久消失**(用户截图反馈"操作菜单只有警告/忽略,没有禁止展示")。 + +排查发现 2 个后端 BUG: + +1. `OrderReviewMapper.selectReportQueuePage` 硬过滤 `report_count >= 1` → reportCount=0 的 HIDDEN 数据查不到 +2. `AdminReviewReportService.restore` 强制把 reportCount 清成 0 → 配合 #1 让数据彻底消失 + +PR #1766 修了: +- 不传 status 时改用并集 `report_count >= 1 OR reportStatus IN(PENDING_REVIEW, HIDDEN)` +- restore 用 `originalCount` 替代 0, 保留历史举报数 + +## 前端要改的(配合 v4 changelog) + +后端修完 + 部署测试服后, 仍需 mmg 把 v4 状态机调整执行下: + +**修改 `src/views/review/report-queue/index.vue:347` 状态机** + +把: +```js +if (row.reportStatus === 'PENDING_REVIEW') { + primary.push({ text: '隐藏', ... }) +} +``` + +改成: +```js +if (row.reportStatus !== 'HIDDEN') { + primary.push({ text: '禁止展示', ... }) // NORMAL/PENDING_REVIEW 都显示 +} +``` + +`HIDDEN` 时只显示「恢复展示」,这部分代码已经对了(line 355),不用动。 + +## 测试服 round-trip 验收 + +``` +A. 起点 reviewId=2048001001001001005 reportCount=1 NORMAL → 默认查询 total=1 ✓ +B. hide → 显式 HIDDEN tab total=1, reportCount 保留 1, hiddenAt=2026-05-06 21:58:15 ✓ (BUG#1 fix) +C. restore → DB 实测 reportCount=1 (不再被清成 0) ✓ (BUG#2 fix) +D. restore 后默认查询 total=1, 数据仍可见 ✓ +``` + +## 已知 follow-up (不影响主流程) + +显式 `reportStatus=NORMAL` 时后端会返整个评价表(测试服 271 条), 是个待修小 BUG 我会另起 PR。**前端 UI 默认是不传 status 的并集查询, 不受影响**。如果你想加"待复审/已隐藏/正常" 3 个 tab 切换, 等 follow-up 合了再做。 + +## 字段/接口签名 0 改动 + +无 VO 改动, 无新接口, 现有 5 个 API 路径全部保持。前端只需改状态机判断条件 + 改按钮文案为「禁止展示/恢复展示」即可。 + +## 测试 + +- 单测 39/39 (Mapper 28 + Service 11) +- CR PASS-WITH-NITS, P1 三处已修 +- 测试服双实例 8094+8194 滚动部署成功