92 lines
2.2 KiB
SQL
92 lines
2.2 KiB
SQL
-- ============================================
|
|
-- 初始化裁判-项目关联数据
|
|
-- 用于解决"您没有权限给该项目打分"的问题
|
|
-- ============================================
|
|
|
|
-- 说明:
|
|
-- 1. 这个脚本会为所有裁判分配所有项目的评分权限
|
|
-- 2. 如果需要更精细的权限控制,请根据实际情况修改
|
|
-- 3. 执行前请确保 martial_judge 和 martial_project 表中已有数据
|
|
|
|
-- 清空现有的裁判-项目关联(可选)
|
|
-- TRUNCATE TABLE martial_judge_project;
|
|
|
|
-- 方案1:为所有裁判分配所有项目(适用于测试环境)
|
|
INSERT INTO martial_judge_project (
|
|
competition_id,
|
|
judge_id,
|
|
project_id,
|
|
assign_time,
|
|
status,
|
|
is_deleted,
|
|
create_time,
|
|
update_time
|
|
)
|
|
SELECT
|
|
j.competition_id,
|
|
j.id AS judge_id,
|
|
p.id AS project_id,
|
|
NOW() AS assign_time,
|
|
1 AS status,
|
|
0 AS is_deleted,
|
|
NOW() AS create_time,
|
|
NOW() AS update_time
|
|
FROM martial_judge j
|
|
CROSS JOIN martial_project p
|
|
WHERE j.is_deleted = 0
|
|
AND p.is_deleted = 0
|
|
AND NOT EXISTS (
|
|
SELECT 1 FROM martial_judge_project jp
|
|
WHERE jp.judge_id = j.id
|
|
AND jp.project_id = p.id
|
|
AND jp.is_deleted = 0
|
|
);
|
|
|
|
-- 方案2:为特定裁判分配特定项目(适用于生产环境)
|
|
-- 示例:为裁判ID=456分配项目ID=5的权限
|
|
/*
|
|
INSERT INTO martial_judge_project (
|
|
competition_id,
|
|
judge_id,
|
|
project_id,
|
|
assign_time,
|
|
status,
|
|
is_deleted,
|
|
create_time,
|
|
update_time
|
|
) VALUES (
|
|
200, -- 比赛ID
|
|
456, -- 裁判ID
|
|
5, -- 项目ID
|
|
NOW(),
|
|
1,
|
|
0,
|
|
NOW(),
|
|
NOW()
|
|
);
|
|
*/
|
|
|
|
-- 验证数据
|
|
SELECT
|
|
jp.id,
|
|
j.name AS judge_name,
|
|
p.project_name,
|
|
jp.status,
|
|
jp.assign_time
|
|
FROM martial_judge_project jp
|
|
LEFT JOIN martial_judge j ON jp.judge_id = j.id
|
|
LEFT JOIN martial_project p ON jp.project_id = p.id
|
|
WHERE jp.is_deleted = 0
|
|
ORDER BY jp.judge_id, jp.project_id;
|
|
|
|
-- 查看每个裁判分配的项目数量
|
|
SELECT
|
|
j.id AS judge_id,
|
|
j.name AS judge_name,
|
|
COUNT(jp.id) AS project_count
|
|
FROM martial_judge j
|
|
LEFT JOIN martial_judge_project jp ON j.id = jp.judge_id AND jp.is_deleted = 0
|
|
WHERE j.is_deleted = 0
|
|
GROUP BY j.id, j.name
|
|
ORDER BY j.id;
|