package com.rongyichuang.tools; 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 java.util.List; import java.util.Map; @SpringBootTest public class RatingTemplateFixer { @Autowired private JdbcTemplate jdbcTemplate; @Test public void fixRatingTemplateData() { System.out.println("=== 修正评分模板数据 ==="); // 1. 更新活动表的rating_scheme_id为1 String updateActivitySql = "UPDATE t_activity SET rating_scheme_id = 1 WHERE id = 1"; int activityResult = jdbcTemplate.update(updateActivitySql); System.out.println("更新活动评分模板配置结果: " + activityResult); // 2. 更新所有评分项目的scheme_id为1 String[] updateItemSqls = { "UPDATE t_rating_item SET scheme_id = 1, name = '代码质量', max_score = 30, order_no = 1 WHERE id = 1", "UPDATE t_rating_item SET scheme_id = 1, name = '功能完整性', max_score = 25, order_no = 2 WHERE id = 2", "UPDATE t_rating_item SET scheme_id = 1, name = '用户体验', max_score = 20, order_no = 3 WHERE id = 3", "UPDATE t_rating_item SET scheme_id = 1, name = '创新性', max_score = 15, order_no = 4 WHERE id = 4", "UPDATE t_rating_item SET scheme_id = 1, name = '项目展示', max_score = 10, order_no = 5 WHERE id = 5" }; for (int i = 0; i < updateItemSqls.length; i++) { try { int itemResult = jdbcTemplate.update(updateItemSqls[i]); System.out.println("更新评分项目 " + (i + 1) + " 结果: " + itemResult); } catch (Exception e) { System.err.println("更新评分项目 " + (i + 1) + " 失败: " + e.getMessage()); } } // 3. 删除多余的评分项目(ID 6, 7, 8) String deleteExtraItemsSql = "DELETE FROM t_rating_item WHERE id IN (6, 7, 8)"; int deleteResult = jdbcTemplate.update(deleteExtraItemsSql); System.out.println("删除多余评分项目结果: " + deleteResult); // 4. 验证修正结果 System.out.println("\n=== 验证修正结果 ==="); // 查询评分模板 String schemeSql = "SELECT * FROM t_rating_scheme WHERE id = 1"; List> schemes = jdbcTemplate.queryForList(schemeSql); System.out.println("评分模板:"); for (Map scheme : schemes) { System.out.println(scheme); } // 查询评分项目 String itemSql = "SELECT * FROM t_rating_item WHERE scheme_id = 1 ORDER BY order_no"; List> items = jdbcTemplate.queryForList(itemSql); System.out.println("\n评分项目:"); for (Map item : items) { System.out.println(item); } // 查询活动配置 String activitySql = "SELECT id, name, rating_scheme_id FROM t_activity WHERE id = 1"; List> activities = jdbcTemplate.queryForList(activitySql); System.out.println("\n活动配置:"); for (Map activity : activities) { System.out.println(activity); } // 计算总分 String totalScoreSql = """ SELECT rs.name as scheme_name, SUM(ri.max_score) as total_max_score FROM t_rating_scheme rs LEFT JOIN t_rating_item ri ON rs.id = ri.scheme_id WHERE rs.id = 1 GROUP BY rs.id, rs.name """; List> totalResults = jdbcTemplate.queryForList(totalScoreSql); System.out.println("\n总分验证:"); for (Map row : totalResults) { System.out.println(row); } System.out.println("\n✅ 评分模板数据修正完成!"); } }