|
@@ -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);
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|