feat: 07 创作者中心批 2(内容编辑 / 分集 / 提交审核)

为什么:批 1 只给了创作者"看"的能力(工作台、审核进度、通知),内容还是得后台代建。
批 2 补上"改":创作者自己建草稿、编分集、提交审核,后台只管审。落地过程中发现三个必须一起修的问题:

1. 【会卡死创作者】后台驳回提交时不动短剧状态,剧会永远停在 reviewing,
   而批 2 里 reviewing 是只读 —— 创作者既改不了也提不了。现在驳回与撤回都会把剧退回 draft。
2. 【上线了却放不出来】C 端只播 status=published 的分集,但没有任何地方在剧上线时把分集带上线。
   审核通过 PUBLISH 时,仍处于草稿的分集一并上线。
3. 【编辑会误删字段】底层 apply() 对 null 会写空串/默认值:只想改封面的一次调用会把标题、时长、
   排序一起清掉(自测时两集排序都变成 1 才发现)。creator 侧改成"未传字段沿用现值"。

- 新增 CreatorContentService + /admin/creator-center 的 10 个写接口与 2 个读接口,
  一律不接收 creatorId,归属走 requireMyDrama,改别人的作品/分集统一 403
- 状态闸:只有 draft / offline 可直接编辑;reviewing / approved / published 只读并给出下一步动作
- 提交矩阵:draft→CREATE(首次)/UPDATE/PUBLISH,offline→UPDATE/PUBLISH,reviewing/approved→PUBLISH,published→OFFLINE;
  同剧同时只允许一条在审提交;撤回后作品退回草稿,支持撤回重提
- 权限点 creator-center:drama:edit(创作者角色 + 超管),docs/api-phase1.md 2.10 补批 2 接口与规则表
- 分集收费与试看秒数本批不碰(批 3 的收费配置页负责),新增分集默认免费,避免误定价
This commit is contained in:
Vicky committed 2026-10-15 13:58:45 +08:00
1 parent ea875c3e2b
commit 255bcbf02b
11 files changed
+616 -5

No files matched your search

+4 -3
View File
@@ -178,7 +178,8 @@ ON CONFLICT (id) DO UPDATE SET name = EXCLUDED.name, code = EXCLUDED.code,
-- 权限点按批补:批 1 只有「进创作者中心」这一个,后面各批用到什么再幂等追加
INSERT INTO sys_permission (code, name, group_name, type, sort) VALUES
('creator-center:view', '访问创作者中心', '创作者中心', 'BUTTON', 150)
('creator-center:view', '访问创作者中心', '创作者中心', 'BUTTON', 150),
('creator-center:drama:edit', '创作者中心-编辑作品', '创作者中心', 'BUTTON', 151)
ON CONFLICT (code) DO NOTHING;
-- 创作者角色只拿创作者中心这几个点,不给任何后台运营权限
@@ -187,7 +188,7 @@ SELECT r.id, p.id
FROM sys_role r
CROSS JOIN sys_permission p
WHERE r.code = 'creator'
AND p.code = 'creator-center:view'
AND p.code IN ('creator-center:view', 'creator-center:drama:edit')
ON CONFLICT DO NOTHING;
-- 超管也留一份,方便排查创作者视角的问题(超管没有绑定创作者主体,进 creator-center 仍会被挡)
@@ -196,5 +197,5 @@ SELECT r.id, p.id
FROM sys_role r
CROSS JOIN sys_permission p
WHERE r.code = 'super_admin'
AND p.code = 'creator-center:view'
AND p.code IN ('creator-center:view', 'creator-center:drama:edit')
ON CONFLICT DO NOTHING;