Ver Fonte

元宇宙通知socket

sunkean há 3 anos atrás
pai
commit
aa9141f96e

+ 4 - 0
src/main/java/com/izouma/meta/config/Constants.java

@@ -13,12 +13,16 @@ public interface Constants {
 
     String MESSAGE_NORMAL = "META_MESSAGE_NORMAL";
 
+    String META_WEBSOCKET_NOTICE_EMAIL_NOTICE = "META_WEBSOCKET_NOTICE_EMAIL_NOTICE";
+
     String META_WEBSOCKET_NOTICE_EMAIL = "META_WEBSOCKET_NOTICE_EMAIL";
 
     String META_WEBSOCKET_NOTICE_EMAIL_READ = "META_WEBSOCKET_NOTICE_EMAIL_READ";
 
     String META_WEBSOCKET_NOTICE_EMAIL_DEL = "META_WEBSOCKET_NOTICE_EMAIL_DEL";
 
+    String META_WEBSOCKET_NOTICE_ZOU_MA_LIGHT_NOTICE = "META_WEBSOCKET_NOTICE_ZOU_MA_LIGHT_NOTICE";
+
     String META_WEBSOCKET_NOTICE_ZOU_MA_LIGHT = "META_WEBSOCKET_NOTICE_ZOU_MA_LIGHT";
 
     String META_WEBSOCKET_NOTICE_FIRE_OPEN = "META_WEBSOCKET_NOTICE_FIRE_OPEN";

+ 2 - 2
src/main/java/com/izouma/meta/repo/MetaEmailRepo.java

@@ -8,7 +8,7 @@ import java.util.List;
 
 public interface MetaEmailRepo extends JpaRepository<MetaEmail, Long>, JpaSpecificationExecutor<MetaEmail> {
 
-    List<MetaEmail> findAllByDelAndIdNotIn(boolean del, List<Long> id);
+    List<MetaEmail> findAllByPublishAndDelAndIdNotIn(boolean publish, boolean del, List<Long> id);
 
-    List<MetaEmail> findAllByDel(boolean del);
+    List<MetaEmail> findAllByPublishAndDel(boolean publish, boolean del);
 }

+ 10 - 2
src/main/java/com/izouma/meta/websocket/WebSocket.java

@@ -105,6 +105,10 @@ public class WebSocket {
         String type = jsonObject.getString("type");
         log.info("来自客户端消息:" + message + "客户端的id是:" + session.getId());
         switch (type) {
+            case Constants.META_WEBSOCKET_NOTICE_EMAIL_NOTICE:
+                log.info("新邮件通知");
+                websocketCommon.sendMessageToOther(clients, Constants.META_WEBSOCKET_NOTICE_EMAIL_NOTICE, userId);
+                break;
             case Constants.META_WEBSOCKET_NOTICE_EMAIL:
                 log.info("查询邮件");
                 try {
@@ -132,6 +136,10 @@ public class WebSocket {
                     log.error(String.format("读取邮件失败,错误信息[%S]", e.getMessage()));
                 }
                 break;
+            case Constants.META_WEBSOCKET_NOTICE_ZOU_MA_LIGHT_NOTICE:
+                log.info("走马灯更新通知");
+                websocketCommon.sendMessageToOther(clients, Constants.META_WEBSOCKET_NOTICE_ZOU_MA_LIGHT_NOTICE, userId);
+                break;
             case Constants.META_WEBSOCKET_NOTICE_ZOU_MA_LIGHT:
                 log.info("查询走马灯");
                 String description = metaZouMaLightRepo.findDescriptionByPublishAndDel(true, false);
@@ -170,7 +178,7 @@ public class WebSocket {
         init();
         List<Long> delIds = metaEmailRecordRepo.findEmailIdByDel(userId, true);
         List<MetaEmail> metaEmails;
-        metaEmails = CollectionUtils.isEmpty(delIds) ? metaEmailRepo.findAllByDel(false) : metaEmailRepo.findAllByDelAndIdNotIn(false, delIds);
+        metaEmails = CollectionUtils.isEmpty(delIds) ? metaEmailRepo.findAllByPublishAndDel(true, false) : metaEmailRepo.findAllByPublishAndDelAndIdNotIn(true, false, delIds);
         if (CollectionUtils.isEmpty(metaEmails)) {
             return metaEmails;
         }
@@ -194,7 +202,7 @@ public class WebSocket {
      */
     private void delEmail(Long userId, Long emailId) {
         MetaEmailRecord metaEmailRecord = metaEmailRecordRepo.findByUserIdAndEmailId(userId, emailId);
-        if (Objects.isNull(userId)) {
+        if (Objects.isNull(metaEmailRecord)) {
             metaEmailRecordRepo.save(new MetaEmailRecord(userId, emailId, true, true));
             return;
         }