| | |
| | | /** |
| | | * 分页查询比赛列表 |
| | | */ |
| | | 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() |
| | |
| | | } |
| | | 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; |
| | | } |
| | | |
| | | /** |
| | | * 获取所有有效主比赛(用于下拉选择) |