feat: 增强二维码和图片代理功能

主要修改:
1. 在QrProxyController中新增多个图片代理接口,包括首页、首次赏金、中途赏金和结束赏金图片的获取。
2. 更新LinkController中的链接状态查询逻辑,简化日志输出。
3. 在LinkStatusService中优化链接状态处理逻辑,增加对USING状态的过期检查。
4. 在ScriptClient中新增通用图片获取方法,支持从脚本端获取图片数据。
5. 更新SecurityConfig,允许公开访问二维码和游戏界面数据接口。

技术细节:
- 新增GameInterfaceResponse DTO以支持游戏界面数据的返回格式。
- 通过脚本端接口实现图片的动态获取和链接状态的自动刷新。
This commit is contained in:
zyh
2025-08-26 23:11:01 +08:00
parent 400d6757c8
commit bb4136b4ab
10 changed files with 478 additions and 217 deletions

View File

@@ -0,0 +1,34 @@
-- 数据库迁移脚本为link_task表添加首次选区时间字段
-- 执行时间2025-01-XX
-- 说明:记录链接首次选区的准确时间,便于跟踪和分析
-- 为link_task表添加首次选区时间字段
ALTER TABLE `link_task`
ADD COLUMN `first_region_select_at` datetime(3) NULL DEFAULT NULL COMMENT '首次选区时间' AFTER `qr_expire_at`;
-- 添加索引以优化查询性能
ALTER TABLE `link_task`
ADD INDEX `idx_first_region_select` (`first_region_select_at` ASC);
-- 为现有USING状态的记录回填首次选区时间使用qr_created_at作为首次选区时间
UPDATE `link_task`
SET `first_region_select_at` = `qr_created_at`
WHERE `status` = 'USING'
AND `qr_created_at` IS NOT NULL
AND `first_region_select_at` IS NULL;
-- 验证表结构变更
SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT, COLUMN_COMMENT
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'link_task'
AND COLUMN_NAME = 'first_region_select_at'
ORDER BY ORDINAL_POSITION;
-- 验证数据回填结果
SELECT
COUNT(*) as total_using_links,
COUNT(first_region_select_at) as links_with_first_select_time,
COUNT(qr_created_at) as links_with_qr_time
FROM `link_task`
WHERE `status` = 'USING';