MessageDao.java 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package com.uas.ps.message.dao;
  2. import com.uas.ps.message.domain.Message;
  3. import java.util.List;
  4. import org.springframework.data.jpa.repository.JpaRepository;
  5. import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
  6. import org.springframework.data.jpa.repository.Query;
  7. import org.springframework.data.repository.query.Param;
  8. import org.springframework.stereotype.Repository;
  9. /**
  10. * Created by wangyc on 2018/1/13.
  11. *
  12. * @version 2018/1/13 15:45 wangyc
  13. */
  14. @Repository
  15. public interface MessageDao extends JpaRepository<Message, Long>, JpaSpecificationExecutor<Message> {
  16. /**
  17. * 通过接收人和接收应用获取消息
  18. * @param receiverUu 接收人uu
  19. * @param receiverEnuu 接收企业uu
  20. * @param consumerAppId 接收应用id
  21. * @return
  22. */
  23. @Query(nativeQuery = true, value = "select * from messages e where e.ms_receiveruu = :receiverUu and e.ms_receiverenuu = :receiverEnuu and e.ms_id in (select ms_id from message$consumeapp a where a.app_id = :consumerAppId)")
  24. List<Message> findByReceiverUuAndReceiverEnuuAndConsumerAppId(@Param("receiverUu") Long receiverUu, @Param("receiverEnuu") Long receiverEnuu, @Param("consumerAppId")
  25. Long consumerAppId);
  26. /**
  27. * 通过接收人和接收应用获取消息
  28. * @param receiverUu 接收人uu
  29. * @param receiverEnuu 接收企业uu
  30. * @param isRead 阅读状态
  31. * @param consumerAppId 接收应用id
  32. * @return
  33. */
  34. @Query(nativeQuery = true, value = "select * from messages e where e.ms_receiveruu = :receiverUu and e.ms_receiverenuu = :receiverEnuu and e.ms_isread = :isRead and e.ms_id in (select ms_id from message$consumeapp a where a.app_id = :consumerAppId)")
  35. List<Message> findByReceiverUuAndReceiverEnuuAndIsReadAndConsumerAppId(@Param("receiverUu") Long receiverUu, @Param("receiverEnuu") Long receiverEnuu, @Param("isRead") Short isRead, @Param("consumerAppId")
  36. Long consumerAppId);
  37. /**
  38. * 通过接收应用id、阅读状态、发送状获取需要推送消息
  39. * @param consumerAppId 接收应用id
  40. * @param isRead 阅读状态
  41. * @param isSent 发送状态
  42. * @return
  43. */
  44. @Query(nativeQuery = true, value = "select * from messages e where e.ms_smsType <> 'DONT_SEND' and e.ms_isread = :isRead and e.ms_issent = :isSent and e.ms_id in (select ms_id from message$consumeapp a where a.app_id = :consumerAppId) limit 0,500")
  45. List<Message> findByConsumerAppIdAndIsReadAndIsSentNeedToSend(@Param("consumerAppId") Long consumerAppId, @Param("isRead") Short isRead, @Param("isSent") Short isSent);
  46. }