后端修 2 个 BUG: - selectReportQueuePage 硬过滤 report_count>=1 让 HIDDEN+count=0 消失 - restore 硬编码 reportCount=0 清掉历史 前端 mmg 需配合: 状态机判断 reportStatus !== HIDDEN 显示禁止展示 (把现有 PENDING_REVIEW === 改成 !== HIDDEN), 接口/VO 0 改动。
这个提交包含在:
父节点
490465f9ec
当前提交
311d438278
@ -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 滚动部署成功
|
||||
正在加载...
x
在新工单中引用
屏蔽一个用户