# 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 滚动部署成功
