| | |
| | | |
| | | import java.util.List; |
| | | import java.util.Optional; |
| | | import java.time.LocalDateTime; |
| | | |
| | | /** |
| | | * 活动选手Repository接口 |
| | |
| | | List<ActivityPlayer> findTopRankedPlayers(@Param("activityId") Long activityId); |
| | | |
| | | /** |
| | | * 统计最近报名趋势(仅第一阶段,state包含待审核与通过) |
| | | */ |
| | | @Query(value = "SELECT DATE(ap.create_time) AS signup_date, COUNT(*) AS total " + |
| | | "FROM t_activity_player ap " + |
| | | "JOIN t_activity stage ON stage.id = ap.stage_id " + |
| | | "WHERE stage.sort_order = 1 AND stage.state = 1 " + |
| | | " AND ap.state IN (0, 1) " + |
| | | " AND ap.create_time >= :startDate " + |
| | | "GROUP BY DATE(ap.create_time) " + |
| | | "ORDER BY signup_date", nativeQuery = true) |
| | | List<Object[]> countFirstStageRegistrationsByDate(@Param("startDate") LocalDateTime startDate); |
| | | |
| | | /** |
| | | * 统计各区域报名数量(仅第一阶段,state包含待审核与通过) |
| | | */ |
| | | @Query(value = "SELECT ap.region_id, r.name, r.leaf_flag, COUNT(*) AS total " + |
| | | "FROM t_activity_player ap " + |
| | | "JOIN t_activity stage ON stage.id = ap.stage_id " + |
| | | "LEFT JOIN t_region r ON r.id = ap.region_id " + |
| | | "WHERE stage.sort_order = 1 AND stage.state = 1 " + |
| | | " AND ap.state IN (0, 1) " + |
| | | "GROUP BY ap.region_id, r.name, r.leaf_flag " + |
| | | "ORDER BY total DESC", nativeQuery = true) |
| | | List<Object[]> countFirstStageRegistrationsByRegion(); |
| | | |
| | | /** |
| | | * 统计指定状态的参赛选手数量 |
| | | */ |
| | | long countByState(Integer state); |