Codex Assistant
2025-11-06 375c18a6d2713ff19b22093eec57315992d8333f
backend/src/main/java/com/rongyichuang/activity/dto/ActivityResponse.java
@@ -19,14 +19,18 @@
    private String address;
    private Long ratingSchemeId;
    private Integer playerMax;
    private Integer sortOrder;
    private Integer state;
    private LocalDateTime createTime;
    private LocalDateTime updateTime;
    // 最近一次评审导出ZIP下载URL
    private String reviewExportUrl;
    
    // 关联数据
    private RatingSchemeResponse ratingScheme;
    private List<ActivityResponse> stages;
    private ActivityResponse parent;
    private List<ActivityJudgeResponse> judges; // 评委列表
    
    // 统计数据
    private Integer playerCount = 0; // 报名人数(实际人数)
@@ -51,18 +55,18 @@
        this.address = activity.getAddress();
        this.ratingSchemeId = activity.getRatingSchemeId();
        this.playerMax = activity.getPlayerMax();
        this.sortOrder = activity.getSortOrder();
        this.state = activity.getState();
        this.createTime = activity.getCreateTime();
        this.updateTime = activity.getUpdateTime();
        this.reviewExportUrl = activity.getReviewExportUrl();
        
        // 设置状态名称
        this.stateName = getStateNameByValue(activity.getState());
        
        // 设置关联数据(仅浅映射评分模板,避免任何层级的活动递归)
        if (activity.getRatingScheme() != null) {
            this.ratingScheme = new RatingSchemeResponse(activity.getRatingScheme());
        }
        // 明确不在DTO构造中填充stages和parent,避免递归与懒加载环路
        // 避免访问懒加载的关联关系,防止在没有活跃Hibernate会话时出现异常
        // 如果需要ratingScheme信息,应该在Service层单独处理
        this.ratingScheme = null;
        this.stages = null;
        this.parent = null;
    }
@@ -72,8 +76,8 @@
        if (state == null) return "未知";
        switch (state) {
            case 0: return "未发布";
            case 1: return "已发布";
            case 2: return "已关闭";
            case 1: return "进行中";
            case 2: return "关闭";
            default: return "未知";
        }
    }
@@ -159,6 +163,14 @@
        this.playerMax = playerMax;
    }
    
    public Integer getSortOrder() {
        return sortOrder;
    }
    public void setSortOrder(Integer sortOrder) {
        this.sortOrder = sortOrder;
    }
    public Integer getState() {
        return state;
    }
@@ -181,6 +193,14 @@
    
    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }
    public String getReviewExportUrl() {
        return reviewExportUrl;
    }
    public void setReviewExportUrl(String reviewExportUrl) {
        this.reviewExportUrl = reviewExportUrl;
    }
    
    public RatingSchemeResponse getRatingScheme() {
@@ -223,8 +243,16 @@
        this.stateName = stateName;
    }
    
    public List<ActivityJudgeResponse> getJudges() {
        return judges;
    }
    public void setJudges(List<ActivityJudgeResponse> judges) {
        this.judges = judges;
    }
    // 业务方法
    public boolean isCompetition() {
    public boolean isMainActivity() {
        return pid == 0;
    }