浏览代码

将取数方法抽离

wangyc 7 年之前
父节点
当前提交
28c41290a0

+ 6 - 6
src/main/java/com/uas/ps/message/dao/MessageDao.java

@@ -17,26 +17,26 @@ import org.springframework.stereotype.Repository;
 public interface MessageDao extends JpaRepository<Message, Long>, JpaSpecificationExecutor<Message> {
 
     /**
-     * 通过接收人和接收应用获取消息
+     * 通过接收人和接收应用获取消息数量
      * @param receiverUu 接收人uu
      * @param receiverEnuu 接收企业uu
      * @param consumerAppId 接收应用id
      * @return
      */
-    @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)")
-    List<Message> findByReceiverUuAndReceiverEnuuAndConsumerAppId(@Param("receiverUu") Long receiverUu, @Param("receiverEnuu") Long receiverEnuu, @Param("consumerAppId")
+    @Query(nativeQuery = true, value = "select count(1) 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)")
+    Integer findCountByReceiverUuAndReceiverEnuuAndConsumerAppId(@Param("receiverUu") Long receiverUu, @Param("receiverEnuu") Long receiverEnuu, @Param("consumerAppId")
         Long consumerAppId);
 
     /**
-     * 通过接收人和接收应用和阅读状态获取消息
+     * 通过接收人和接收应用和阅读状态获取消息数量
      * @param receiverUu 接收人uu
      * @param receiverEnuu 接收企业uu
      * @param isRead 阅读状态
      * @param consumerAppId 接收应用id
      * @return
      */
-    @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)")
-    List<Message> findByReceiverUuAndReceiverEnuuAndIsReadAndConsumerAppId(@Param("receiverUu") Long receiverUu, @Param("receiverEnuu") Long receiverEnuu, @Param("isRead") Short isRead, @Param("consumerAppId")
+    @Query(nativeQuery = true, value = "select count(1) 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)")
+    Integer findCountByReceiverUuAndReceiverEnuuAndIsReadAndConsumerAppId(@Param("receiverUu") Long receiverUu, @Param("receiverEnuu") Long receiverEnuu, @Param("isRead") Short isRead, @Param("consumerAppId")
         Long consumerAppId);
 
     /**

+ 6 - 6
src/main/java/com/uas/ps/message/service/impl/MessageServiceImpl.java

@@ -162,12 +162,12 @@ public class MessageServiceImpl implements MessageService {
             throw new IllegalOperatorException("接收应用不存在");
         }
 
-        List<Message> messages = messageDao.findByReceiverUuAndReceiverEnuuAndIsReadAndConsumerAppId(Long.valueOf(receiverUu),
+        Integer messagesCount = messageDao.findCountByReceiverUuAndReceiverEnuuAndIsReadAndConsumerAppId(Long.valueOf(receiverUu),
             Long.valueOf(receiverEnuu), Constant.NO, consumerAppExists.getId());
 
         Map<String, Object> resultMap = new HashMap<>();
         resultMap.put("success", "success");
-        resultMap.put("count", CollectionUtils.isEmpty(messages) ? 0 : messages.size());
+        resultMap.put("count", messagesCount);
         return resultMap;
     }
 
@@ -185,21 +185,21 @@ public class MessageServiceImpl implements MessageService {
             throw new IllegalOperatorException("接收应用不存在");
         }
 
-        List<Message> messages = new ArrayList<>();
+        Integer messagesCount = 0;
 
         if (StringUtils.isEmpty(isRead) || (!isRead.equals(Constant.NO.toString()) && !isRead.equals(Constant.YES.toString()))) {
-            messages = messageDao.findByReceiverUuAndReceiverEnuuAndConsumerAppId(Long.valueOf(receiverUu),
+            messagesCount = messageDao.findCountByReceiverUuAndReceiverEnuuAndConsumerAppId(Long.valueOf(receiverUu),
                 Long.valueOf(receiverEnuu), consumerAppExists.getId());
 
         } else {
-            messages = messageDao.findByReceiverUuAndReceiverEnuuAndIsReadAndConsumerAppId(Long.valueOf(receiverUu),
+            messagesCount = messageDao.findCountByReceiverUuAndReceiverEnuuAndIsReadAndConsumerAppId(Long.valueOf(receiverUu),
                 Long.valueOf(receiverEnuu), Short.valueOf(isRead), consumerAppExists.getId());
         }
 
 
         Map<String, Object> resultMap = new HashMap<>();
         resultMap.put("success", "success");
-        resultMap.put("count", CollectionUtils.isEmpty(messages) ? 0 : messages.size());
+        resultMap.put("count", messagesCount);
         return resultMap;
     }