feat: 07 创作者中心批 4(数据看板,只读)

为什么:创作者在后台能看到自己的作品与定价了,但看不到"有没有人看、有没有收入"。
本批补一个只读看板,数据全部按 drama.creator_id = 当前创作者 收敛,取不到的一律 null + notes。

- 新增 CreatorDashboardService(放 admin-api):和 3-3 的运营大盘同样的理由 —— 跨内容/播放/互动/交易
  四域取数,建模块只会把依赖摊开一层;归属解析复用 CreatorCenterService.requireCurrentCreator(),
  接口不接收 creatorId
- 新增 GET /admin/creator-center/dashboard(权限点 creator-center:stat:view)
- 口径(逐条写进代码注释与 docs/api-phase1.md):viewTotal/playTotal 是短剧表累计计数;
  watchedDramas/finishedDramas 来自 watch_progress(该表唯一索引是 user_id + drama_id,
  每用户每剧一条续看进度,**不是按集**,所以字段名按「用户 × 剧」命名);
  playEvents7d/playEventsTotal 是 watch_history 流水;finishEvents 是流水中 position>=duration 的完播事件;
  favoriteTotal/commentTotal/commentPending 是我的作品的互动;unlockCount/coinIncome 取
  entitlement(source=ORDER) 与 coin_ledger(UNLOCK, biz_id=我的分集)
- paidOrderAmount 与 daily 恒为 null:前者要等 Apple/Google 商店接入,后者 creator_stat_daily 表已建但无产出任务
- 权限点 creator-center:stat:view(创作者角色 + 超管)

实测:看板输出与 SQL 手工口径逐项一致;乙的看板只有自己的数(甲 1200 播放 / 2 条评论 / 50 金币未串过去)。
This commit is contained in:
Vicky committed 2026-10-15 14:28:29 +08:00
1 parent 8b8ebf944f
commit b0fea1d237
4 files changed
+253 -4

No files matched your search

+4 -3
View File
@@ -181,7 +181,8 @@ INSERT INTO sys_permission (code, name, group_name, type, sort) VALUES
('creator-center:view', '访问创作者中心', '创作者中心', 'BUTTON', 150),
('creator-center:drama:edit', '创作者中心-编辑作品', '创作者中心', 'BUTTON', 151),
('creator-center:upload', '创作者中心-上传与挂载', '创作者中心', 'BUTTON', 152),
('creator-center:price:update', '创作者中心-配置分集价格', '创作者中心', 'BUTTON', 153)
('creator-center:price:update', '创作者中心-配置分集价格', '创作者中心', 'BUTTON', 153),
('creator-center:stat:view', '创作者中心-查看看板', '创作者中心', 'BUTTON', 154)
ON CONFLICT (code) DO NOTHING;
-- 创作者角色只拿创作者中心这几个点,不给任何后台运营权限
@@ -191,7 +192,7 @@ FROM sys_role r
CROSS JOIN sys_permission p
WHERE r.code = 'creator'
AND p.code IN ('creator-center:view', 'creator-center:drama:edit',
'creator-center:upload', 'creator-center:price:update')
'creator-center:upload', 'creator-center:price:update', 'creator-center:stat:view')
ON CONFLICT DO NOTHING;
-- 超管也留一份,方便排查创作者视角的问题(超管没有绑定创作者主体,进 creator-center 仍会被挡)
@@ -201,7 +202,7 @@ FROM sys_role r
CROSS JOIN sys_permission p
WHERE r.code = 'super_admin'
AND p.code IN ('creator-center:view', 'creator-center:drama:edit',
'creator-center:upload', 'creator-center:price:update')
'creator-center:upload', 'creator-center:price:update', 'creator-center:stat:view')
ON CONFLICT DO NOTHING;
-- 媒资分片上传是复用后台已有的 /admin/media/upload/*,所以创作者角色要用现成的上传权限点,