lrj
1 天以前 93eb6b470773bc49ea6e1a9d4cbd914eb95d525b
backend/src/main/java/com/rongyichuang/player/repository/ActivityPlayerRepository.java
@@ -88,4 +88,28 @@
           "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);
}