Add multi-platform publishing workflow
This commit is contained in:
@@ -6,6 +6,7 @@ CREATE TABLE tt_copy_template (
|
||||
template_id BIGINT NOT NULL AUTO_INCREMENT COMMENT '模板ID',
|
||||
template_name VARCHAR(100) NOT NULL COMMENT '按钮显示名称',
|
||||
template_group VARCHAR(100) NOT NULL DEFAULT '默认分组' COMMENT '模板分组',
|
||||
template_scene VARCHAR(20) NOT NULL DEFAULT 'CODE' COMMENT '模板场景(CODE源码文案 DELIVERY发货文案)',
|
||||
template_body LONGTEXT NOT NULL COMMENT '文案模板内容,支持 {变量} 占位符',
|
||||
sort_num INT DEFAULT 0 COMMENT '排序号',
|
||||
status CHAR(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
|
||||
@@ -257,3 +258,12 @@ INSERT INTO tt_copy_template (template_name, template_body, sort_num, status, cr
|
||||
<br>
|
||||
<span>长按小程序码,打开小程序搜索 "<Strong style="color:var(--md-primary-color);">{projectCode}</Strong>" 即可获取资源</span>
|
||||
</center>', 6, '0', NOW(), 'admin');
|
||||
|
||||
-- 项目清单“复制发货链接”使用的默认模板
|
||||
INSERT INTO tt_copy_template
|
||||
(template_name, template_group, template_scene, template_body, sort_num, status, create_time, create_by)
|
||||
VALUES
|
||||
('复制发货链接', '发货文案', 'DELIVERY', '{deliveryLinks}
|
||||
|
||||
项目部署文档
|
||||
https://www.yuque.com/feastcoding/cg5w9h/rbvp8w80h8tultgy 密码:el4q', 1, '0', NOW(), 'admin');
|
||||
|
||||
31
sql/copy_template_scene.sql
Normal file
31
sql/copy_template_scene.sql
Normal file
@@ -0,0 +1,31 @@
|
||||
-- 文案模板增加使用场景,并初始化“复制发货链接”模板(已有数据库升级脚本)
|
||||
ALTER TABLE `tt_copy_template`
|
||||
ADD COLUMN `template_scene` VARCHAR(20) NOT NULL DEFAULT 'CODE'
|
||||
COMMENT '模板场景(CODE源码文案 DELIVERY发货文案)' AFTER `template_group`;
|
||||
|
||||
-- 历史模板均为源码文案
|
||||
UPDATE `tt_copy_template`
|
||||
SET `template_scene` = 'CODE'
|
||||
WHERE `template_scene` IS NULL OR TRIM(`template_scene`) = '';
|
||||
|
||||
-- 将原先写死在项目清单前端的发货文案迁入模板表
|
||||
INSERT INTO `tt_copy_template`
|
||||
(`template_name`, `template_group`, `template_scene`, `template_body`, `sort_num`, `status`, `create_time`, `create_by`)
|
||||
SELECT
|
||||
'复制发货链接',
|
||||
'发货文案',
|
||||
'DELIVERY',
|
||||
'{deliveryLinks}
|
||||
|
||||
项目部署文档
|
||||
https://www.yuque.com/feastcoding/cg5w9h/rbvp8w80h8tultgy 密码:el4q',
|
||||
1,
|
||||
'0',
|
||||
NOW(),
|
||||
'admin'
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM `tt_copy_template`
|
||||
WHERE `template_scene` = 'DELIVERY'
|
||||
AND `template_name` = '复制发货链接'
|
||||
);
|
||||
80
sql/platform_publish.sql
Normal file
80
sql/platform_publish.sql
Normal file
@@ -0,0 +1,80 @@
|
||||
-- 发布管理与浏览器扩展任务表,可重复执行。
|
||||
CREATE TABLE IF NOT EXISTS `tt_publish_task` (
|
||||
`publish_id` bigint NOT NULL AUTO_INCREMENT COMMENT '发布记录ID',
|
||||
`task_id` varchar(64) NOT NULL COMMENT '公开任务编号',
|
||||
`code_id` bigint NOT NULL COMMENT '源码项目ID',
|
||||
`platform` varchar(32) NOT NULL COMMENT 'xiaohongshu/douyin/wechat_channels/bilibili/xianyu',
|
||||
`title` varchar(100) NOT NULL COMMENT '发布标题',
|
||||
`content` text COMMENT '发布文案',
|
||||
`tags` varchar(500) DEFAULT NULL COMMENT '标签,逗号分隔',
|
||||
`video_url` varchar(1000) DEFAULT NULL COMMENT '视频地址',
|
||||
`image_urls` text COMMENT '图片地址JSON数组',
|
||||
`cover_url` varchar(1000) DEFAULT NULL COMMENT '封面地址',
|
||||
`status` varchar(32) NOT NULL DEFAULT 'PENDING' COMMENT '发布状态',
|
||||
`status_message` varchar(255) DEFAULT NULL COMMENT '状态说明',
|
||||
`last_error` varchar(1000) DEFAULT NULL COMMENT '最近错误',
|
||||
`bridge_token` varchar(64) NOT NULL COMMENT '扩展短期访问凭证',
|
||||
`bridge_expires_at` datetime NOT NULL COMMENT '扩展凭证失效时间',
|
||||
`started_at` datetime DEFAULT NULL COMMENT '扩展开始执行时间',
|
||||
`ready_at` datetime DEFAULT NULL COMMENT '等待人工发布时间',
|
||||
`finished_at` datetime DEFAULT NULL COMMENT '任务结束时间',
|
||||
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
|
||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
|
||||
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`publish_id`),
|
||||
UNIQUE KEY `uk_publish_task_id` (`task_id`),
|
||||
KEY `idx_publish_code_platform` (`code_id`, `platform`, `publish_id`),
|
||||
KEY `idx_publish_status` (`status`),
|
||||
KEY `idx_publish_update_time` (`update_time`),
|
||||
KEY `idx_publish_bridge` (`task_id`, `bridge_token`, `bridge_expires_at`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='多平台发布任务';
|
||||
|
||||
-- 兼容已有的小红书、抖音、视频号通用模板,使首次部署即可自动生成发布文案。
|
||||
-- 闲鱼使用“闲鱼”分组中的启用模板;一个模板时直接使用,多个模板时随机选择。
|
||||
-- B站使用“B站”分组中的启用模板;用户可在文案模板管理中单独创建。
|
||||
-- 用户后续可在文案模板管理中分别创建“小红书”“抖音”“视频号”“B站”分组;
|
||||
-- 平台专用分组存在时,会优先于这个共享分组。
|
||||
UPDATE `tt_copy_template`
|
||||
SET `template_group` = '抖音、视频号、小红书'
|
||||
WHERE `template_name` = '复制抖音、视频号、小红书文案'
|
||||
AND (`template_group` IS NULL OR TRIM(`template_group`) = '' OR `template_group` = '默认分组');
|
||||
|
||||
-- 将发布管理放到源码管理所在目录。
|
||||
SET @publish_parent_id := COALESCE(
|
||||
(SELECT parent_id FROM sys_menu WHERE perms = 'office:code:list' LIMIT 1),
|
||||
0
|
||||
);
|
||||
SET @publish_order_num := COALESCE(
|
||||
(SELECT MAX(order_num) + 1 FROM sys_menu WHERE parent_id = @publish_parent_id),
|
||||
1
|
||||
);
|
||||
|
||||
INSERT INTO sys_menu
|
||||
(menu_name, parent_id, order_num, path, component, query, is_frame, is_cache,
|
||||
menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
|
||||
SELECT '发布管理', @publish_parent_id, @publish_order_num,
|
||||
'publish', 'office/publish/index', '', 1, 0,
|
||||
'C', '0', '0', 'office:publish:list', 'documentation', 'admin', NOW(), '', NULL,
|
||||
'浏览器扩展辅助发布管理'
|
||||
WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms = 'office:publish:list');
|
||||
|
||||
SET @publish_menu_id := (
|
||||
SELECT menu_id FROM sys_menu WHERE perms = 'office:publish:list' LIMIT 1
|
||||
);
|
||||
|
||||
INSERT INTO sys_menu
|
||||
(menu_name, parent_id, order_num, path, component, query, is_frame, is_cache,
|
||||
menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
|
||||
SELECT '发布资料查询', @publish_menu_id, 1, '', '', '', 1, 0,
|
||||
'F', '0', '0', 'office:publish:query', '#', 'admin', NOW(), '', NULL, ''
|
||||
WHERE @publish_menu_id IS NOT NULL
|
||||
AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms = 'office:publish:query');
|
||||
|
||||
INSERT INTO sys_menu
|
||||
(menu_name, parent_id, order_num, path, component, query, is_frame, is_cache,
|
||||
menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
|
||||
SELECT '创建发布任务', @publish_menu_id, 2, '', '', '', 1, 0,
|
||||
'F', '0', '0', 'office:publish:add', '#', 'admin', NOW(), '', NULL, ''
|
||||
WHERE @publish_menu_id IS NOT NULL
|
||||
AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms = 'office:publish:add');
|
||||
Reference in New Issue
Block a user