4.0 KiB
4.0 KiB
K92 举报工单展示短剧名称与分集
目标
/admin/reports/page不再只返回targetType / targetId,而是返回举报人、目标短剧与分集的展示信息。- Web 举报工单列表与处理弹窗使用同一份目标摘要,不再展示裸对象 ID。
- 不改既有举报处理逻辑、评论列表接口、观看记录接口或数据库结构。
分支
- FruitServer:
feat/k92-report-target,从origin/develop创建。 - ReelShortWeb:
feat/k92-report-target-ui,从origin/develop创建。
A. FruitServer
A1 返回模型
新增 com.fruitshorts.admin.vo.AdminReportRespVO,包含:
- 工单:
id/reasonCode/description/status/handleBy/handleAt/handleNote/createdAt - 举报人:
reporterId/reporterNickname/reporterUid - 目标:
targetType/targetId/targetSummary - 剧集:
dramaId/dramaTitle/episodeId/episodeNo/episodeTitle - 评论/用户:
commentContent/targetNickname/targetUid
A2 查询和解析
新增 com.fruitshorts.admin.service.ReportAdminService:
- 分页查询
content_report,条件与ReportService.page保持一致:status/targetType/reasonCode/reporterId均仅在有文本或非空时加入,空值返回全部; 排序保持id DESC。 - 当前页批量查询:
- COMMENT 目标评论:一次查询,且必须包含逻辑删除记录,用于判断“评论已删除”。
- 评论与 DRAMA 目标剧:一次批量查询
drama。 - 评论目标分集:一次批量查询
drama_episode。 - USER 目标用户与全部 reporter:合并 id 后一次批量查询
app_user。
- 禁止逐行查询。
ContentCommentMapper 增加显式批量查询方法,绕过 @TableLogic 的自动过滤;
普通 selectBatchIds 仍保持原行为。
A3 摘要规则
- COMMENT:
- 正常评论且剧存在:
剧名 · 第 N 集,有集标题时追加· 集标题。 - 评论删除、逻辑删除、评论不存在或剧不存在:
评论 #targetId。
- 正常评论且剧存在:
- DRAMA:
- 剧存在:剧名。
- 不存在:
短剧 #targetId。
- USER:
- 用户存在:
昵称(uid)。 - 不存在:
用户 #targetId。
- 用户存在:
A4 Controller 与文档
ReportAdminController.page改为返回Result<PageResult<AdminReportRespVO>>。handle继续调用原ReportService.handle,不变更业务行为。- 更新
docs/api-phase1.md§2.5。
A5 测试
新增 ReportAdminServiceTest,覆盖:
- COMMENT / DRAMA / USER 三类摘要。
- 评论集标题、举报人昵称/uid、目标用户昵称/uid。
- 空筛选条件表示全部。
- 评论逻辑删除和目标剧不存在时退化文案。
- 验证按页批量查询,不产生 N+1。
门禁:mvn test 全模块通过。
B. ReelShortWeb
B1 类型
ReportItem 补齐后台新增字段,保留原 targetId 用于 tooltip 排查。
B2 治理页
- 「对象」列:
- 中文类型标签:评论 / 用户 / 短剧。
- 显示
targetSummary。 - tooltip 显示原始
#targetId,评论类型有内容时追加评论内容。
- 删除独立「对象ID」列。
- 「举报人」列显示昵称;无昵称回退 uid;再无回退
#reporterId。 - 处理弹窗「工单对象」显示类型标签 +
targetSummary。
B3 门禁
pnpm ts:checkpnpm build:dev- 对改动文件执行定向 ESLint
风险与说明
- 评论逻辑删除记录默认被 MyBatis-Plus 过滤;本次使用显式 mapper 查询识别, 不改变评论正常查询和删除行为。
- 已删除评论不展示正文,避免后台误读已删除内容;仍保留
targetIdtooltip 便于排查。 - 目标关联数据已物理删除时按任务书使用
评论 #id / 短剧 #id / 用户 #id退化。 - 本任务无数据库迁移,不改 specs 仓库和 Flutter 客户端。
Git
- FruitServer:
feat(admin): 举报工单返回短剧与分集信息 - ReelShortWeb:
feat(admin): 举报列表展示短剧与分集 - 两仓库均
--no-ff合回develop并 push。 - 作者:
Zhou Weidong <502333560@qq.com>;禁止git add -A。