Codex Assistant
2 天以前 ba94ceae1315174798ae1967ef62268c6d16cd5b
backend/src/main/java/com/rongyichuang/activity/service/ActivityService.java
@@ -60,25 +60,22 @@
    /**
     * 分页查询比赛列表
     */
    public PageResponse<ActivityResponse> findActivities(PageRequest pageRequest, String name) {
    public PageResponse<ActivityResponse> findActivities(PageRequest pageRequest, String name, Integer state) {
        Pageable pageable = pageRequest.toPageable();
        Page<Activity> page;
        if (StringUtils.hasText(name)) {
        boolean hasName = StringUtils.hasText(name);
        if (state != null) {
            if (hasName) {
                page = activityRepository.findByPidAndStateAndNameContainingOrderByCreateTimeDesc(0L, state, name, pageable);
            } else {
                page = activityRepository.findByPidAndStateOrderByCreateTimeDesc(0L, state, pageable);
            }
        } else if (hasName) {
            page = activityRepository.findByPidAndNameContainingOrderByCreateTimeDesc(0L, name, pageable);
        } else {
            // 查询所有主活动(pid = 0)
            page = activityRepository.findByPidOrderByCreateTimeDesc(0L, pageable);
        }
        // 调试:打印分页原始活动的报名截止时间
        try {
            log.info("分页查询比赛列表:总数={}, 当前页={}, 每页={}", page.getTotalElements(), page.getNumber(), page.getSize());
            page.getContent().stream().limit(10).forEach(a ->
                log.info("Activity(id={}, name={}) signupDeadline={}, matchTime={}", a.getId(), a.getName(), a.getSignupDeadline(), a.getMatchTime())
            );
        } catch (Exception e) {
            log.warn("打印活动报名截止时间日志失败: {}", e.getMessage());
        }
        List<ActivityResponse> content = page.getContent().stream()
@@ -372,6 +369,17 @@
        }
        return false;
    }
    public boolean updateActivityState(Long id, Integer state) {
        Optional<Activity> activityOpt = activityRepository.findById(id);
        if (activityOpt.isPresent()) {
            Activity activity = activityOpt.get();
            activity.setState(state);
            activityRepository.save(activity);
            return true;
        }
        return false;
    }
    
    /**
     * 获取所有有效主比赛(用于下拉选择)