package com.rongyichuang.activity.entity;
|
|
import com.rongyichuang.common.entity.BaseEntity;
|
import jakarta.persistence.*;
|
|
import java.math.BigDecimal;
|
|
/**
|
* 活动选手评分项实体类
|
* 对应数据库表:t_activity_player_rating_item
|
*/
|
@Entity
|
@Table(name = "t_activity_player_rating_item")
|
public class ActivityPlayerRatingItem extends BaseEntity {
|
|
/**
|
* 活动选手评分ID(关联t_activity_player_rating表)
|
*/
|
@Column(name = "activity_player_rating_id", nullable = false)
|
private Long activityPlayerRatingId;
|
|
/**
|
* 评分项ID(关联t_rating_item表)
|
*/
|
@Column(name = "rating_item_id", nullable = false)
|
private Long ratingItemId;
|
|
/**
|
* 评分项名称(冗余字段,便于查询)
|
*/
|
@Column(name = "rating_item_name", length = 100)
|
private String ratingItemName;
|
|
/**
|
* 评分项权重(冗余字段,便于计算)
|
*/
|
@Column(name = "weight", precision = 5, scale = 2)
|
private BigDecimal weight;
|
|
/**
|
* 评分项满分(冗余字段,便于计算)
|
*/
|
@Column(name = "max_score", precision = 10, scale = 2)
|
private BigDecimal maxScore;
|
|
/**
|
* 实际得分
|
*/
|
@Column(name = "score", precision = 10, scale = 2, nullable = false)
|
private BigDecimal score;
|
|
/**
|
* 加权得分(score * weight)
|
*/
|
@Column(name = "weighted_score", precision = 10, scale = 2)
|
private BigDecimal weightedScore;
|
|
/**
|
* 评分备注
|
*/
|
@Column(name = "remark", length = 500)
|
private String remark;
|
|
// 构造函数
|
public ActivityPlayerRatingItem() {}
|
|
public ActivityPlayerRatingItem(Long activityPlayerRatingId, Long ratingItemId,
|
String ratingItemName, BigDecimal weight,
|
BigDecimal maxScore, BigDecimal score) {
|
this.activityPlayerRatingId = activityPlayerRatingId;
|
this.ratingItemId = ratingItemId;
|
this.ratingItemName = ratingItemName;
|
this.weight = weight;
|
this.maxScore = maxScore;
|
this.score = score;
|
// 计算加权得分
|
if (score != null && weight != null) {
|
this.weightedScore = score.multiply(weight);
|
}
|
}
|
|
// Getter和Setter方法
|
public Long getActivityPlayerRatingId() {
|
return activityPlayerRatingId;
|
}
|
|
public void setActivityPlayerRatingId(Long activityPlayerRatingId) {
|
this.activityPlayerRatingId = activityPlayerRatingId;
|
}
|
|
public Long getRatingItemId() {
|
return ratingItemId;
|
}
|
|
public void setRatingItemId(Long ratingItemId) {
|
this.ratingItemId = ratingItemId;
|
}
|
|
public String getRatingItemName() {
|
return ratingItemName;
|
}
|
|
public void setRatingItemName(String ratingItemName) {
|
this.ratingItemName = ratingItemName;
|
}
|
|
public BigDecimal getWeight() {
|
return weight;
|
}
|
|
public void setWeight(BigDecimal weight) {
|
this.weight = weight;
|
// 重新计算加权得分
|
updateWeightedScore();
|
}
|
|
public BigDecimal getMaxScore() {
|
return maxScore;
|
}
|
|
public void setMaxScore(BigDecimal maxScore) {
|
this.maxScore = maxScore;
|
}
|
|
public BigDecimal getScore() {
|
return score;
|
}
|
|
public void setScore(BigDecimal score) {
|
this.score = score;
|
// 重新计算加权得分
|
updateWeightedScore();
|
}
|
|
public BigDecimal getWeightedScore() {
|
return weightedScore;
|
}
|
|
public void setWeightedScore(BigDecimal weightedScore) {
|
this.weightedScore = weightedScore;
|
}
|
|
public String getRemark() {
|
return remark;
|
}
|
|
public void setRemark(String remark) {
|
this.remark = remark;
|
}
|
|
/**
|
* 更新加权得分
|
*/
|
private void updateWeightedScore() {
|
if (score != null && weight != null) {
|
this.weightedScore = score.multiply(weight);
|
}
|
}
|
|
/**
|
* 计算得分率(实际得分/满分)
|
*/
|
public BigDecimal getScoreRate() {
|
if (score != null && maxScore != null && maxScore.compareTo(BigDecimal.ZERO) > 0) {
|
return score.divide(maxScore, 4, BigDecimal.ROUND_HALF_UP);
|
}
|
return BigDecimal.ZERO;
|
}
|
|
@Override
|
public String toString() {
|
return "ActivityPlayerRatingItem{" +
|
"id=" + getId() +
|
", activityPlayerRatingId=" + activityPlayerRatingId +
|
", ratingItemId=" + ratingItemId +
|
", ratingItemName='" + ratingItemName + '\'' +
|
", weight=" + weight +
|
", maxScore=" + maxScore +
|
", score=" + score +
|
", weightedScore=" + weightedScore +
|
", remark='" + remark + '\'' +
|
'}';
|
}
|
}
|