feat: 提交审核时间 submit_review_time 与审核台 createTime 语义对齐

- 新增 t_ugc_work.submit_review_time,publish/withdraw/revoke 维护
- 内容审核 VO:createTime 优先为提交审核时间,补充 workCreateTime

Made-with: Cursor
This commit is contained in:
zhonghua 2026-04-15 11:14:04 +08:00
parent 872cd22bcc
commit 079aed72e8
4 changed files with 25 additions and 1 deletions

View File

@ -211,6 +211,7 @@ public class PublicContentReviewService {
uw.eq(UgcWork::getId, id)
.set(UgcWork::getStatus, WorkPublishStatus.PENDING_REVIEW.getValue())
.set(UgcWork::getReviewTime, null)
.set(UgcWork::getSubmitReviewTime, LocalDateTime.now())
.set(UgcWork::getReviewerId, null)
.set(UgcWork::getReviewNote, null)
.set(UgcWork::getModifyTime, LocalDateTime.now());
@ -316,11 +317,14 @@ public class PublicContentReviewService {
} else if ("views".equals(sortBy)) {
wrapper.orderByDesc(UgcWork::getViewCount);
} else if ("oldest".equals(sortBy)) {
wrapper.orderByAsc(UgcWork::getSubmitReviewTime);
wrapper.orderByAsc(UgcWork::getCreateTime);
} else if ("latest".equals(sortBy) || !StringUtils.hasText(sortBy)) {
wrapper.orderByDesc(UgcWork::getSubmitReviewTime);
wrapper.orderByDesc(UgcWork::getPublishTime);
wrapper.orderByDesc(UgcWork::getCreateTime);
} else {
wrapper.orderByDesc(UgcWork::getSubmitReviewTime);
wrapper.orderByDesc(UgcWork::getCreateTime);
}
}
@ -420,7 +424,10 @@ public class PublicContentReviewService {
vo.put("reviewNote", work.getReviewNote());
vo.put("reviewTime", work.getReviewTime());
vo.put("publishTime", work.getPublishTime());
vo.put("createTime", work.getCreateTime());
// 审核台创建时间语义优先展示提交审核时间 POST /public/works/{id}/publish 一致非作品首次入库时间
vo.put("submitReviewTime", work.getSubmitReviewTime());
vo.put("workCreateTime", work.getCreateTime());
vo.put("createTime", work.getSubmitReviewTime() != null ? work.getSubmitReviewTime() : work.getCreateTime());
// 补充作者信息user creator 同构便于前端组件复用
if (work.getUserId() != null) {

View File

@ -196,6 +196,7 @@ public class PublicUserWorkService {
throw new BusinessException(400, "当前状态不可发布");
}
work.setStatus(WorkPublishStatus.PENDING_REVIEW.getValue());
work.setSubmitReviewTime(LocalDateTime.now());
work.setModifyTime(LocalDateTime.now());
ugcWorkMapper.updateById(work);
}
@ -217,6 +218,7 @@ public class PublicUserWorkService {
uw.eq(UgcWork::getId, id)
.set(UgcWork::getStatus, WorkPublishStatus.UNPUBLISHED.getValue())
.set(UgcWork::getReviewTime, null)
.set(UgcWork::getSubmitReviewTime, null)
.set(UgcWork::getReviewerId, null)
.set(UgcWork::getReviewNote, null)
.set(UgcWork::getModifyTime, LocalDateTime.now());

View File

@ -57,6 +57,10 @@ public class UgcWork implements Serializable {
@TableField("review_time")
private LocalDateTime reviewTime;
@Schema(description = "提交审核时间(用户发起上架审核,非作品创建时间)")
@TableField("submit_review_time")
private LocalDateTime submitReviewTime;
@Schema(description = "审核人ID")
@TableField("reviewer_id")
private Long reviewerId;

View File

@ -0,0 +1,11 @@
-- 用户发起「提交审核」时间(与作品 create_time 区分,供内容审核台列表/详情展示)
ALTER TABLE t_ugc_work
ADD COLUMN submit_review_time DATETIME(3) NULL COMMENT '提交审核时间(用户 POST /public/works/{id}/publish' AFTER review_time;
-- 历史待审核数据:用 modify_time 近似提交时间(通常为最近一次提交审核时更新)
UPDATE t_ugc_work
SET submit_review_time = modify_time
WHERE status = 'pending_review'
AND submit_review_time IS NULL;
CREATE INDEX idx_ugc_work_submit_review ON t_ugc_work (submit_review_time);