Files
zyt/server/database/migrations/2026_08_12_call_transcription_permissions.sql
T
2026-08-12 17:18:56 +08:00

90 lines
3.1 KiB
SQL

-- 实时转写接口继承现有“1v1通话”权限,避免未注册 action 被默认放行。
START TRANSACTION;
SET @video_call_menu_id := (
SELECT `id`
FROM `zyt_system_menu`
WHERE `perms` = 'tcm.diagnosis/video-call'
ORDER BY `id`
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 @video_call_menu_id, 'A', '启动通话转写', '', 1,
'tcm.diagnosis/startCallTranscription', '', '', '', '', 0, 1, 0,
UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
FROM DUAL
WHERE @video_call_menu_id IS NOT NULL
AND NOT EXISTS (
SELECT 1 FROM `zyt_system_menu`
WHERE `perms` = 'tcm.diagnosis/startCallTranscription'
);
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 @video_call_menu_id, 'A', '保存通话转写分段', '', 2,
'tcm.diagnosis/upsertCallTranscriptSegments', '', '', '', '', 0, 1, 0,
UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
FROM DUAL
WHERE @video_call_menu_id IS NOT NULL
AND NOT EXISTS (
SELECT 1 FROM `zyt_system_menu`
WHERE `perms` = 'tcm.diagnosis/upsertCallTranscriptSegments'
);
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 @video_call_menu_id, 'A', '完成通话转写', '', 3,
'tcm.diagnosis/finishCallTranscription', '', '', '', '', 0, 1, 0,
UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
FROM DUAL
WHERE @video_call_menu_id IS NOT NULL
AND NOT EXISTS (
SELECT 1 FROM `zyt_system_menu`
WHERE `perms` = 'tcm.diagnosis/finishCallTranscription'
);
SET @transcription_start_menu_id := (
SELECT `id` FROM `zyt_system_menu`
WHERE `perms` = 'tcm.diagnosis/startCallTranscription'
ORDER BY `id` LIMIT 1
);
SET @transcription_segment_menu_id := (
SELECT `id` FROM `zyt_system_menu`
WHERE `perms` = 'tcm.diagnosis/upsertCallTranscriptSegments'
ORDER BY `id` LIMIT 1
);
SET @transcription_finish_menu_id := (
SELECT `id` FROM `zyt_system_menu`
WHERE `perms` = 'tcm.diagnosis/finishCallTranscription'
ORDER BY `id` LIMIT 1
);
INSERT IGNORE INTO `zyt_system_role_menu` (`role_id`, `menu_id`)
SELECT `role_id`, @transcription_start_menu_id
FROM `zyt_system_role_menu`
WHERE `menu_id` = @video_call_menu_id
AND @transcription_start_menu_id IS NOT NULL;
INSERT IGNORE INTO `zyt_system_role_menu` (`role_id`, `menu_id`)
SELECT `role_id`, @transcription_segment_menu_id
FROM `zyt_system_role_menu`
WHERE `menu_id` = @video_call_menu_id
AND @transcription_segment_menu_id IS NOT NULL;
INSERT IGNORE INTO `zyt_system_role_menu` (`role_id`, `menu_id`)
SELECT `role_id`, @transcription_finish_menu_id
FROM `zyt_system_role_menu`
WHERE `menu_id` = @video_call_menu_id
AND @transcription_finish_menu_id IS NOT NULL;
COMMIT;