Files
1818web-hoduan/docs/plaza-work-report-feature-summary.md
Claude Workbench e3e6f1f29d first commit
2026-02-13 18:18:20 +08:00

196 lines
5.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 广场作品投诉功能实施总结
## 概述
成功实现广场作品投诉功能,用户可以对违规作品进行投诉,管理员审核投诉并处理。
## 功能特性
### 1. 投诉类型
支持6种投诉类型
- `political` - 政治敏感
- `pornographic` - 色情低俗
- `violent` - 暴力血腥
- `dangerous` - 危险行为
- `uncomfortable` - 引人不适
- `other` - 其他
### 2. 投诉限制机制
- **每日投诉限制**每个用户每天最多投诉10次
- **防重复投诉**:同一用户不能重复投诉同一作品
- **防自投诉**:不能投诉自己发布的作品
- **自动重置**每日0点自动重置投诉计数
### 3. 投诉状态
- `pending` - 待审核
- `approved` - 投诉成立
- `rejected` - 投诉不成立
### 4. 管理员审核
- **投诉成立**:下架作品(修改审核状态为 `rejected`,状态改为 `hidden`
- **投诉不成立**:驳回投诉
- **处理备注**:必须填写审核备注说明处理原因
## 数据库设计
### 1. plaza_work_report投诉表
```sql
CREATE TABLE `plaza_work_report` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`report_no` VARCHAR(50) NOT NULL COMMENT '投诉编号',
`work_id` BIGINT NOT NULL COMMENT '被投诉的作品ID',
`work_no` VARCHAR(50) NOT NULL COMMENT '被投诉的作品编号',
`reporter_id` BIGINT NOT NULL COMMENT '投诉人用户ID',
`report_type` VARCHAR(20) NOT NULL COMMENT '投诉类型',
`report_reason` TEXT COMMENT '投诉原因描述',
`report_status` VARCHAR(20) DEFAULT 'pending' COMMENT '投诉状态',
`audit_admin_id` BIGINT COMMENT '审核管理员ID',
`audit_admin_name` VARCHAR(100) COMMENT '审核管理员名称',
`audit_remark` TEXT COMMENT '审核备注',
`audit_time` DATETIME COMMENT '审核时间',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP,
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`is_deleted` TINYINT(1) DEFAULT 0,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_report_no` (`report_no`),
KEY `idx_work_id` (`work_id`),
KEY `idx_reporter_id` (`reporter_id`),
KEY `idx_report_status` (`report_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```
### 2. plaza_work_report_limit投诉限制表
```sql
CREATE TABLE `plaza_work_report_limit` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`user_id` BIGINT NOT NULL,
`report_count` INT DEFAULT 0 COMMENT '今日投诉次数',
`last_report_time` DATETIME COMMENT '最后投诉时间',
`reset_date` DATE NOT NULL COMMENT '重置日期',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP,
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```
## API 接口
### 用户端接口
#### 1. 提交投诉
```
POST /user/plaza/reports/submit
```
**请求体:**
```json
{
"workNo": "WORK-20251026-001",
"reportType": "pornographic",
"reportReason": "该作品包含不当内容"
}
```
#### 2. 查询我的投诉列表
```
GET /user/plaza/reports/my?page=1&size=10
```
### 管理员端接口
#### 1. 查询投诉列表
```
GET /admin/plaza/reports/list?page=1&size=20&reportStatus=pending&reportType=pornographic&workNo=WORK-xxx&reporterId=123
```
#### 2. 审核投诉
```
POST /admin/plaza/reports/audit
```
**请求体:**
```json
{
"reportNo": "REPORT-20251114-001",
"auditResult": "approved",
"auditRemark": "经审核,该作品确实存在违规内容,已下架处理"
}
```
#### 3. 获取待审核投诉数量
```
GET /admin/plaza/reports/pending/count
```
## 代码文件清单
### 数据库
-`V12__add_plaza_work_report.sql` - 创建投诉表和限制表
### 实体类
-`PlazaWorkReport.java` - 投诉实体类
-`PlazaWorkReportLimit.java` - 投诉限制实体类
### DTO
-`PlazaWorkReportDto.java` - 投诉相关DTO
### Mapper
-`PlazaWorkReportMapper.java` - 投诉Mapper接口
-`PlazaWorkReportLimitMapper.java` - 投诉限制Mapper接口
### Service
-`PlazaWorkReportService.java` - 投诉服务接口
-`PlazaWorkReportServiceImpl.java` - 投诉服务实现
### Controller
-`PlazaWorkReportController.java` - 用户端投诉控制器
-`AdminPlazaWorkReportController.java` - 管理员端投诉控制器
### 修改文件
-`PlazaWorkMapper.java` - 更新update方法支持审核状态修改
## 业务流程
### 用户投诉流程
1. 用户选择作品并填写投诉信息
2. 系统检查投诉限制每日10次
3. 系统检查是否重复投诉
4. 系统检查是否投诉自己的作品
5. 创建投诉记录,状态为 `pending`
6. 更新用户投诉计数
### 管理员审核流程
1. 管理员查看待审核投诉列表
2. 管理员查看投诉详情(包含作品信息)
3. 管理员审核投诉:
- **投诉成立**:更新投诉状态为 `approved`,下架作品(修改作品审核状态为 `rejected`,状态改为 `hidden`
- **投诉不成立**:更新投诉状态为 `rejected`
4. 记录审核管理员信息和备注
## 部署步骤
1. **执行数据库脚本**
```sql
source V12__add_plaza_work_report.sql;
```
2. **部署代码**
- 部署所有新增和修改的文件
- 重启应用服务
3. **验证功能**
- 测试用户提交投诉
- 测试投诉限制机制
- 测试管理员审核投诉
- 测试投诉成立后作品下架
## 注意事项
1. **投诉限制**每日最多10次跨天自动重置
2. **防重复投诉**:同一用户对同一作品只能投诉一次
3. **防自投诉**:不能投诉自己发布的作品
4. **作品下架**:投诉成立时,作品审核状态改为 `rejected`,状态改为 `hidden`
5. **审核备注**:管理员审核时必须填写处理备注
## 完成时间
2025-11-14