|
@@ -2519,65 +2519,83 @@ public class QwExternalContactServiceImpl extends ServiceImpl<QwExternalContactM
|
|
|
String tagRemark = null;
|
|
|
//根据qwUser 匹配 分时段的标签
|
|
|
QwAutoTags qwAutoTags = qwAutoTagsMapper.selectQwAutoTagsByIdJSON(corpId, qwUser.getId());
|
|
|
- if (qwAutoTags != null) {
|
|
|
+
|
|
|
+ // 渠道活码是否有标签
|
|
|
+ boolean isContactWay = isWay && wayId.getIsTag() == 1;
|
|
|
+ logger.info("渠道活码是否有标签,{}", isContactWay);
|
|
|
+
|
|
|
+ if (qwAutoTags != null || isContactWay) {
|
|
|
+ boolean isMatch = false;
|
|
|
+ //存符合条件的标签
|
|
|
+ Set<String> combinedTagsItem = new HashSet<>();
|
|
|
//标签日志记录
|
|
|
- qwAutoTagsLogs.setAutoTagId(qwAutoTags.getId());
|
|
|
- qwAutoTagsLogs.setType(3L);
|
|
|
- qwAutoTagsLogs.setQwUserid(qwUser.getId());
|
|
|
- qwAutoTagsLogs.setExternalUserId(externalUserID);
|
|
|
- List<QwAutoTagsRulesTags> qwAutoTagsRulesTagsList = JSON.parseArray(qwAutoTags.getRulesTags(), QwAutoTagsRulesTags.class);
|
|
|
- boolean isMatch = false;
|
|
|
- //存分时段里符合条件的标签
|
|
|
- Set<String> combinedTagsItem = new HashSet<>();
|
|
|
- // 获取今天的星期数
|
|
|
- DayOfWeek today = LocalDate.now().getDayOfWeek();
|
|
|
- int todayIndex = today.getValue(); // 1: Monday, 2: Tuesday, ..., 7: Sunday
|
|
|
- // 获取当前时间
|
|
|
- LocalTime now = LocalTime.now();
|
|
|
- // 遍历所有规则
|
|
|
- for (QwAutoTagsRulesTags rulesTags : qwAutoTagsRulesTagsList) {
|
|
|
- List<String> tagsItem = rulesTags.getTags();
|
|
|
- List<Integer> week = rulesTags.getWeek();
|
|
|
- String startTime = rulesTags.getStartTime();
|
|
|
- String endTime = rulesTags.getEndTime();
|
|
|
- String remarks = rulesTags.getRemarks();
|
|
|
-
|
|
|
- // 检查今天是否在 week 集合中
|
|
|
- boolean isTodayInWeek = week.contains(todayIndex);
|
|
|
- // 转换时间字符串为 LocalTime
|
|
|
- LocalTime start = LocalTime.parse(startTime);
|
|
|
- LocalTime end = LocalTime.parse(endTime.equals("24:00") ? "23:59:59" : endTime);
|
|
|
- // 检查当前时间是否在 startTime 和 endTime 之间
|
|
|
- boolean isNowInTimeRange = !now.isBefore(start) && !now.isAfter(end);
|
|
|
- // 如果当前时间和日期匹配规则,将 tagsItem 添加到 combinedTagsSet 中
|
|
|
- if (isTodayInWeek && isNowInTimeRange) {
|
|
|
-
|
|
|
- combinedTagsSet.addAll(tagsItem);
|
|
|
- combinedTagsItem.addAll(tagsItem);
|
|
|
- isMatch = true;
|
|
|
- if (rulesTags.getIsDay()!=null&&rulesTags.getIsDay()==1){
|
|
|
- String DayDate = LocalDate.now().format(DateTimeFormatter.ofPattern("yyMMdd"));
|
|
|
- tagRemark=DayDate.substring(1);
|
|
|
- }
|
|
|
- //如果备注不为空
|
|
|
- if (rulesTags.getIsDay()!=null&&rulesTags.getIsDay()==1){
|
|
|
- String DayDate = LocalDate.now().format(DateTimeFormatter.ofPattern("yyMMdd"));
|
|
|
- tagRemark=DayDate.substring(1);
|
|
|
- }
|
|
|
- //如果备注不为空
|
|
|
- if (!StringUtil.strIsNullOrEmpty(remarks)){
|
|
|
- tagRemark = (tagRemark==null?"":(tagRemark+ "-") ) +remarks;
|
|
|
+ if(qwAutoTags != null) {
|
|
|
+ qwAutoTagsLogs.setAutoTagId(qwAutoTags.getId());
|
|
|
+ qwAutoTagsLogs.setType(3L);
|
|
|
+ qwAutoTagsLogs.setQwUserid(qwUser.getId());
|
|
|
+ qwAutoTagsLogs.setExternalUserId(externalUserID);
|
|
|
+ List<QwAutoTagsRulesTags> qwAutoTagsRulesTagsList = JSON.parseArray(qwAutoTags.getRulesTags(), QwAutoTagsRulesTags.class);
|
|
|
+ // 获取今天的星期数
|
|
|
+ DayOfWeek today = LocalDate.now().getDayOfWeek();
|
|
|
+ int todayIndex = today.getValue(); // 1: Monday, 2: Tuesday, ..., 7: Sunday
|
|
|
+ // 获取当前时间
|
|
|
+ LocalTime now = LocalTime.now();
|
|
|
+ // 遍历所有规则
|
|
|
+ for (QwAutoTagsRulesTags rulesTags : qwAutoTagsRulesTagsList) {
|
|
|
+ List<String> tagsItem = rulesTags.getTags();
|
|
|
+ List<Integer> week = rulesTags.getWeek();
|
|
|
+ String startTime = rulesTags.getStartTime();
|
|
|
+ String endTime = rulesTags.getEndTime();
|
|
|
+ String remarks = rulesTags.getRemarks();
|
|
|
+
|
|
|
+ // 检查今天是否在 week 集合中
|
|
|
+ boolean isTodayInWeek = week.contains(todayIndex);
|
|
|
+ // 转换时间字符串为 LocalTime
|
|
|
+ LocalTime start = LocalTime.parse(startTime);
|
|
|
+ LocalTime end = LocalTime.parse(endTime.equals("24:00") ? "23:59:59" : endTime);
|
|
|
+ // 检查当前时间是否在 startTime 和 endTime 之间
|
|
|
+ boolean isNowInTimeRange = !now.isBefore(start) && !now.isAfter(end);
|
|
|
+ // 如果当前时间和日期匹配规则,将 tagsItem 添加到 combinedTagsSet 中
|
|
|
+ if (isTodayInWeek && isNowInTimeRange) {
|
|
|
+
|
|
|
+ combinedTagsSet.addAll(tagsItem);
|
|
|
+ combinedTagsItem.addAll(tagsItem);
|
|
|
+ isMatch = true;
|
|
|
+ if (rulesTags.getIsDay()!=null&&rulesTags.getIsDay()==1){
|
|
|
+ String DayDate = LocalDate.now().format(DateTimeFormatter.ofPattern("yyMMdd"));
|
|
|
+ tagRemark=DayDate.substring(1);
|
|
|
+ }
|
|
|
+ //如果备注不为空
|
|
|
+ if (rulesTags.getIsDay()!=null&&rulesTags.getIsDay()==1){
|
|
|
+ String DayDate = LocalDate.now().format(DateTimeFormatter.ofPattern("yyMMdd"));
|
|
|
+ tagRemark=DayDate.substring(1);
|
|
|
+ }
|
|
|
+ //如果备注不为空
|
|
|
+ if (!StringUtil.strIsNullOrEmpty(remarks)){
|
|
|
+ tagRemark = (tagRemark==null?"":(tagRemark+ "-") ) +remarks;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
+ }
|
|
|
+
|
|
|
// 如果有匹配的规则,使用 combinedTagsList
|
|
|
- if (isMatch) {
|
|
|
+ if (isMatch || isContactWay) {
|
|
|
// 转换一下分时段-符合 条件的 列表
|
|
|
List<String> combinedTags = new ArrayList<>(combinedTagsItem);
|
|
|
qwAutoTagsLogs.setEffectiveRules(JSON.toJSONString(combinedTags));
|
|
|
qwAutoTagsLogs.setAddTime(new Date());
|
|
|
qwAutoTagsLogs.setCompanyId(qwUser.getCompanyId());
|
|
|
qwAutoTagsLogs.setCorpId(qwUser.getCorpId());
|
|
|
+
|
|
|
+ //有标签
|
|
|
+ if (isWay && wayId.getIsTag() == 1) {
|
|
|
+ //渠道活码的标签
|
|
|
+ List<String> wayTags = JSON.parseArray(wayId.getTags(), String.class);
|
|
|
+ //总添加标签
|
|
|
+ combinedTagsSet.addAll(wayTags);
|
|
|
+ logger.info("渠道活码标签,{}===============", wayTags);
|
|
|
+ }
|
|
|
+
|
|
|
//总标签 转换回列表
|
|
|
List<String> combinedTagsList = new ArrayList<>(combinedTagsSet);
|
|
|
// 设置标签
|
|
@@ -2608,7 +2626,7 @@ public class QwExternalContactServiceImpl extends ServiceImpl<QwExternalContactM
|
|
|
// 转换回列表
|
|
|
List<String> combinedTagsList = new ArrayList<>(combinedTagsSet);
|
|
|
|
|
|
- logger.info("不符合分时段条件2--看全部标签是否有符合的:"+combinedTagsList+"|"+externalUserID+"|"+userID+"|"+corpId);
|
|
|
+ logger.info("不符合分时段条件2--看全部标签是否有符合的11111:"+combinedTagsList+"|"+externalUserID+"|"+userID+"|"+corpId);
|
|
|
|
|
|
try {
|
|
|
//检查sop进营期
|
|
@@ -2624,7 +2642,7 @@ public class QwExternalContactServiceImpl extends ServiceImpl<QwExternalContactM
|
|
|
// 转换回列表
|
|
|
List<String> combinedTagsList = new ArrayList<>(combinedTagsSet);
|
|
|
|
|
|
- logger.error("不符合分时段条件2--看全部标签是否有符合的:"+combinedTagsList+"|"+externalUserID+"|"+userID+"|"+corpId);
|
|
|
+ logger.error("不符合分时段条件2--看全部标签是否有符合的22222:"+combinedTagsList+"|"+externalUserID+"|"+userID+"|"+corpId);
|
|
|
|
|
|
try {
|
|
|
checkHaveQwSop(combinedTagsSet, qwUser, corpId,combinedTagsList, userID, externalUserID,
|
|
@@ -2640,7 +2658,7 @@ public class QwExternalContactServiceImpl extends ServiceImpl<QwExternalContactM
|
|
|
|
|
|
//有渠道活码
|
|
|
if (isWay && (StringUtil.strIsNullOrEmpty(followUser.getRemark()) || StringUtils.equals(followUser.getRemark().trim(),externalContact.getName().trim()))) {
|
|
|
-
|
|
|
+ logger.info("已进入有渠道活码的方法===============");
|
|
|
if (wayId.getIsDescription() == 1) {
|
|
|
qwExternalContact.setDescription(wayId.getDescription());
|
|
|
}
|
|
@@ -2661,6 +2679,7 @@ public class QwExternalContactServiceImpl extends ServiceImpl<QwExternalContactM
|
|
|
|
|
|
}
|
|
|
}
|
|
|
+ logger.info("最终的备注:{}", qwExternalContact.getRemark());
|
|
|
if (wayId.getIsDescription() == 1 || wayId.getIsRemark() == 1) {
|
|
|
|
|
|
QwExternalContactRemarkParam param = new QwExternalContactRemarkParam();
|
|
@@ -2681,15 +2700,7 @@ public class QwExternalContactServiceImpl extends ServiceImpl<QwExternalContactM
|
|
|
logger.info("修改备注:{}", remarkResult);
|
|
|
|
|
|
}
|
|
|
- //有标签
|
|
|
- if (wayId.getIsTag() == 1) {
|
|
|
- //渠道活码的标签
|
|
|
- List<String> wayTags = JSON.parseArray(wayId.getTags(), String.class);
|
|
|
- //总添加标签
|
|
|
- combinedTagsSet.addAll(wayTags);
|
|
|
- //用户存标签
|
|
|
- qwExternalContact.setTagIds(wayId.getTags());
|
|
|
- }
|
|
|
+
|
|
|
}
|
|
|
else {
|
|
|
if (!StringUtil.strIsNullOrEmpty(tagRemark) && (StringUtil.strIsNullOrEmpty(followUser.getRemark()) || StringUtils.equals(followUser.getRemark().trim(),externalContact.getName().trim()))) {
|