This commit is contained in:
49
database/martial-db/create_dispatch_log_table.sql
Normal file
49
database/martial-db/create_dispatch_log_table.sql
Normal file
@@ -0,0 +1,49 @@
|
||||
-- =====================================================
|
||||
-- 创建调度调整日志表
|
||||
-- 用于记录调度功能的调整历史
|
||||
-- 执行时间: 2025-12-12
|
||||
-- =====================================================
|
||||
|
||||
USE blade;
|
||||
|
||||
-- 创建调度调整日志表
|
||||
CREATE TABLE IF NOT EXISTS `martial_schedule_adjustment_log` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`competition_id` bigint NOT NULL COMMENT '赛事ID',
|
||||
`schedule_detail_id` bigint NOT NULL COMMENT '编排明细ID',
|
||||
`schedule_group_id` bigint NOT NULL COMMENT '分组ID',
|
||||
`participant_id` bigint NOT NULL COMMENT '参赛者记录ID',
|
||||
`participant_name` varchar(100) DEFAULT NULL COMMENT '参赛者姓名',
|
||||
`organization` varchar(200) DEFAULT NULL COMMENT '单位名称',
|
||||
`old_order` int NOT NULL COMMENT '原顺序',
|
||||
`new_order` int NOT NULL COMMENT '新顺序',
|
||||
`adjustment_type` varchar(20) DEFAULT NULL COMMENT '调整类型(move_up=上移, move_down=下移, swap=交换)',
|
||||
`adjustment_reason` varchar(500) DEFAULT NULL COMMENT '调整原因',
|
||||
`operator_id` bigint DEFAULT NULL COMMENT '操作人ID',
|
||||
`operator_name` varchar(100) DEFAULT NULL COMMENT '操作人姓名',
|
||||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`tenant_id` varchar(12) DEFAULT '000000' COMMENT '租户ID',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_competition` (`competition_id`),
|
||||
KEY `idx_detail` (`schedule_detail_id`),
|
||||
KEY `idx_group` (`schedule_group_id`),
|
||||
KEY `idx_participant` (`participant_id`),
|
||||
KEY `idx_create_time` (`create_time`),
|
||||
KEY `idx_tenant` (`tenant_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='赛程调度调整日志表';
|
||||
|
||||
-- 验证表是否创建成功
|
||||
SELECT
|
||||
TABLE_NAME,
|
||||
TABLE_COMMENT,
|
||||
TABLE_ROWS
|
||||
FROM
|
||||
INFORMATION_SCHEMA.TABLES
|
||||
WHERE
|
||||
TABLE_SCHEMA = 'blade'
|
||||
AND TABLE_NAME = 'martial_schedule_adjustment_log';
|
||||
|
||||
-- 查看表结构
|
||||
DESC martial_schedule_adjustment_log;
|
||||
|
||||
SELECT '调度日志表创建成功!' AS status;
|
||||
116
database/martial-db/test_invite_code_generation.sql
Normal file
116
database/martial-db/test_invite_code_generation.sql
Normal file
@@ -0,0 +1,116 @@
|
||||
-- =====================================================
|
||||
-- 测试邀请码生成功能
|
||||
-- 执行时间: 2025-12-12
|
||||
-- =====================================================
|
||||
|
||||
USE blade;
|
||||
|
||||
-- =====================================================
|
||||
-- 1. 插入测试数据
|
||||
-- =====================================================
|
||||
|
||||
-- 为评委生成测试邀请码(使用现有字段)
|
||||
INSERT INTO martial_judge_invite (
|
||||
id, competition_id, judge_id, invite_code, role,
|
||||
venue_id, projects, expire_time, is_used,
|
||||
status, create_time
|
||||
) VALUES (
|
||||
1001, 1, 1, 'TEST01', 'judge',
|
||||
1, '["女子组长拳","男子组陈氏太极拳"]',
|
||||
DATE_ADD(NOW(), INTERVAL 30 DAY), 0,
|
||||
1, NOW()
|
||||
);
|
||||
|
||||
-- 为裁判长生成邀请码
|
||||
INSERT INTO martial_judge_invite (
|
||||
id, competition_id, judge_id, invite_code, role,
|
||||
venue_id, projects, expire_time, is_used,
|
||||
status, create_time
|
||||
) VALUES (
|
||||
1002, 1, 2, 'ADMIN1', 'chief_judge',
|
||||
NULL, NULL,
|
||||
DATE_ADD(NOW(), INTERVAL 30 DAY), 0,
|
||||
1, NOW()
|
||||
);
|
||||
|
||||
-- =====================================================
|
||||
-- 2. 查询测试
|
||||
-- =====================================================
|
||||
|
||||
-- 查询某个评委的有效邀请码
|
||||
SELECT
|
||||
ji.id,
|
||||
ji.invite_code,
|
||||
ji.role,
|
||||
ji.expire_time,
|
||||
ji.is_used,
|
||||
ji.status,
|
||||
j.name AS judge_name,
|
||||
c.competition_name
|
||||
FROM martial_judge_invite ji
|
||||
LEFT JOIN martial_judge j ON ji.judge_id = j.id
|
||||
LEFT JOIN martial_competition c ON ji.competition_id = c.id
|
||||
WHERE ji.competition_id = 1
|
||||
AND ji.judge_id = 1
|
||||
AND ji.status = 1
|
||||
AND ji.is_deleted = 0
|
||||
AND ji.expire_time > NOW()
|
||||
ORDER BY ji.create_time DESC
|
||||
LIMIT 1;
|
||||
|
||||
-- 查询所有有效邀请码
|
||||
SELECT
|
||||
ji.id,
|
||||
ji.invite_code,
|
||||
ji.role,
|
||||
j.name AS judge_name,
|
||||
ji.expire_time,
|
||||
ji.is_used,
|
||||
CASE
|
||||
WHEN ji.is_used = 1 THEN '已使用'
|
||||
WHEN ji.expire_time < NOW() THEN '已过期'
|
||||
WHEN ji.status = 0 THEN '已禁用'
|
||||
ELSE '待使用'
|
||||
END AS status_text
|
||||
FROM martial_judge_invite ji
|
||||
LEFT JOIN martial_judge j ON ji.judge_id = j.id
|
||||
WHERE ji.competition_id = 1
|
||||
AND ji.is_deleted = 0
|
||||
ORDER BY ji.create_time DESC;
|
||||
|
||||
-- =====================================================
|
||||
-- 3. 统计查询
|
||||
-- =====================================================
|
||||
|
||||
-- 统计某个赛事的邀请码状态
|
||||
SELECT
|
||||
COUNT(*) AS total,
|
||||
SUM(CASE WHEN is_used = 0 AND status = 1 AND expire_time > NOW() THEN 1 ELSE 0 END) AS available,
|
||||
SUM(CASE WHEN is_used = 1 THEN 1 ELSE 0 END) AS used,
|
||||
SUM(CASE WHEN expire_time <= NOW() THEN 1 ELSE 0 END) AS expired,
|
||||
SUM(CASE WHEN status = 0 THEN 1 ELSE 0 END) AS disabled
|
||||
FROM martial_judge_invite
|
||||
WHERE competition_id = 1
|
||||
AND is_deleted = 0;
|
||||
|
||||
-- =====================================================
|
||||
-- 4. 验证邀请码唯一性
|
||||
-- =====================================================
|
||||
|
||||
-- 检查邀请码是否重复
|
||||
SELECT
|
||||
invite_code,
|
||||
COUNT(*) AS count
|
||||
FROM martial_judge_invite
|
||||
WHERE is_deleted = 0
|
||||
GROUP BY invite_code
|
||||
HAVING COUNT(*) > 1;
|
||||
|
||||
-- =====================================================
|
||||
-- 5. 清理测试数据(可选)
|
||||
-- =====================================================
|
||||
|
||||
-- 删除测试数据
|
||||
-- DELETE FROM martial_judge_invite WHERE id IN (1001, 1002);
|
||||
|
||||
SELECT 'Test data inserted successfully!' AS status;
|
||||
Reference in New Issue
Block a user