64 lines
1.7 KiB
MySQL
64 lines
1.7 KiB
MySQL
|
|
-- 取消任务: txt2vid_512378411b084a07
|
|||
|
|
-- 1. 更新任务队列状态为 CANCELLED
|
|||
|
|
UPDATE task_queue
|
|||
|
|
SET status = 'CANCELLED',
|
|||
|
|
error_message = '用户取消了任务',
|
|||
|
|
updated_at = NOW()
|
|||
|
|
WHERE task_id = 'txt2vid_512378411b084a07';
|
|||
|
|
|
|||
|
|
-- 2. 更新文生视频任务状态为 CANCELLED
|
|||
|
|
UPDATE text_to_video_tasks
|
|||
|
|
SET status = 'CANCELLED',
|
|||
|
|
error_message = '用户取消了任务',
|
|||
|
|
updated_at = NOW()
|
|||
|
|
WHERE task_id = 'txt2vid_512378411b084a07';
|
|||
|
|
|
|||
|
|
-- 3. 更新用户积分(减少冻结积分)
|
|||
|
|
-- 注意:只减少 frozen_points,不增加 points(总积分不变)
|
|||
|
|
UPDATE users
|
|||
|
|
SET frozen_points = frozen_points - (
|
|||
|
|
SELECT COALESCE(freeze_points, 0)
|
|||
|
|
FROM points_freeze_records
|
|||
|
|
WHERE task_id = 'txt2vid_512378411b084a07'
|
|||
|
|
AND status = 'FROZEN'
|
|||
|
|
LIMIT 1
|
|||
|
|
),
|
|||
|
|
updated_at = NOW()
|
|||
|
|
WHERE username = (
|
|||
|
|
SELECT username
|
|||
|
|
FROM task_queue
|
|||
|
|
WHERE task_id = 'txt2vid_512378411b084a07'
|
|||
|
|
LIMIT 1
|
|||
|
|
)
|
|||
|
|
AND EXISTS (
|
|||
|
|
SELECT 1
|
|||
|
|
FROM points_freeze_records
|
|||
|
|
WHERE task_id = 'txt2vid_512378411b084a07'
|
|||
|
|
AND status = 'FROZEN'
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
-- 4. 返还冻结的积分(将冻结记录状态改为 RETURNED)
|
|||
|
|
UPDATE points_freeze_records
|
|||
|
|
SET status = 'RETURNED',
|
|||
|
|
updated_at = NOW()
|
|||
|
|
WHERE task_id = 'txt2vid_512378411b084a07'
|
|||
|
|
AND status = 'FROZEN';
|
|||
|
|
|
|||
|
|
-- 5. 查询任务信息(用于确认)
|
|||
|
|
SELECT
|
|||
|
|
tq.task_id,
|
|||
|
|
tq.status as queue_status,
|
|||
|
|
tq.username,
|
|||
|
|
tq.error_message,
|
|||
|
|
ttvt.status as task_status,
|
|||
|
|
pfr.freeze_points,
|
|||
|
|
pfr.status as freeze_status
|
|||
|
|
FROM task_queue tq
|
|||
|
|
LEFT JOIN text_to_video_tasks ttvt ON tq.task_id = ttvt.task_id
|
|||
|
|
LEFT JOIN points_freeze_records pfr ON tq.task_id = pfr.task_id
|
|||
|
|
WHERE tq.task_id = 'txt2vid_512378411b084a07';
|
|||
|
|
|
|||
|
|
-- 查询结果
|
|||
|
|
SELECT '任务已取消' as result;
|
|||
|
|
|