孙永军 2 年之前
父节点
当前提交
2ca083184c

+ 1 - 1
src/main/java/com/sxtvs/open/api/clue/entity/ClueInfo.java

@@ -32,7 +32,7 @@ public class ClueInfo implements Serializable {
     /**
      * 关联线索表id
      */
-    private Long relaId;
+    private String relaId;
 
     /**
      * 添加时间

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

@@ -57,7 +57,7 @@ public class ClueServiceImpl extends ServiceImpl<ClueMapper, Clue> implements IC
         );
 
         if(clueIPage.getTotal() > 0){
-            Map<Long, Pair<String, Integer>> collect = clueInfoService.lambdaQuery().in(
+            Map<String, Pair<String, Integer>> collect = clueInfoService.lambdaQuery().in(
                     ClueInfo::getRelaId, clueIPage.getRecords().stream().map(Clue::getId).collect(Collectors.toList())
             ).list().stream().collect(Collectors.groupingBy(ClueInfo::getRelaId, Collectors.collectingAndThen(Collectors.toList(),
                     data -> new ImmutablePair<>(Strings.join(data.stream().map(ClueInfo::getType).distinct().collect(Collectors.toList()), ','), data.size())
@@ -124,17 +124,41 @@ public class ClueServiceImpl extends ServiceImpl<ClueMapper, Clue> implements IC
     }
 
     public void wxCreate(WxMessage wxMessage){
-
-        Clue clue = new Clue();
-        clue.setSource(2);
-        clue.setSiteId(3L);
-        clue.setAscription(3);
-        clue.setTitle(wxMessage.getContent());
-        clue.setSummary(wxMessage.getContent());
-        clue.setAuthor(wxMessage.getFromUserName());
-        clue.setAddTime(LocalDateTime.ofEpochSecond(wxMessage.getCreateTime(), 0, ZoneOffset.ofHours(8)));
-
-        save(clue);
+        LocalDateTime addTime = LocalDateTime.ofEpochSecond(wxMessage.getCreateTime(), 0, ZoneOffset.ofHours(8));
+
+        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();
+                info.setAddUser(last.getAuthor());
+                info.setAddTime(last.getAddTime());
+                info.setRelaId(last.getId());
+                info.setMaterialUrl(last.getSummary());
+                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 {
+            Clue clue = new Clue();
+            clue.setSource(2);
+            clue.setSiteId(3L);
+            clue.setAscription(3);
+            clue.setTitle(wxMessage.getContent());
+            clue.setSummary(wxMessage.getContent());
+            clue.setAuthor(wxMessage.getFromUserName());
+            clue.setAddTime(addTime);
+
+            save(clue);
+        }
 
     }