|
@@ -3,11 +3,13 @@ package com.fs.qw.service.impl;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONException;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.fs.ad.enums.AdUploadType;
|
|
|
import com.fs.ad.service.IAdHtmlClickLogService;
|
|
|
import com.fs.common.core.domain.R;
|
|
|
import com.fs.common.core.redis.RedisCache;
|
|
|
+import com.fs.common.utils.PubFun;
|
|
|
import com.fs.common.utils.StringUtils;
|
|
|
import com.fs.company.service.ICompanyConfigService;
|
|
|
import com.fs.course.domain.FsCourseSop;
|
|
@@ -53,6 +55,8 @@ import com.fs.sop.service.ISopUserLogsInfoService;
|
|
|
import com.fs.sop.service.ISopUserLogsService;
|
|
|
import com.fs.store.domain.FsUser;
|
|
|
import com.fs.store.mapper.FsUserMapper;
|
|
|
+import com.fs.system.domain.SysConfig;
|
|
|
+import com.fs.system.service.ISysConfigService;
|
|
|
import com.fs.voice.utils.StringUtil;
|
|
|
import org.apache.rocketmq.spring.core.RocketMQTemplate;
|
|
|
//import org.apache.rocketmq.spring.core.RocketMQTemplate;
|
|
@@ -92,6 +96,10 @@ public class QwExternalContactServiceImpl extends ServiceImpl<QwExternalContactM
|
|
|
@Autowired
|
|
|
private QwExternalContactMapper qwExternalContactMapper;
|
|
|
@Autowired
|
|
|
+ private IQwExternalContactService qwExternalContactService;
|
|
|
+ @Autowired
|
|
|
+ private ISysConfigService sysConfigService;
|
|
|
+ @Autowired
|
|
|
private QwExternalContactBlackLogMapper qwExternalContactBlackLogMapper;
|
|
|
@Autowired
|
|
|
private IQwExternalContactBlackLogService qwExternalContactBlackLogService;
|
|
@@ -1199,10 +1207,25 @@ public class QwExternalContactServiceImpl extends ServiceImpl<QwExternalContactM
|
|
|
boolean isSend = true;
|
|
|
boolean isWay = false;
|
|
|
QwContactWay wayId = null;
|
|
|
+ SysConfig sysConfig = sysConfigService.selectConfigByConfigKey("qw.config");
|
|
|
+ QwConfig qwConfig = JSON.parseObject(sysConfig.getConfigValue(), QwConfig.class);
|
|
|
//先入客户
|
|
|
QwExternalContact qwExternalContact = qwExternalContactMapper.selectQwExternalByExternalIdAndCompanyIdToIdAndFs(externalUserID, userID, corpId);
|
|
|
boolean isNewQwExternalContact = qwExternalContact == null ? true : false;
|
|
|
qwExternalContact = qwExternalContact == null ? new QwExternalContact() : qwExternalContact;
|
|
|
+
|
|
|
+ //是否开启重粉判断
|
|
|
+ if(qwConfig.isRepeat()){
|
|
|
+ List<QwExternalContact> externalContactList = qwExternalContactMapper.selectList(new QueryWrapper<QwExternalContact>().eq("external_user_id", externalUserID).eq("corp_id", corpId));
|
|
|
+ if(!externalContactList.isEmpty()){
|
|
|
+ externalContactList.forEach(e -> {
|
|
|
+ e.setRepeat(1);
|
|
|
+ });
|
|
|
+ qwExternalContactService.updateBatchById(externalContactList);
|
|
|
+ qwExternalContact.setRepeat(1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
qwExternalContact.setUserId(userID); // 设置属于用户ID
|
|
|
qwExternalContact.setExternalUserId(externalUserID); // 设置外部联系人ID
|
|
|
qwExternalContact.setCorpId(corpId);
|
|
@@ -2224,10 +2247,20 @@ public class QwExternalContactServiceImpl extends ServiceImpl<QwExternalContactM
|
|
|
// 定义日期和时间格式化器
|
|
|
DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("HH:mm");
|
|
|
+ SysConfig sysConfig = sysConfigService.selectConfigByConfigKey("qw.config");
|
|
|
+ List<SopUserLogsInfo> sopUserLogsInfos = sopUserLogsInfoMapper.repeatProject(PubFun.listToNewList(qwSopRuleTimeVOS, QwSopRuleTimeVO::getProject), externalUserID);
|
|
|
+ Map<Integer, List<String>> collect = sopUserLogsInfos.stream().collect(Collectors.groupingBy(SopUserLogsInfo::getProject, Collectors.mapping(SopUserLogsInfo::getSopId, Collectors.toList())));
|
|
|
|
|
|
// sop任务
|
|
|
qwSopRuleTimeVOS.forEach(ruleTimeVO -> {
|
|
|
-
|
|
|
+ if(sysConfig != null){
|
|
|
+ QwConfig qwConfig = JSON.parseObject(sysConfig.getConfigValue(), QwConfig.class);
|
|
|
+ if(qwConfig.isProject()){
|
|
|
+ List<String> sopIdList = collect.get(ruleTimeVO.getProject());
|
|
|
+ if(sopIdList.isEmpty()) return;
|
|
|
+ if(sopIdList.contains(ruleTimeVO.getId())) return;
|
|
|
+ }
|
|
|
+ }
|
|
|
// 将排除的字符串转成列表
|
|
|
List<String> excludedTagsList = new ArrayList<>();
|
|
|
if (ruleTimeVO.getExcludeTags() != null && !ruleTimeVO.getExcludeTags().isEmpty()) {
|