package com.rongyichuang.player.service;
|
|
import com.rongyichuang.player.dto.input.ActivityPlayerRatingInput;
|
import com.rongyichuang.player.dto.input.ActivityPlayerRatingItemInput;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.jdbc.core.JdbcTemplate;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.time.LocalDateTime;
|
|
@Service
|
public class ActivityPlayerRatingService {
|
|
private static final Logger log = LoggerFactory.getLogger(ActivityPlayerRatingService.class);
|
|
@Autowired
|
private JdbcTemplate jdbcTemplate;
|
|
@Transactional
|
public boolean saveRating(ActivityPlayerRatingInput input) {
|
try {
|
log.info("开始保存评分,activityPlayerId: {}", input.getActivityPlayerId());
|
|
// 先删除已有的评分记录(如果存在)
|
String deleteSql = "DELETE FROM t_activity_player_rating_item WHERE activity_player_id = ?";
|
int deletedCount = jdbcTemplate.update(deleteSql, input.getActivityPlayerId());
|
log.info("删除已有评分记录: {} 条", deletedCount);
|
|
// 插入新的评分记录
|
String insertSql = "INSERT INTO t_activity_player_rating_item " +
|
"(activity_player_id, rating_item_id, score, comment, create_time, update_time) " +
|
"VALUES (?, ?, ?, ?, ?, ?)";
|
|
LocalDateTime now = LocalDateTime.now();
|
int totalInserted = 0;
|
|
for (ActivityPlayerRatingItemInput ratingItem : input.getRatings()) {
|
int inserted = jdbcTemplate.update(insertSql,
|
input.getActivityPlayerId(),
|
ratingItem.getItemId(),
|
ratingItem.getScore(),
|
input.getComment(),
|
now,
|
now
|
);
|
totalInserted += inserted;
|
log.info("保存评分项目: itemId={}, score={}", ratingItem.getItemId(), ratingItem.getScore());
|
}
|
|
log.info("评分保存完成,共插入 {} 条记录", totalInserted);
|
return true;
|
|
} catch (Exception e) {
|
log.error("保存评分失败", e);
|
throw new RuntimeException("保存评分失败: " + e.getMessage());
|
}
|
}
|
}
|