|
@@ -5,11 +5,11 @@ import com.alibaba.fastjson.JSONObject;
|
|
|
import com.tzld.piaoquan.wecom.common.constant.TimeConstant;
|
|
|
import com.tzld.piaoquan.wecom.common.enums.MessageAttachmentTypeEnum;
|
|
|
import com.tzld.piaoquan.wecom.dao.mapper.HistoryMessageMapper;
|
|
|
+import com.tzld.piaoquan.wecom.dao.mapper.StaffWithUserMapper;
|
|
|
import com.tzld.piaoquan.wecom.dao.mapper.UserMapper;
|
|
|
import com.tzld.piaoquan.wecom.model.bo.MiniprogramRecord;
|
|
|
-import com.tzld.piaoquan.wecom.model.po.HistoryMessage;
|
|
|
-import com.tzld.piaoquan.wecom.model.po.HistoryMessageExample;
|
|
|
-import com.tzld.piaoquan.wecom.model.po.MessageAttachment;
|
|
|
+import com.tzld.piaoquan.wecom.model.bo.StaffWithUserParam;
|
|
|
+import com.tzld.piaoquan.wecom.model.po.*;
|
|
|
import com.tzld.piaoquan.wecom.service.AccessTokenService;
|
|
|
import com.tzld.piaoquan.wecom.service.HistoryMessageService;
|
|
|
import com.tzld.piaoquan.wecom.service.MessageAttachmentService;
|
|
@@ -22,6 +22,7 @@ import com.xxl.job.core.handler.annotation.XxlJob;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.ObjectUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.checkerframework.checker.units.qual.A;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
@@ -56,29 +57,35 @@ public class WeComHistoryDataJob {
|
|
|
@Autowired
|
|
|
private MessageAttachmentService messageAttachmentService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private StaffWithUserMapper staffWithUserMapper;
|
|
|
+
|
|
|
@XxlJob("saveHistoryMessageJob")
|
|
|
public ReturnT<String> selectHistoryMessageByDay(String param) {
|
|
|
- long endTime;
|
|
|
- long startTime;
|
|
|
- if (StringUtils.isEmpty(param)) {
|
|
|
+ StaffWithUserParam staffWithUserParam = new StaffWithUserParam();
|
|
|
+ if (StringUtils.isNotEmpty(param)) {
|
|
|
+ staffWithUserParam = JSONObject.parseObject(param, StaffWithUserParam.class);
|
|
|
+ }
|
|
|
+ if (staffWithUserParam.getStartTime() == null) {
|
|
|
HistoryMessageExample example = new HistoryMessageExample();
|
|
|
example.setOrderByClause("create_time desc");
|
|
|
example.setPage(new Page<>(1, 1));
|
|
|
List<HistoryMessage> historyMessages = historyMessageMapper.selectByExample(example);
|
|
|
- startTime = historyMessages.get(0).getCreateTime().getTime() / 1000;
|
|
|
- endTime = System.currentTimeMillis() / 1000;
|
|
|
- } else {
|
|
|
- String[] split = param.split(",");
|
|
|
- startTime = Long.parseLong(split[0]);
|
|
|
- endTime = Long.parseLong(split[1]);
|
|
|
+ staffWithUserParam.setStartTime(historyMessages.get(0).getCreateTime().getTime() / 1000);
|
|
|
+ }
|
|
|
+ if (staffWithUserParam.getEndTime() == null) {
|
|
|
+ staffWithUserParam.setEndTime(System.currentTimeMillis() / 1000);
|
|
|
}
|
|
|
+ Long startTime = staffWithUserParam.getStartTime();
|
|
|
+ Long endTime = staffWithUserParam.getEndTime();
|
|
|
+
|
|
|
for (; startTime < endTime; startTime += TimeConstant.DAY) {
|
|
|
- selectHistoryMessage(startTime, Math.min(startTime + TimeConstant.DAY, endTime));
|
|
|
+ selectHistoryMessage(startTime, Math.min(startTime + TimeConstant.DAY, endTime), staffWithUserParam.getStaffId());
|
|
|
}
|
|
|
return ReturnT.SUCCESS;
|
|
|
}
|
|
|
|
|
|
- public void selectHistoryMessage(Long startTime, Long endTime) {
|
|
|
+ public void selectHistoryMessage(Long startTime, Long endTime, Long staffId) {
|
|
|
try {
|
|
|
Integer total = getHistoryDataTotal(startTime, endTime);
|
|
|
if (total == null || total == 0) {
|
|
@@ -131,7 +138,7 @@ public class WeComHistoryDataJob {
|
|
|
}
|
|
|
allExternalUserList.addAll(externalUserList);
|
|
|
}
|
|
|
- insertHistoryMessageList(allExternalUserList, miniprogramRecordList, createdAt);
|
|
|
+ insertHistoryMessageList(allExternalUserList, miniprogramRecordList, createdAt, staffId);
|
|
|
messageAttachmentService.addMiniprogram(messageAttachmentList);
|
|
|
}
|
|
|
}
|
|
@@ -141,13 +148,21 @@ public class WeComHistoryDataJob {
|
|
|
}
|
|
|
|
|
|
|
|
|
- private void insertHistoryMessageList(List<String> allExternalUserList, List<MiniprogramRecord> miniprogramRecordList, Date sendTime) {
|
|
|
+ private void insertHistoryMessageList(List<String> allExternalUserList, List<MiniprogramRecord> miniprogramRecordList, Date sendTime, Long staffId) {
|
|
|
List<HistoryMessage> historyMessageList = new ArrayList<>();
|
|
|
for (String externalUserId3rdParty : allExternalUserList) {
|
|
|
Long userId = userMapper.selectIdByExternalUserId3rdParty(externalUserId3rdParty);
|
|
|
if (userId == null) {
|
|
|
continue;
|
|
|
}
|
|
|
+ if (staffId != null) {
|
|
|
+ StaffWithUserExample example = new StaffWithUserExample();
|
|
|
+ example.createCriteria().andStaffIdEqualTo(staffId).andUserIdEqualTo(userId);
|
|
|
+ List<StaffWithUser> staffWithUserList = staffWithUserMapper.selectByExample(example);
|
|
|
+ if (staffWithUserList == null) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
for (MiniprogramRecord miniprogramRecord : miniprogramRecordList) {
|
|
|
HistoryMessage historyMessage = new HistoryMessage();
|
|
|
historyMessage.setSendTime(sendTime);
|