Codex Assistant
3 天以前 ba94ceae1315174798ae1967ef62268c6d16cd5b
backend/src/main/java/com/rongyichuang/activity/service/ActivityService.java
@@ -60,11 +60,18 @@
    /**
     * 分页查询比赛列表
     */
    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)
@@ -90,6 +97,15 @@
                return response;
            })
            .collect(Collectors.toList());
        // 调试:打印返回给前端的响应对象中的报名截止
        try {
            content.stream().limit(10).forEach(r ->
                log.info("Response(id={}, name={}) signupDeadline={}, matchTime={}", r.getId(), r.getName(), r.getSignupDeadline(), r.getMatchTime())
            );
        } catch (Exception e) {
            log.warn("打印ActivityResponse日志失败: {}", e.getMessage());
        }
        
        return new PageResponse<>(content, page.getTotalElements(), page.getNumber(), page.getSize());
    }
@@ -353,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;
    }
    
    /**
     * 获取所有有效主比赛(用于下拉选择)