Ver código fonte

将单条消息读取改为批量消息读取

wangyc 7 anos atrás
pai
commit
70e2e92b04

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

@@ -89,7 +89,7 @@ public class MessageController {
      */
     @HttpLog
     @RequestMapping(value = "/read", method = RequestMethod.POST, produces = "application/json")
-    public Message read(@RequestBody String cousumer) {
+    public List<Message> read(@RequestBody String cousumer) {
         return messageService.readMessage(cousumer);
     }
 }

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

@@ -54,5 +54,5 @@ public interface MessageService {
      * @param consumer 消息接收者信息
      * @return
      */
-    Message readMessage(String consumer);
+    List<Message> readMessage(String consumer);
 }

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

@@ -1,6 +1,5 @@
 package com.uas.ps.message.service.impl;
 
-
 import com.alibaba.fastjson.JSONObject;
 import com.uas.account.entity.User;
 import com.uas.account.entity.UserView;
@@ -198,7 +197,7 @@ public class MessageServiceImpl implements MessageService {
     }
 
     @Override
-    public Message readMessage(String consumer) {
+    public List<Message> readMessage(String consumer) {
         if (StringUtils.isEmpty(consumer)) {
             throw new ParameterMissingException("接收人信息为空,无法阅读消息");
         }
@@ -212,23 +211,30 @@ public class MessageServiceImpl implements MessageService {
         if (StringUtils.isEmpty(messageId)) {
             throw new ParameterMissingException("消息id为空,请重新确认消息信息");
         } else {
-            Message message = messageDao.findOne(Long.valueOf(String.valueOf(messageId)));
-            if (message == null) {
-                throw new IllegalOperatorException("消息不存在,请重新确认消息信息");
-            }
-            if (receiverUu == null || StringUtils.isEmpty(String.valueOf(receiverEnuu)) || receiverEnuu == null
-                || StringUtils.isEmpty(String.valueOf(receiverUu))) {
-                throw new ParameterMissingException("用户信息为空,无法读取消息");
-            }
-            if (!Long.valueOf(String.valueOf(receiverEnuu)).equals(message.getReceiverEnuu())
-                || !Long.valueOf(String.valueOf(receiverUu)).equals(message.getReceiverUu())) {
-                throw new IllegalOperatorException("此消息不属于当前用户,请重新确认后读取");
-            }
-            if (Constant.YES.equals(message.getIsRead())) {
-                throw new IllegalOperatorException("消息已阅读");
+            String[] messageIds = String.valueOf(messageId).split(SplitChar.COMMA);
+            List<Message> messages = new ArrayList<>();
+
+            for (String id : messageIds) {
+                Message message = messageDao.findOne(Long.valueOf(String.valueOf(messageId)));
+                if (message == null) {
+                    throw new IllegalOperatorException("消息不存在,请重新确认消息信息");
+                }
+                if (receiverUu == null || StringUtils.isEmpty(String.valueOf(receiverEnuu)) || receiverEnuu == null
+                    || StringUtils.isEmpty(String.valueOf(receiverUu))) {
+                    throw new ParameterMissingException("用户信息为空,无法读取消息");
+                }
+                if (!Long.valueOf(String.valueOf(receiverEnuu)).equals(message.getReceiverEnuu())
+                    || !Long.valueOf(String.valueOf(receiverUu)).equals(message.getReceiverUu())) {
+                    throw new IllegalOperatorException("此消息不属于当前用户,请重新确认后读取");
+                }
+                if (Constant.YES.equals(message.getIsRead())) {
+                    throw new IllegalOperatorException("消息已阅读");
+                }
+                message.setIsRead(Constant.YES);
+                messages.add(message);
             }
-            message.setIsRead(Constant.YES);
-            return messageDao.save(message);
+
+            return messageDao.save(messages);
         }
     }