This commit is contained in:
Your Name
2026-08-31 15:17:34 +08:00
parent ed48f8be31
commit 456dd667df
439 changed files with 5720 additions and 422 deletions
@@ -0,0 +1,21 @@
-- 处方业务订单:移除单笔关联收款记录(总金额不变,同步更新已付金额/paid/需代收)。
-- 执行后在角色权限中单独勾选「移除收款关联」,不自动扩大现有角色权限。
SET @po_menu_id := (
SELECT id FROM zyt_system_menu
WHERE perms = 'tcm.prescriptionOrder/lists'
LIMIT 1
);
INSERT INTO zyt_system_menu (
pid, type, name, icon, sort, perms, paths, component,
selected, params, is_cache, is_show, is_disable, create_time, update_time
)
SELECT
@po_menu_id, 'A', '移除收款关联', '', 32,
'tcm.prescriptionOrder/unlinkPayOrder', '', '',
'', '', 0, 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
FROM DUAL
WHERE @po_menu_id IS NOT NULL
AND NOT EXISTS (
SELECT 1 FROM zyt_system_menu WHERE perms = 'tcm.prescriptionOrder/unlinkPayOrder'
);
@@ -0,0 +1,72 @@
-- 推广自动化:仅新增独立表,不改业务表;需在部署代码/启用worker之前执行。
CREATE TABLE IF NOT EXISTS `zyt_qywx_promotion_config` (
`pool_id` int unsigned NOT NULL,
`config_json` mediumtext NOT NULL,
`create_time` int unsigned NOT NULL DEFAULT 0,
`update_time` int unsigned NOT NULL DEFAULT 0,
PRIMARY KEY (`pool_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='推广方案扩展配置';
CREATE TABLE IF NOT EXISTS `zyt_qywx_promotion_media` (
`asset_id` char(48) NOT NULL,
`admin_id` int unsigned NOT NULL,
`name` varchar(255) NOT NULL,
`type` varchar(16) NOT NULL,
`mime` varchar(128) NOT NULL,
`size` int unsigned NOT NULL,
`sha256` char(64) NOT NULL,
`storage_name` varchar(80) NOT NULL,
`media_id` varchar(512) NOT NULL DEFAULT '',
`media_expires_at` int unsigned NOT NULL DEFAULT 0,
`credential_hash` char(64) NOT NULL DEFAULT '',
`last_error` varchar(255) NOT NULL DEFAULT '',
`create_time` int unsigned NOT NULL DEFAULT 0,
`update_time` int unsigned NOT NULL DEFAULT 0,
PRIMARY KEY (`asset_id`),
KEY `idx_admin` (`admin_id`),
KEY `idx_media_expiry` (`media_expires_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='私有欢迎语源素材与企微临时素材缓存';
CREATE TABLE IF NOT EXISTS `zyt_qywx_promotion_automation_task` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT,
`event_key` char(64) NOT NULL,
`pool_id` int unsigned NOT NULL,
`member_admin_id` int unsigned NOT NULL DEFAULT 0,
`change_type` varchar(40) NOT NULL,
`userid` varchar(128) NOT NULL,
`external_userid` varchar(128) NOT NULL,
`event_time` int unsigned NOT NULL DEFAULT 0,
`received_at` int unsigned NOT NULL DEFAULT 0,
`config_json` mediumtext NOT NULL,
`actions_json` mediumtext NOT NULL,
`welcome_cipher` text NOT NULL COMMENT 'AES-GCM短期密文,动作终态即清理',
`welcome_code_hash` char(64) DEFAULT NULL,
`welcome_expires_at` int unsigned NOT NULL DEFAULT 0,
`welcome_status` varchar(20) NOT NULL DEFAULT 'pending',
`welcome_next_retry` int unsigned NOT NULL DEFAULT 0,
`status` varchar(20) NOT NULL DEFAULT 'pending',
`next_retry` int unsigned NOT NULL DEFAULT 0,
`lock_token` char(32) NOT NULL DEFAULT '',
`lock_until` int unsigned NOT NULL DEFAULT 0,
`create_time` int unsigned NOT NULL DEFAULT 0,
`update_time` int unsigned NOT NULL DEFAULT 0,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_event` (`event_key`),
KEY `idx_welcome_due` (`welcome_status`,`welcome_next_retry`,`welcome_expires_at`),
KEY `idx_metadata_due` (`status`,`next_retry`,`lock_until`),
KEY `idx_pool_event` (`pool_id`,`event_time`),
UNIQUE KEY `uk_code_hash` (`welcome_code_hash`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='推广事件幂等任务与分动作状态快照';
CREATE TABLE IF NOT EXISTS `zyt_qywx_promotion_automation_action_log` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT,
`task_id` bigint unsigned NOT NULL,
`action` varchar(24) NOT NULL,
`status` varchar(20) NOT NULL,
`attempt` int unsigned NOT NULL DEFAULT 0,
`reason` varchar(160) NOT NULL DEFAULT '',
`error_code` int NOT NULL DEFAULT 0,
`create_time` int unsigned NOT NULL DEFAULT 0,
PRIMARY KEY (`id`),
KEY `idx_task_action` (`task_id`,`action`,`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='自动化动作审计,无token/欢迎码/HTTP原始内容';