package com.rongyichuang;
|
|
import org.junit.jupiter.api.Test;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.jdbc.core.JdbcTemplate;
|
import org.springframework.test.context.ActiveProfiles;
|
|
import java.util.List;
|
import java.util.Map;
|
|
@SpringBootTest
|
@ActiveProfiles("test")
|
public class AssignActivityPermissionTest {
|
|
@Autowired
|
private JdbcTemplate jdbcTemplate;
|
|
@Test
|
public void assignActivityPermissionToJudge68() {
|
System.out.println("=== 为评委ID=68分配活动权限 ===");
|
|
try {
|
Long judgeId = 68L;
|
|
// 1. 确认评委存在
|
String checkJudgeSql = "SELECT id, name, user_id FROM t_judge WHERE id = ?";
|
Map<String, Object> judge = jdbcTemplate.queryForMap(checkJudgeSql, judgeId);
|
System.out.println("评委信息: ID=" + judge.get("id") +
|
", 姓名=" + judge.get("name") +
|
", 用户ID=" + judge.get("user_id"));
|
|
// 2. 查看最新的几个活动
|
String getActivitiesSql = "SELECT id, name, state FROM t_activity WHERE state = 1 ORDER BY id DESC LIMIT 5";
|
List<Map<String, Object>> activities = jdbcTemplate.queryForList(getActivitiesSql);
|
|
System.out.println("最新的活动列表:");
|
for (Map<String, Object> activity : activities) {
|
System.out.println(" 活动ID: " + activity.get("id") +
|
", 活动名称: " + activity.get("name") +
|
", 状态: " + activity.get("state"));
|
}
|
|
// 3. 为评委分配最新活动的权限
|
if (!activities.isEmpty()) {
|
Map<String, Object> latestActivity = activities.get(0);
|
Long activityId = ((Number) latestActivity.get("id")).longValue();
|
String activityName = (String) latestActivity.get("name");
|
|
// 检查是否已经有权限
|
String checkPermissionSql = "SELECT COUNT(*) as count FROM t_activity_judge WHERE judge_id = ? AND activity_id = ?";
|
Map<String, Object> permissionExists = jdbcTemplate.queryForMap(checkPermissionSql, judgeId, activityId);
|
|
if (((Number) permissionExists.get("count")).intValue() == 0) {
|
// 基于现有记录复制stage_id,使用活动ID作为stage_id(简化处理)
|
String insertPermissionSql = "INSERT INTO t_activity_judge (judge_id, activity_id, stage_id, state, version) VALUES (?, ?, ?, 1, 0)";
|
int result = jdbcTemplate.update(insertPermissionSql, judgeId, activityId, activityId);
|
|
if (result > 0) {
|
System.out.println("✅ 成功为评委分配活动权限: " + activityName + " (ID=" + activityId + ")");
|
} else {
|
System.out.println("❌ 分配活动权限失败");
|
}
|
} else {
|
System.out.println("评委已经有该活动的权限");
|
}
|
|
// 4. 验证权限分配结果
|
String verifyPermissionSql = "SELECT aj.activity_id, a.name as activity_name, aj.state " +
|
"FROM t_activity_judge aj " +
|
"JOIN t_activity a ON aj.activity_id = a.id " +
|
"WHERE aj.judge_id = ?";
|
List<Map<String, Object>> permissions = jdbcTemplate.queryForList(verifyPermissionSql, judgeId);
|
|
System.out.println("评委ID=" + judgeId + " 的所有活动权限:");
|
for (Map<String, Object> permission : permissions) {
|
System.out.println(" 活动ID: " + permission.get("activity_id") +
|
", 活动名称: " + permission.get("activity_name") +
|
", 权限状态: " + permission.get("state"));
|
}
|
|
if (permissions.isEmpty()) {
|
System.out.println("❌ 该评委仍然没有任何活动权限!");
|
} else {
|
System.out.println("✅ 权限分配成功,评委现在有 " + permissions.size() + " 个活动的评审权限");
|
}
|
} else {
|
System.out.println("❌ 没有找到可用的活动");
|
}
|
|
} catch (Exception e) {
|
System.out.println("分配权限时发生异常: " + e.getMessage());
|
e.printStackTrace();
|
}
|
}
|
}
|