This commit is contained in:
91
init-judge-project.sql
Normal file
91
init-judge-project.sql
Normal file
@@ -0,0 +1,91 @@
|
||||
-- ============================================
|
||||
-- 初始化裁判-项目关联数据
|
||||
-- 用于解决"您没有权限给该项目打分"的问题
|
||||
-- ============================================
|
||||
|
||||
-- 说明:
|
||||
-- 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;
|
||||
Reference in New Issue
Block a user