package com.rongyichuang.player.repository; import com.rongyichuang.player.entity.Player; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; import java.util.List; import java.util.Optional; /** * 学员Repository接口 */ @Repository public interface PlayerRepository extends JpaRepository { /** * 根据手机号查找学员 */ Optional findByPhone(String phone); /** * 根据用户ID查找学员 */ Optional findByUserId(Long userId); /** * 根据角色ID查找学员 */ List findByRoleId(Long roleId); /** * 根据状态查找学员 */ List findByState(Integer state); /** * 查找有效的学员 */ @Query("SELECT p FROM Player p WHERE p.state = 1") List findActivePlayers(); /** * 根据姓名模糊查询学员 */ @Query("SELECT p FROM Player p WHERE p.name LIKE %:name% AND p.state = 1") List findByNameContaining(@Param("name") String name); /** * 根据状态统计学员数量 */ long countByState(Integer state); }