|
@@ -2,14 +2,13 @@ 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.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
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;
|
|
import com.fs.common.utils.BatchUtils;
|
|
import com.fs.common.utils.BatchUtils;
|
|
import com.fs.common.utils.PubFun;
|
|
import com.fs.common.utils.PubFun;
|
|
import com.fs.common.utils.StringUtils;
|
|
import com.fs.common.utils.StringUtils;
|
|
-import com.fs.common.utils.date.DateUtil;
|
|
|
|
import com.fs.company.domain.CompanyUser;
|
|
import com.fs.company.domain.CompanyUser;
|
|
import com.fs.company.service.ICompanyUserService;
|
|
import com.fs.company.service.ICompanyUserService;
|
|
import com.fs.course.config.CourseConfig;
|
|
import com.fs.course.config.CourseConfig;
|
|
@@ -1624,27 +1623,30 @@ public class SopLogsTaskServiceImpl implements SopLogsTaskService {
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ List<QwGroupChatUser> qwGroupChatUserList = qwGroupChatUserService.selectUserIsChat(externalContact.getExternalUserId());
|
|
|
|
+ if(!qwGroupChatUserList.isEmpty()){
|
|
|
|
+ FsCourseFinishTemp finishSopTemp = fsCourseFinishTempMapper.selectFsCourseFinishTempChatSopByCompanyUserId(finishLog.getCompanyUserId(), finishLog.getVideoId());
|
|
|
|
+ if(finishSopTemp != null){
|
|
|
|
+ List<SopUserLogs> sopLogsList = sopUserLogsMapper.selectSopUserLogByChatIds(PubFun.listToNewList(qwGroupChatUserList, QwGroupChatUser::getChatId));
|
|
|
|
+ List<QwGroupChat> qwGroupChatList = qwGroupChatService.selectQwGroupChatByChatIds(PubFun.listToNewList(sopLogsList, SopUserLogs::getChatId).toArray(new String[0]));
|
|
|
|
+ Map<String, QwGroupChat> groupChatMap = PubFun.listToMapByGroupObject(qwGroupChatList, QwGroupChat::getChatId);
|
|
|
|
+ sopLogsList.forEach(e -> {
|
|
|
|
+ QwGroupChat groupChat = groupChatMap.get(e.getChatId());
|
|
|
|
+ if(groupChat != null){
|
|
|
|
+ e.setChatName(groupChat.getName());
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ List<QwSopLogs> qwSopLogs = buildSopLogsChat(finishLog, finishSopTemp, externalContact, sopLogsList);
|
|
|
|
+ sopLogsToInsert.addAll(qwSopLogs);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
// 查询完课模板信息
|
|
// 查询完课模板信息
|
|
FsCourseFinishTemp finishTemp = fsCourseFinishTempMapper.selectFsCourseFinishTempByCompanyUserId(finishLog.getCompanyUserId(), finishLog.getVideoId());
|
|
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;
|
|
}
|
|
}
|
|
- List<QwGroupChatUser> qwGroupChatUserList = qwGroupChatUserService.selectUserIsChat(externalContact.getExternalUserId());
|
|
|
|
- if(!qwGroupChatUserList.isEmpty()){
|
|
|
|
- List<SopUserLogs> sopLogsList = sopUserLogsMapper.selectSopUserLogByChatIds(PubFun.listToNewList(qwGroupChatUserList, QwGroupChatUser::getChatId));
|
|
|
|
- List<QwGroupChat> qwGroupChatList = qwGroupChatService.selectQwGroupChatByChatIds(PubFun.listToNewList(sopLogsList, SopUserLogs::getChatId).toArray(new String[0]));
|
|
|
|
- Map<String, QwGroupChat> groupChatMap = PubFun.listToMapByGroupObject(qwGroupChatList, QwGroupChat::getChatId);
|
|
|
|
- sopLogsList.forEach(e -> {
|
|
|
|
- QwGroupChat groupChat = groupChatMap.get(e.getChatId());
|
|
|
|
- if(groupChat != null){
|
|
|
|
- e.setChatName(groupChat.getName());
|
|
|
|
- }
|
|
|
|
- });
|
|
|
|
- List<QwSopLogs> qwSopLogs = buildSopLogsChat(finishLog, externalContact, sopLogsList);
|
|
|
|
- sopLogsToInsert.addAll(qwSopLogs);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
// 构建 sopLogs 对象
|
|
// 构建 sopLogs 对象
|
|
QwSopLogs sopLogs = buildSopLogs(finishLog, externalContact, finishTemp);
|
|
QwSopLogs sopLogs = buildSopLogs(finishLog, externalContact, finishTemp);
|
|
if (sopLogs == null) {
|
|
if (sopLogs == null) {
|
|
@@ -1693,7 +1695,7 @@ public class SopLogsTaskServiceImpl implements SopLogsTaskService {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- private List<QwSopLogs> buildSopLogsChat(FsCourseWatchLog finishLog, QwExternalContact externalContact, List<SopUserLogs> sopLogsList) {
|
|
|
|
|
|
+ private List<QwSopLogs> buildSopLogsChat(FsCourseWatchLog finishLog, FsCourseFinishTemp finishTemp, QwExternalContact externalContact, List<SopUserLogs> sopLogsList) {
|
|
return sopLogsList.stream().map(e -> {
|
|
return sopLogsList.stream().map(e -> {
|
|
QwSopChatTempSetting setting = new QwSopChatTempSetting();
|
|
QwSopChatTempSetting setting = new QwSopChatTempSetting();
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
@@ -1714,9 +1716,9 @@ 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());
|
|
- QwSopChatTempSetting.Setting setting1 = new QwSopChatTempSetting.Setting();
|
|
|
|
- setting1.setValue("恭喜" + externalContact.getName() + "完成了今天的课程!");
|
|
|
|
- setting.setSetting(Collections.singletonList(setting1));
|
|
|
|
|
|
+ JSONObject obj = JSON.parseObject(finishTemp.getSetting());
|
|
|
|
+ obj.put("value", obj.getString("obj").replace("${name}", externalContact.getName()));
|
|
|
|
+ setting.setSetting(obj.toJSONString());
|
|
sopLogs.setContentJson(JSON.toJSONString(setting));
|
|
sopLogs.setContentJson(JSON.toJSONString(setting));
|
|
return sopLogs;
|
|
return sopLogs;
|
|
}).collect(Collectors.toList());
|
|
}).collect(Collectors.toList());
|