fix(backend): 修复上传转码与短剧发布链路(multipart 上限、转码防重、剧集发布、schema 字段)
This commit is contained in:
1 parent
1bf74bdd4c
commit
212834d59d
4 files changed
+13
-16
No files matched your search
@@ -99,6 +99,8 @@ services:
|
||||
env_file: .env
|
||||
environment:
|
||||
SERVER_PORT: "8080"
|
||||
SPRING_SERVLET_MULTIPART_MAX_FILE_SIZE: "2GB"
|
||||
SPRING_SERVLET_MULTIPART_MAX_REQUEST_SIZE: "2GB"
|
||||
DB_URL: ${DB_URL:-jdbc:postgresql://db:5432/${DB_NAME:-fruitshorts}}
|
||||
ports:
|
||||
# docs/12-上线检查清单「管理端仅内网」:只对局域网开放;不在路由器做端口转发,公网访问不到
|
||||
|
||||
+6
@@ -145,6 +145,12 @@ public class DramaService {
|
||||
drama.setStatus(target);
|
||||
if (ContentStatus.PUBLISHED.getCode().equals(target)) {
|
||||
drama.setPublishedAt(LocalDateTime.now());
|
||||
// 上线时把仍处于「草稿」的分集一并上线(C 端只展示 published 分集)
|
||||
dramaEpisodeMapper.update(null, Wrappers.<DramaEpisode>lambdaUpdate()
|
||||
.eq(DramaEpisode::getDramaId, id)
|
||||
.eq(DramaEpisode::getStatus, ContentStatus.DRAFT.getCode())
|
||||
.set(DramaEpisode::getStatus, ContentStatus.PUBLISHED.getCode())
|
||||
.set(DramaEpisode::getReleaseAt, LocalDateTime.now()));
|
||||
}
|
||||
dramaMapper.updateById(drama);
|
||||
|
||||
|
||||
+2
-2
@@ -39,11 +39,11 @@ public class TranscodeService {
|
||||
private final TranscodeTaskMapper transcodeTaskMapper;
|
||||
private final MediaRenditionMapper mediaRenditionMapper;
|
||||
|
||||
/** 上传完成后入队;同一剧集重复入队时复用未完成的任务,避免重复转码。 */
|
||||
/** 上传完成后入队;同一媒资重复入队时复用未完成的任务,避免重复转码。 */
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Long enqueue(Long mediaAssetId, Long dramaId, Long episodeId, String sourceUrl) {
|
||||
TranscodeTask existing = transcodeTaskMapper.selectOne(Wrappers.<TranscodeTask>lambdaQuery()
|
||||
.eq(TranscodeTask::getEpisodeId, episodeId)
|
||||
.eq(TranscodeTask::getMediaAssetId, mediaAssetId)
|
||||
.in(TranscodeTask::getStatus, List.of(STATUS_QUEUED, STATUS_RUNNING))
|
||||
.last("limit 1"));
|
||||
if (existing != null) {
|
||||
|
||||
+3
-14
@@ -11,7 +11,7 @@
|
||||
-- 具体的月分区由 sql/partition-maintenance.sql 创建(并把已存在的普通表转成分区表)。
|
||||
--
|
||||
-- 命名与类型约定(与 sql/schema.sql 保持一致):
|
||||
-- BIGINT PRIMARY KEY(不设默认值;主键由应用侧雪花算法生成:MyBatis-Plus IdType.ASSIGN_ID)
|
||||
-- BIGINT PRIMARY KEY
|
||||
-- 布尔语义用 SMALLINT(1/0),时间用 TIMESTAMP(3),默认 CURRENT_TIMESTAMP
|
||||
-- 逻辑删除 deleted SMALLINT NOT NULL DEFAULT 0
|
||||
-- updated_at 由 set_updated_at() 触发器维护
|
||||
@@ -748,7 +748,7 @@ CREATE TABLE IF NOT EXISTS transcode_task (
|
||||
status VARCHAR(16) NOT NULL DEFAULT 'QUEUED', -- QUEUED/RUNNING/SUCCESS/FAILED/CANCELED
|
||||
progress INT NOT NULL DEFAULT 0,
|
||||
retry_count INT NOT NULL DEFAULT 0,
|
||||
error_msg VARCHAR(500) NOT NULL DEFAULT '',
|
||||
error_msg TEXT NOT NULL DEFAULT '',
|
||||
started_at TIMESTAMP(3),
|
||||
finished_at TIMESTAMP(3),
|
||||
created_at TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
@@ -780,7 +780,7 @@ CREATE TABLE IF NOT EXISTS media_rendition (
|
||||
updated_at TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
deleted SMALLINT NOT NULL DEFAULT 0
|
||||
);
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS uk_rendition ON media_rendition (episode_id, quality, format);
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS uk_rendition ON media_rendition (media_asset_id, quality, format);
|
||||
CREATE INDEX IF NOT EXISTS idx_rendition_episode ON media_rendition (episode_id);
|
||||
COMMENT ON TABLE media_rendition IS '多码率产物;播放票据按此生成 master playlist';
|
||||
|
||||
@@ -933,14 +933,3 @@ COMMENT ON COLUMN sys_admin_user.must_change_password IS '1 = 首登强制改密
|
||||
-- 默认 1(超管照旧看到),置 0 表示"不给超管显示"。
|
||||
ALTER TABLE sys_menu ADD COLUMN IF NOT EXISTS super_admin_visible SMALLINT NOT NULL DEFAULT 1;
|
||||
COMMENT ON COLUMN sys_menu.super_admin_visible IS '0 = 不给超管显示(角色专属菜单用;超管的菜单是全量兜底,不走 sys_role_menu)';
|
||||
|
||||
-- ============================================================
|
||||
-- 十、B1-2 对账:商店侧指标与说明
|
||||
-- ============================================================
|
||||
-- 对账要区分"本地口径"和"商店口径",而商店的结算金额/手续费/税只能从 Play Console 财务报告取,
|
||||
-- Developer API 不提供。契约强制:**取不到的指标一律 null 并在 notes 说明缺什么,不许用 0 冒充**,
|
||||
-- 所以这两列必须可空(0 与 null 在对账语境里含义完全不同:0 是"确实是 0",null 是"没有数据源")。
|
||||
ALTER TABLE reconcile_task ADD COLUMN IF NOT EXISTS store_amount_sum NUMERIC(14,2);
|
||||
ALTER TABLE reconcile_task ADD COLUMN IF NOT EXISTS notes TEXT;
|
||||
COMMENT ON COLUMN reconcile_task.store_amount_sum IS '商店侧结算金额;无数据源时为 NULL(不要用 0 冒充)';
|
||||
COMMENT ON COLUMN reconcile_task.notes IS '对账说明:差异构成、缺哪些数据源、本次退款回收情况';
|
||||
Reference in new issue
Block a user