Просмотр исходного кода

Merge branch 'dev' of sunkean/raex_mmo into master

sunkean 3 лет назад
Родитель
Сommit
b30a0d1237

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

@@ -3,14 +3,17 @@ package com.izouma.meta.repo;
 import com.izouma.meta.domain.MetaEmailRecord;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Query;
 
 import java.util.List;
 
 public interface MetaEmailRecordRepo extends JpaRepository<MetaEmailRecord, Long>, JpaSpecificationExecutor<MetaEmailRecord> {
 
-    List<Long> findIdByUserIdAndEmailDel(Long userId, boolean emailDel);
+    @Query("SELECT m.emailId FROM MetaEmailRecord m WHERE m.userId = ?1 AND m.emailDel = ?2")
+    List<Long> findEmailIdByDel(Long userId, boolean emailDel);
 
-    List<Long> findIdByUserIdAndEmailRead(Long userId, boolean emailRead);
+    @Query("SELECT m.emailId FROM MetaEmailRecord m WHERE m.userId = ?1 AND m.emailRead = ?2")
+    List<Long> findEmailIdRead(Long userId, boolean emailRead);
 
     MetaEmailRecord findByUserIdAndEmailId(Long userId, Long emailId);
 }

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

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

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

@@ -106,9 +106,13 @@ public class WebSocket {
         switch (type) {
             case Constants.META_WEBSOCKET_NOTICE_EMAIL:
                 log.info("查询邮件");
-                List<MetaEmail> metaEmails = queryEmail(Long.parseLong(userId));
-                if (CollectionUtils.isNotEmpty(metaEmails)) {
-                    websocketCommon.sendMessageTo(clients, JSON.toJSONString(metaEmails), userId);
+                try {
+                    List<MetaEmail> metaEmails = queryEmail(Long.parseLong(userId));
+                    if (CollectionUtils.isNotEmpty(metaEmails)) {
+                        websocketCommon.sendMessageTo(clients, JSON.toJSONString(metaEmails), userId);
+                    }
+                } catch (Exception e) {
+                    log.error(String.format("查询邮件失败,错误信息[%S]", e.getMessage()));
                 }
                 break;
             case Constants.META_WEBSOCKET_NOTICE_EMAIL_READ:
@@ -165,13 +169,13 @@ public class WebSocket {
      */
     private List<MetaEmail> queryEmail(Long userId) {
         init();
-        List<Long> delIds = metaEmailRecordRepo.findIdByUserIdAndEmailDel(userId, true);
+        List<Long> delIds = metaEmailRecordRepo.findEmailIdByDel(userId, true);
         List<MetaEmail> metaEmails;
-        metaEmails = CollectionUtils.isEmpty(delIds) ? metaEmailRepo.findAll() : metaEmailRepo.findAllByIdNotIn(delIds);
+        metaEmails = CollectionUtils.isEmpty(delIds) ? metaEmailRepo.findAllByDel(false) : metaEmailRepo.findAllByDelAndIdNotIn(false, delIds);
         if (CollectionUtils.isEmpty(metaEmails)) {
             return metaEmails;
         }
-        List<Long> readIds = metaEmailRecordRepo.findIdByUserIdAndEmailRead(userId, true);
+        List<Long> readIds = metaEmailRecordRepo.findEmailIdRead(userId, true);
         if (CollectionUtils.isEmpty(readIds)) {
             return metaEmails;
         }