package com.rongyichuang.common.api;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.jdbc.core.JdbcTemplate;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import java.util.HashMap;
|
import java.util.Map;
|
|
@RestController
|
@RequestMapping("/cleanup")
|
public class DataCleanupController {
|
|
@Autowired
|
private JdbcTemplate jdbcTemplate;
|
|
@PostMapping("/clean-media-data")
|
public String cleanMediaData() {
|
try {
|
String sql = "DELETE FROM t_media WHERE target_id NOT REGEXP '^[0-9]+$'";
|
int deletedRows = jdbcTemplate.update(sql);
|
return "已删除 " + deletedRows + " 条错误数据";
|
} catch (Exception e) {
|
return "清理失败: " + e.getMessage();
|
}
|
}
|
|
@PostMapping("/clear-all-test-data")
|
public Map<String, Object> clearAllTestData() {
|
Map<String, Object> result = new HashMap<>();
|
try {
|
// 禁用外键检查
|
jdbcTemplate.execute("SET FOREIGN_KEY_CHECKS = 0");
|
|
// 按照外键依赖关系的顺序删除
|
int deletedRatingItems = jdbcTemplate.update("DELETE FROM t_activity_rating_item");
|
int deletedRatings = jdbcTemplate.update("DELETE FROM t_activity_rating");
|
int deletedActivityPlayers = jdbcTemplate.update("DELETE FROM t_activity_player");
|
int deletedActivityJudges = jdbcTemplate.update("DELETE FROM t_activity_judge");
|
int deletedPlayers = jdbcTemplate.update("DELETE FROM t_player");
|
int deletedActivities = jdbcTemplate.update("DELETE FROM t_activity");
|
|
// 重新启用外键检查
|
jdbcTemplate.execute("SET FOREIGN_KEY_CHECKS = 1");
|
|
result.put("success", true);
|
result.put("message", "所有测试数据已清空");
|
result.put("deletedCounts", Map.of(
|
"t_activity_rating_item", deletedRatingItems,
|
"t_activity_rating", deletedRatings,
|
"t_activity_player", deletedActivityPlayers,
|
"t_activity_judge", deletedActivityJudges,
|
"t_player", deletedPlayers,
|
"t_activity", deletedActivities
|
));
|
|
} catch (Exception e) {
|
result.put("success", false);
|
result.put("message", "清理失败: " + e.getMessage());
|
}
|
|
return result;
|
}
|
}
|