Files
FruitServer/sql/patch-2026-10-24-content-tag.sql
T

55 lines
2.0 KiB
SQL

-- 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
);