feat(content): 短剧分类和标签支持多语言
This commit is contained in:
1 parent
5c20cf1ab9
commit
e60c47123c
34 files changed
+1071
-53
No files matched your search
@@ -0,0 +1,35 @@
|
||||
-- Author: fruit.com.cn
|
||||
-- 短剧类型名称改为勾选语言。中文仍在 name,英文和印尼语写入原列与 locales。
|
||||
|
||||
ALTER TABLE drama_category ADD COLUMN IF NOT EXISTS name_en VARCHAR(64) NOT NULL DEFAULT '';
|
||||
ALTER TABLE drama_category ADD COLUMN IF NOT EXISTS name_id VARCHAR(64) NOT NULL DEFAULT '';
|
||||
ALTER TABLE drama_category ADD COLUMN IF NOT EXISTS name_locales TEXT NOT NULL DEFAULT '{}';
|
||||
|
||||
UPDATE drama_category
|
||||
SET name_locales = (
|
||||
SELECT COALESCE(json_object_agg(k, v), '{}'::json)::text
|
||||
FROM (
|
||||
SELECT 'zh' AS k, name AS v WHERE name <> ''
|
||||
UNION ALL SELECT 'en', name_en WHERE name_en <> ''
|
||||
UNION ALL SELECT 'id', name_id WHERE name_id <> ''
|
||||
) s
|
||||
)
|
||||
WHERE name_locales = '{}';
|
||||
|
||||
UPDATE drama_category AS c
|
||||
SET name_en = v.name_en,
|
||||
name_id = v.name_id,
|
||||
name_locales = json_build_object('zh', c.name, 'en', v.name_en, 'id', v.name_id)::text
|
||||
FROM (VALUES
|
||||
(1::bigint, 'Urban Romance', 'Romansa Urban'),
|
||||
(2, 'Rebirth Comeback', 'Kelahiran Kembali'),
|
||||
(3, 'Sweet Romance', 'Romansa Manis'),
|
||||
(4, 'Suspense Revenge', 'Balas Dendam'),
|
||||
(2112443900437336065, 'Campus Action', 'Aksi Kampus'),
|
||||
(2112443936592236545, 'Horror Mystery', 'Horor Misteri'),
|
||||
(2112444003856289794, 'Infinite Travel', 'Perjalanan Tanpa Batas'),
|
||||
(2112444050467590146, 'Thriller Horror', 'Thriller Horor'),
|
||||
(2112444103433261057, 'Indonesia Exclusive', 'Eksklusif Indonesia')
|
||||
) AS v(id, name_en, name_id)
|
||||
WHERE c.id = v.id
|
||||
AND (c.name_en = '' OR c.name_id = '');
|
||||
@@ -0,0 +1,10 @@
|
||||
-- Author: fruit.com.cn
|
||||
-- 首页运营分类名称补英文、印尼语。原 name 继续表示中文。
|
||||
|
||||
ALTER TABLE drama_classification
|
||||
ADD COLUMN IF NOT EXISTS name_en VARCHAR(64) NOT NULL DEFAULT '',
|
||||
ADD COLUMN IF NOT EXISTS name_id VARCHAR(64) NOT NULL DEFAULT '';
|
||||
|
||||
COMMENT ON COLUMN drama_classification.name IS '中文名称';
|
||||
COMMENT ON COLUMN drama_classification.name_en IS '英文名称';
|
||||
COMMENT ON COLUMN drama_classification.name_id IS '印尼语名称';
|
||||
@@ -0,0 +1,54 @@
|
||||
-- Author: fruit.com.cn
|
||||
-- 标签管理:三种语言名称。短剧单选一个标签。
|
||||
|
||||
CREATE TABLE IF NOT EXISTS content_tag (
|
||||
id BIGINT PRIMARY KEY,
|
||||
name VARCHAR(64) NOT NULL,
|
||||
name_en VARCHAR(64) NOT NULL DEFAULT '',
|
||||
name_id VARCHAR(64) NOT NULL DEFAULT '',
|
||||
sort INTEGER NOT NULL DEFAULT 0,
|
||||
status SMALLINT NOT NULL DEFAULT 1,
|
||||
created_at TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS uk_content_tag_name ON content_tag (name);
|
||||
DROP TRIGGER IF EXISTS trg_content_tag_updated_at ON content_tag;
|
||||
CREATE TRIGGER trg_content_tag_updated_at
|
||||
BEFORE UPDATE ON content_tag
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION set_updated_at();
|
||||
|
||||
ALTER TABLE drama ADD COLUMN IF NOT EXISTS tag_id BIGINT;
|
||||
CREATE INDEX IF NOT EXISTS idx_drama_tag ON drama (tag_id);
|
||||
|
||||
INSERT INTO content_tag (id, name, name_en, name_id, sort, status)
|
||||
VALUES
|
||||
(2113500000000000001, '漫剧', 'Anime', 'Anime', 1, 1),
|
||||
(2113500000000000002, '真人剧', 'Live Action', 'Live Action', 2, 1)
|
||||
ON CONFLICT (id) DO NOTHING;
|
||||
|
||||
UPDATE drama SET tag_id = 2113500000000000001
|
||||
WHERE drama_type = 'ANIME' AND tag_id IS NULL;
|
||||
UPDATE drama SET tag_id = 2113500000000000002
|
||||
WHERE (drama_type IS NULL OR drama_type = 'LIVE') AND tag_id IS NULL;
|
||||
|
||||
INSERT INTO sys_menu (
|
||||
id, parent_id, title, route_path, route_name, component, icon,
|
||||
permission_code, type, sort, visible, status, super_admin_visible
|
||||
) VALUES (
|
||||
45, 3, '标签管理', 'content-tags', 'content-tags',
|
||||
'views/contentManagement/TagManagementView', 'ep:price-tag',
|
||||
'drama:list', 'MENU', 7, 1, 1, 1
|
||||
) ON CONFLICT (id) DO NOTHING;
|
||||
|
||||
INSERT INTO sys_role_menu (id, role_id, menu_id)
|
||||
SELECT v.id, v.role_id, 45
|
||||
FROM (VALUES
|
||||
(2113600000000000001, 1),
|
||||
(2113600000000000002, 2),
|
||||
(2113600000000000003, 3),
|
||||
(2113600000000000004, 4)
|
||||
) AS v(id, role_id)
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM sys_role_menu rm WHERE rm.role_id = v.role_id AND rm.menu_id = 45
|
||||
);
|
||||
@@ -0,0 +1,13 @@
|
||||
-- Author: fruit.com.cn
|
||||
-- 短剧标题和简介按勾选语言保存。中文仍写 title / synopsis。
|
||||
|
||||
ALTER TABLE drama ADD COLUMN IF NOT EXISTS title_locales TEXT NOT NULL DEFAULT '{}';
|
||||
ALTER TABLE drama ADD COLUMN IF NOT EXISTS synopsis_locales TEXT NOT NULL DEFAULT '{}';
|
||||
|
||||
UPDATE drama
|
||||
SET title_locales = json_build_object('zh', title)::text
|
||||
WHERE title_locales = '{}' AND title <> '';
|
||||
|
||||
UPDATE drama
|
||||
SET synopsis_locales = json_build_object('zh', synopsis)::text
|
||||
WHERE synopsis_locales = '{}' AND synopsis IS NOT NULL AND synopsis <> '';
|
||||
@@ -0,0 +1,51 @@
|
||||
-- Author: fruit.com.cn
|
||||
-- 名称语言改为勾选保存。中文、英文、印尼语仍写原列,勾选结果记在 locales 文本里。
|
||||
|
||||
ALTER TABLE content_tag ADD COLUMN IF NOT EXISTS name_locales TEXT NOT NULL DEFAULT '{}';
|
||||
ALTER TABLE drama_classification ADD COLUMN IF NOT EXISTS name_locales TEXT NOT NULL DEFAULT '{}';
|
||||
ALTER TABLE drama_playlist_category ADD COLUMN IF NOT EXISTS name_locales TEXT NOT NULL DEFAULT '{}';
|
||||
ALTER TABLE drama_playlist_category ADD COLUMN IF NOT EXISTS description_locales TEXT NOT NULL DEFAULT '{}';
|
||||
|
||||
UPDATE content_tag
|
||||
SET name_locales = (
|
||||
SELECT COALESCE(json_object_agg(k, v), '{}'::json)::text
|
||||
FROM (
|
||||
SELECT 'zh' AS k, name AS v WHERE name <> ''
|
||||
UNION ALL SELECT 'en', name_en WHERE name_en <> ''
|
||||
UNION ALL SELECT 'id', name_id WHERE name_id <> ''
|
||||
) s
|
||||
)
|
||||
WHERE name_locales = '{}';
|
||||
|
||||
UPDATE drama_classification
|
||||
SET name_locales = (
|
||||
SELECT COALESCE(json_object_agg(k, v), '{}'::json)::text
|
||||
FROM (
|
||||
SELECT 'zh' AS k, name AS v WHERE name <> ''
|
||||
UNION ALL SELECT 'en', name_en WHERE name_en <> ''
|
||||
UNION ALL SELECT 'id', name_id WHERE name_id <> ''
|
||||
) s
|
||||
)
|
||||
WHERE name_locales = '{}';
|
||||
|
||||
UPDATE drama_playlist_category
|
||||
SET name_locales = (
|
||||
SELECT COALESCE(json_object_agg(k, v), '{}'::json)::text
|
||||
FROM (
|
||||
SELECT 'zh' AS k, name AS v WHERE name <> ''
|
||||
UNION ALL SELECT 'en', name_en WHERE name_en <> ''
|
||||
UNION ALL SELECT 'id', name_id WHERE name_id <> ''
|
||||
) s
|
||||
)
|
||||
WHERE name_locales = '{}';
|
||||
|
||||
UPDATE drama_playlist_category
|
||||
SET description_locales = (
|
||||
SELECT COALESCE(json_object_agg(k, v), '{}'::json)::text
|
||||
FROM (
|
||||
SELECT 'zh' AS k, description AS v WHERE description <> ''
|
||||
UNION ALL SELECT 'en', description_en WHERE description_en <> ''
|
||||
UNION ALL SELECT 'id', description_id WHERE description_id <> ''
|
||||
) s
|
||||
)
|
||||
WHERE description_locales = '{}';
|
||||
@@ -0,0 +1,15 @@
|
||||
-- Author: fruit.com.cn
|
||||
-- 剧单分类名称和描述补英文、印尼语。原 name/description 继续表示中文。
|
||||
|
||||
ALTER TABLE drama_playlist_category
|
||||
ADD COLUMN IF NOT EXISTS name_en VARCHAR(64) NOT NULL DEFAULT '',
|
||||
ADD COLUMN IF NOT EXISTS name_id VARCHAR(64) NOT NULL DEFAULT '',
|
||||
ADD COLUMN IF NOT EXISTS description_en VARCHAR(255) NOT NULL DEFAULT '',
|
||||
ADD COLUMN IF NOT EXISTS description_id VARCHAR(255) NOT NULL DEFAULT '';
|
||||
|
||||
COMMENT ON COLUMN drama_playlist_category.name IS '中文名称';
|
||||
COMMENT ON COLUMN drama_playlist_category.name_en IS '英文名称';
|
||||
COMMENT ON COLUMN drama_playlist_category.name_id IS '印尼语名称';
|
||||
COMMENT ON COLUMN drama_playlist_category.description IS '中文描述';
|
||||
COMMENT ON COLUMN drama_playlist_category.description_en IS '英文描述';
|
||||
COMMENT ON COLUMN drama_playlist_category.description_id IS '印尼语描述';
|
||||
@@ -0,0 +1,7 @@
|
||||
-- Author: fruit.com.cn
|
||||
-- 标签角标背景色。客户端按 bg_color 绘制封面右上角标签。
|
||||
|
||||
ALTER TABLE content_tag ADD COLUMN IF NOT EXISTS bg_color VARCHAR(7) NOT NULL DEFAULT '#E5484D';
|
||||
|
||||
UPDATE content_tag SET bg_color = '#E5484D' WHERE name = '热剧' AND (bg_color = '' OR bg_color = '#E5484D');
|
||||
UPDATE content_tag SET bg_color = '#3B82F6' WHERE name = '新剧';
|
||||
Reference in new issue
Block a user