|
@@ -3,6 +3,8 @@ package com.fs.app.taskService.impl;
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.fs.app.taskService.SopLogsTaskService;
|
|
import com.fs.app.taskService.SopLogsTaskService;
|
|
import com.fs.common.core.domain.R;
|
|
import com.fs.common.core.domain.R;
|
|
import com.fs.common.exception.base.BaseException;
|
|
import com.fs.common.exception.base.BaseException;
|
|
@@ -549,25 +551,27 @@ public class SopLogsTaskServiceImpl implements SopLogsTaskService {
|
|
|
|
|
|
List<SopUserLogsInfo> sopUserLogsInfos = sopUserLogsInfoMapper.selectSopUserLogsInfoListByIsRegister(logsInfoParam);
|
|
List<SopUserLogsInfo> sopUserLogsInfos = sopUserLogsInfoMapper.selectSopUserLogsInfoListByIsRegister(logsInfoParam);
|
|
|
|
|
|
-// if(logVo.getIsRegister() == 1){
|
|
|
|
-// List<Long> externalContactIdList = PubFun.listToNewList(sopUserLogsInfos, SopUserLogsInfo::getExternalId);
|
|
|
|
-// List<QwExternalContact> list = qwExternalContactService.list(new QueryWrapper<QwExternalContact>().isNotNull("fs_user_id").in("id", externalContactIdList));
|
|
|
|
-// Map<Long, QwExternalContact> map = PubFun.listToMapByGroupObject(list, QwExternalContact::getId);
|
|
|
|
-// sopUserLogsInfos = sopUserLogsInfos.stream().filter(e -> map.containsKey(e.getExternalId())).collect(Collectors.toList());
|
|
|
|
-// }
|
|
|
|
|
|
+ if(logVo.getIsRegister() == 1){
|
|
|
|
+ List<Long> externalContactIdList = PubFun.listToNewList(sopUserLogsInfos, SopUserLogsInfo::getExternalId);
|
|
|
|
+ if(!externalContactIdList.isEmpty()){
|
|
|
|
+ List<QwExternalContact> list = qwExternalContactService.list(new QueryWrapper<QwExternalContact>().isNotNull("fs_user_id").in("id", externalContactIdList));
|
|
|
|
+ Map<Long, QwExternalContact> map = PubFun.listToMapByGroupObject(list, QwExternalContact::getId);
|
|
|
|
+ sopUserLogsInfos = sopUserLogsInfos.stream().filter(e -> map.containsKey(e.getExternalId())).collect(Collectors.toList());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
// 获取fsUserId
|
|
// 获取fsUserId
|
|
-// Set<Long> externalIds = sopUserLogsInfos.stream().map(SopUserLogsInfo::getExternalId).collect(Collectors.toSet());
|
|
|
|
-// if (!externalIds.isEmpty()) {
|
|
|
|
-// List<QwExternalContact> externalContactList = qwExternalContactService.list(Wrappers.<QwExternalContact>lambdaQuery().in(QwExternalContact::getId, externalIds));
|
|
|
|
-// sopUserLogsInfos.forEach(s -> {
|
|
|
|
-// QwExternalContact qwExternalContact = externalContactList.stream().filter(e -> Objects.equals(s.getExternalId(), e.getId())).findFirst().orElse(null);
|
|
|
|
-// if (Objects.nonNull(qwExternalContact)) {
|
|
|
|
-// s.setFsUserId(qwExternalContact.getFsUserId());
|
|
|
|
-// }
|
|
|
|
-// });
|
|
|
|
-// }
|
|
|
|
|
|
+ Set<Long> externalIds = sopUserLogsInfos.stream().map(SopUserLogsInfo::getExternalId).collect(Collectors.toSet());
|
|
|
|
+ if (!externalIds.isEmpty()) {
|
|
|
|
+ List<QwExternalContact> externalContactList = qwExternalContactService.list(Wrappers.<QwExternalContact>lambdaQuery().in(QwExternalContact::getId, externalIds));
|
|
|
|
+ sopUserLogsInfos.forEach(s -> {
|
|
|
|
+ QwExternalContact qwExternalContact = externalContactList.stream().filter(e -> Objects.equals(s.getExternalId(), e.getId())).findFirst().orElse(null);
|
|
|
|
+ if (Objects.nonNull(qwExternalContact)) {
|
|
|
|
+ s.setFsUserId(qwExternalContact.getFsUserId());
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
|
|
// insertSopUserLogs(sopUserLogsInfos, logVo, sendTime, ruleTimeVO, content);
|
|
// insertSopUserLogs(sopUserLogsInfos, logVo, sendTime, ruleTimeVO, content);
|
|
insertSopUserLogs(sopUserLogsInfos, logVo, sendTime, ruleTimeVO, content, qwUserId, companyUserId, companyId, qwUserByRedis.getWelcomeText(),qwUserByRedis.getQwUserName(), groupChatMap);
|
|
insertSopUserLogs(sopUserLogsInfos, logVo, sendTime, ruleTimeVO, content, qwUserId, companyUserId, companyId, qwUserByRedis.getWelcomeText(),qwUserByRedis.getQwUserName(), groupChatMap);
|
|
@@ -672,6 +676,8 @@ public class SopLogsTaskServiceImpl implements SopLogsTaskService {
|
|
type, qwUserId, companyUserId, companyId, groupChat.getChatId(), welcomeText,qwUserName, null, true);
|
|
type, qwUserId, companyUserId, companyId, groupChat.getChatId(), welcomeText,qwUserName, null, true);
|
|
}else{
|
|
}else{
|
|
groupChat.getChatUserList().forEach(user -> {
|
|
groupChat.getChatUserList().forEach(user -> {
|
|
|
|
+ ruleTimeVO.setSendType(2);
|
|
|
|
+ ruleTimeVO.setRemark("客户群催课");
|
|
QwSopLogs sopLogs = createBaseLog(formattedSendTime, logVo, ruleTimeVO, user.getUserId(), user.getName(), null);
|
|
QwSopLogs sopLogs = createBaseLog(formattedSendTime, logVo, ruleTimeVO, user.getUserId(), user.getName(), null);
|
|
handleLogBasedOnType(sopLogs, content, logVo, sendTime, courseId, videoId,
|
|
handleLogBasedOnType(sopLogs, content, logVo, sendTime, courseId, videoId,
|
|
type, qwUserId, companyUserId, companyId, user.getUserId(), welcomeText,qwUserName, null, false);
|
|
type, qwUserId, companyUserId, companyId, user.getUserId(), welcomeText,qwUserName, null, false);
|
|
@@ -725,6 +731,7 @@ public class SopLogsTaskServiceImpl implements SopLogsTaskService {
|
|
sopLogs.setSendType(ruleTimeVO.getSendType());
|
|
sopLogs.setSendType(ruleTimeVO.getSendType());
|
|
sopLogs.setSendStatus(3L);
|
|
sopLogs.setSendStatus(3L);
|
|
sopLogs.setReceivingStatus(0L);
|
|
sopLogs.setReceivingStatus(0L);
|
|
|
|
+ sopLogs.setRemark(ruleTimeVO.getRemark());
|
|
|
|
|
|
String[] userKey = logVo.getUserId().split("\\|");
|
|
String[] userKey = logVo.getUserId().split("\\|");
|
|
sopLogs.setCompanyId(Long.valueOf(userKey[2].trim()));
|
|
sopLogs.setCompanyId(Long.valueOf(userKey[2].trim()));
|
|
@@ -1623,10 +1630,14 @@ public class SopLogsTaskServiceImpl implements SopLogsTaskService {
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
|
|
+ // 查询完课模板信息
|
|
|
|
+ FsCourseFinishTemp finishTemp = fsCourseFinishTempMapper.selectFsCourseFinishTempByCompanyUserId(finishLog.getCompanyUserId(), finishLog.getVideoId());
|
|
|
|
+
|
|
|
|
+
|
|
List<QwGroupChatUser> qwGroupChatUserList = qwGroupChatUserService.selectUserIsChat(externalContact.getExternalUserId());
|
|
List<QwGroupChatUser> qwGroupChatUserList = qwGroupChatUserService.selectUserIsChat(externalContact.getExternalUserId());
|
|
if(!qwGroupChatUserList.isEmpty()){
|
|
if(!qwGroupChatUserList.isEmpty()){
|
|
- FsCourseFinishTemp finishSopTemp = fsCourseFinishTempMapper.selectFsCourseFinishTempChatSopByCompanyUserId(finishLog.getCompanyUserId(), finishLog.getVideoId());
|
|
|
|
- if(finishSopTemp != null){
|
|
|
|
|
|
+ if(finishTemp != null){
|
|
List<SopUserLogs> sopLogsList = sopUserLogsMapper.selectSopUserLogByChatIds(PubFun.listToNewList(qwGroupChatUserList, QwGroupChatUser::getChatId));
|
|
List<SopUserLogs> sopLogsList = sopUserLogsMapper.selectSopUserLogByChatIds(PubFun.listToNewList(qwGroupChatUserList, QwGroupChatUser::getChatId));
|
|
List<QwGroupChat> qwGroupChatList = qwGroupChatService.selectQwGroupChatByChatIds(PubFun.listToNewList(sopLogsList, SopUserLogs::getChatId).toArray(new String[0]));
|
|
List<QwGroupChat> qwGroupChatList = qwGroupChatService.selectQwGroupChatByChatIds(PubFun.listToNewList(sopLogsList, SopUserLogs::getChatId).toArray(new String[0]));
|
|
Map<String, QwGroupChat> groupChatMap = PubFun.listToMapByGroupObject(qwGroupChatList, QwGroupChat::getChatId);
|
|
Map<String, QwGroupChat> groupChatMap = PubFun.listToMapByGroupObject(qwGroupChatList, QwGroupChat::getChatId);
|
|
@@ -1636,13 +1647,10 @@ public class SopLogsTaskServiceImpl implements SopLogsTaskService {
|
|
e.setChatName(groupChat.getName());
|
|
e.setChatName(groupChat.getName());
|
|
}
|
|
}
|
|
});
|
|
});
|
|
- List<QwSopLogs> qwSopLogs = buildSopLogsChat(finishLog, finishSopTemp, externalContact, sopLogsList);
|
|
|
|
|
|
+ List<QwSopLogs> qwSopLogs = buildSopLogsChat(finishLog, finishTemp, externalContact, sopLogsList);
|
|
sopLogsToInsert.addAll(qwSopLogs);
|
|
sopLogsToInsert.addAll(qwSopLogs);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
- // 查询完课模板信息
|
|
|
|
- FsCourseFinishTemp finishTemp = fsCourseFinishTempMapper.selectFsCourseFinishTempByCompanyUserId(finishLog.getCompanyUserId(), finishLog.getVideoId());
|
|
|
|
if (finishTemp == null) {
|
|
if (finishTemp == null) {
|
|
// log.warn("完课模板不存在: " + finishLog.getCompanyUserId() + ", " + finishLog.getVideoId());
|
|
// log.warn("完课模板不存在: " + finishLog.getCompanyUserId() + ", " + finishLog.getVideoId());
|
|
continue;
|
|
continue;
|
|
@@ -1716,9 +1724,16 @@ public class SopLogsTaskServiceImpl implements SopLogsTaskService {
|
|
sopLogs.setSopId(e.getSopId());
|
|
sopLogs.setSopId(e.getSopId());
|
|
sopLogs.setExternalUserId(e.getChatId());
|
|
sopLogs.setExternalUserId(e.getChatId());
|
|
sopLogs.setExternalUserName(e.getChatName());
|
|
sopLogs.setExternalUserName(e.getChatName());
|
|
- JSONObject obj = JSON.parseObject(finishTemp.getSetting());
|
|
|
|
- obj.put("value", obj.getString("obj").replace("${name}", externalContact.getName()));
|
|
|
|
- setting.setSetting(obj.toJSONString());
|
|
|
|
|
|
+ if(finishTemp.getChatSetting() == null || finishTemp.getChatSetting().isEmpty()){
|
|
|
|
+ throw new BaseException("消息为空");
|
|
|
|
+ }
|
|
|
|
+ JSONArray list = new JSONArray();
|
|
|
|
+ JSON.parseArray(finishTemp.getChatSetting()).forEach(item -> {
|
|
|
|
+ JSONObject obj = JSON.parseObject(item.toString());
|
|
|
|
+ obj.put("value", obj.getString("obj").replace("${name}", externalContact.getName()));
|
|
|
|
+ list.add(obj);
|
|
|
|
+ });
|
|
|
|
+ setting.setSetting(list.toJSONString());
|
|
sopLogs.setContentJson(JSON.toJSONString(setting));
|
|
sopLogs.setContentJson(JSON.toJSONString(setting));
|
|
return sopLogs;
|
|
return sopLogs;
|
|
}).collect(Collectors.toList());
|
|
}).collect(Collectors.toList());
|