Quellcode durchsuchen

新增获取消息数量--改为根据阅读状态获取数量

wangyc vor 7 Jahren
Ursprung
Commit
823387fb93

+ 14 - 0
src/main/java/com/uas/ps/message/api/MessageController.java

@@ -10,6 +10,7 @@ import org.springframework.ui.ModelMap;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;
@@ -60,6 +61,19 @@ public class MessageController {
         return messageService.getUnReadMessageCount(receiverUu, receiverEnuu, consumerApp);
     }
 
+    /**
+     * 获取未读消息数量
+     * @param receiverUu 收信人uu
+     * @param receiverEnuu 收信人企业uu
+     * @param consumerApp 接收app
+     * @param isRead 阅读状态
+     * @return
+     */
+    @RequestMapping(value = "/count", method = RequestMethod.GET, produces = "application/json")
+    public Map<String, Object> getMessageCount(String receiverUu, String receiverEnuu, String consumerApp, @RequestParam(required = false) String isRead) {
+        return messageService.getMessageCount(receiverUu, receiverEnuu, consumerApp, isRead);
+    }
+
     /**
      * 保存消息
      * @param messages 消息

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

@@ -28,7 +28,7 @@ public interface MessageDao extends JpaRepository<Message, Long>, JpaSpecificati
         Long consumerAppId);
 
     /**
-     * 通过接收人和接收应用获取消息
+     * 通过接收人和接收应用和阅读状态获取消息
      * @param receiverUu 接收人uu
      * @param receiverEnuu 接收企业uu
      * @param isRead 阅读状态

+ 10 - 0
src/main/java/com/uas/ps/message/service/MessageService.java

@@ -36,6 +36,16 @@ public interface MessageService {
      */
     Map<String, Object> getUnReadMessageCount(String receiverUu, String receiverEnuu, String consumerApp);
 
+    /**
+     * 获取未读消息数量
+     * @param receiverUu 收信人uu
+     * @param receiverEnuu 收信人企业uu
+     * @param consumerApp 接收app
+     * @param isRead 阅读状态
+     * @return
+     */
+    Map<String, Object> getMessageCount(String receiverUu, String receiverEnuu, String consumerApp, String isRead);
+
     /**
      * 保存消息
      * @param messages 消息

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

@@ -1,5 +1,7 @@
 package com.uas.ps.message.service.impl;
 
+import static com.sun.org.apache.xml.internal.serializer.utils.Utils.messages;
+
 import com.alibaba.fastjson.JSONObject;
 import com.uas.account.entity.User;
 import com.uas.account.entity.UserView;
@@ -171,6 +173,38 @@ public class MessageServiceImpl implements MessageService {
         return resultMap;
     }
 
+    @Override
+    public Map<String, Object> getMessageCount(String receiverUu, String receiverEnuu, String consumerApp,
+        String isRead) {
+        if (StringUtils.isEmpty(receiverUu) || StringUtils.isEmpty(receiverEnuu)) {
+            throw new ParameterMissingException("接收人信息为空");
+        }
+        if (StringUtils.isEmpty(consumerApp)) {
+            throw new ParameterMissingException("接收应用信息为空");
+        }
+        App consumerAppExists = appDao.findByName(consumerApp);
+        if (consumerApp == null) {
+            throw new IllegalOperatorException("接收应用不存在");
+        }
+
+        List<Message> messages = new ArrayList<>();
+
+        if (StringUtils.isEmpty(isRead) || (!isRead.equals(Constant.NO.toString()) && !isRead.equals(Constant.YES.toString()))) {
+            messages = messageDao.findByReceiverUuAndReceiverEnuuAndConsumerAppId(Long.valueOf(receiverUu),
+                Long.valueOf(receiverEnuu), consumerAppExists.getId());
+
+        } else {
+            messages = messageDao.findByReceiverUuAndReceiverEnuuAndIsReadAndConsumerAppId(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());
+        return resultMap;
+    }
+
     @Override
     public List<Message> saveMessages(String messages) {
         List<JSONObject> jsonObjects = FastjsonUtils.fromJsonArray(messages, JSONObject.class);