孙永军 2 年之前
父节点
当前提交
a13f712495
共有 1 个文件被更改,包括 26 次插入12 次删除
  1. 26 12
      src/main/java/com/sxtvs/open/api/clue/service/impl/ClueServiceImpl.java

+ 26 - 12
src/main/java/com/sxtvs/open/api/clue/service/impl/ClueServiceImpl.java

@@ -24,6 +24,7 @@ import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.ZoneOffset;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
 
@@ -129,9 +130,10 @@ public class ClueServiceImpl extends ServiceImpl<ClueMapper, Clue> implements IC
         Clue last = lambdaQuery().eq(Clue::getAuthor, wxMessage.getFromUserName()).gt(Clue::getAddTime, addTime.minusHours(24))
                 .orderByDesc(Clue::getId).last("limit 1").one();
         if(null != last && last.getReplyFlag() == 0){   //24h内有消息但未回复
-            ClueInfo info = clueInfoService.lambdaQuery().eq(ClueInfo::getRelaId, last.getId()).one();
-            if(null == info){
-                info = new ClueInfo();
+            List<ClueInfo> infos = clueInfoService.lambdaQuery().eq(ClueInfo::getRelaId, last.getId()).list();
+
+            if(infos.size() == 0){
+                ClueInfo info = new ClueInfo();
                 info.setAddUser(last.getAuthor());
                 info.setAddTime(last.getAddTime());
                 info.setRelaId(last.getId());
@@ -139,15 +141,15 @@ public class ClueServiceImpl extends ServiceImpl<ClueMapper, Clue> implements IC
                 info.setType(0);
                 clueInfoService.save(info);
             }
-            info = new ClueInfo();
-            info.setAddUser(wxMessage.getFromUserName());
-            info.setAddTime(addTime);
-            info.setRelaId(last.getId());
-            info.setMaterialUrl(wxMessage.getContent());
-            info.setType(0);
-            clueInfoService.save(info);
-
-        }else {
+            ClueInfo info1 = new ClueInfo();
+            info1.setAddUser(wxMessage.getFromUserName());
+            info1.setAddTime(addTime);
+            info1.setRelaId(last.getId());
+            info1.setMaterialUrl(wxMessage.getContent());
+            info1.setType(getMediaType(wxMessage.getMsgType()));
+            clueInfoService.save(info1);
+
+        }else if(wxMessage.getMsgType().equals("text")){
             Clue clue = new Clue();
             clue.setSource(2);
             clue.setSiteId(3L);
@@ -163,4 +165,16 @@ public class ClueServiceImpl extends ServiceImpl<ClueMapper, Clue> implements IC
 
     }
 
+    private Integer getMediaType(String type){
+        switch (type){
+            case "text":
+                return 0;
+            case "image":
+                return 1;
+            case "video":
+                return 2;
+        }
+        return 0;
+    }
+
 }