| | |
| | | "WHERE ap.activityId = :activityId AND ap.state = 1 AND ap.rank IS NOT NULL " + |
| | | "ORDER BY ap.rank ASC") |
| | | List<ActivityPlayer> findTopRankedPlayers(@Param("activityId") Long activityId); |
| | | |
| | | /** |
| | | * 统计指定状态的参赛选手数量 |
| | | */ |
| | | long countByState(Integer state); |
| | | |
| | | /** |
| | | * 根据阶段ID和状态统计参赛选手数量 |
| | | */ |
| | | Long countByStageIdAndState(Long stageId, Integer state); |
| | | |
| | | /** |
| | | * 根据阶段ID和状态查找参赛选手(包含选手信息) |
| | | */ |
| | | @Query("SELECT ap FROM ActivityPlayer ap " + |
| | | "LEFT JOIN FETCH ap.player p " + |
| | | "WHERE ap.stageId = :stageId AND ap.state = :state " + |
| | | "ORDER BY ap.createTime DESC") |
| | | List<ActivityPlayer> findByStageIdAndStateWithPlayerOrderByCreateTimeDesc(@Param("stageId") Long stageId, @Param("state") Integer state); |
| | | |
| | | /** |
| | | * 检查选手是否已在指定阶段报名 |
| | | */ |
| | | boolean existsByStageIdAndPlayerId(Long stageId, Long playerId); |
| | | } |