package com.rongyichuang.message.repository; import com.rongyichuang.message.entity.Message; 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; /** * 消息Repository接口 */ @Repository public interface MessageRepository extends JpaRepository { /** * 根据学员ID查找消息 */ List findByPlayerId(Integer playerId); /** * 根据用户ID查找消息 */ List findByUserId(Integer userId); /** * 根据目标类型和目标ID查找消息 */ List findByTargetTypeAndTargetId(Integer targetType, Integer targetId); /** * 根据状态查找消息 */ List findByState(Integer state); /** * 根据学员ID和状态查找消息 */ List findByPlayerIdAndState(Integer playerId, Integer state); /** * 查找微信消息发送失败的消息 */ @Query("SELECT m FROM Message m WHERE m.wxMsgSuccess = false AND m.wxMsgErrCount < :maxErrCount") List findFailedWxMessages(@Param("maxErrCount") Integer maxErrCount); /** * 根据学员ID查找未发布的消息 */ @Query("SELECT m FROM Message m WHERE m.playerId = :playerId AND m.state IN (0, 1)") List findUnpublishedMessagesByPlayerId(@Param("playerId") Integer playerId); }