2 Commits e0c1d43861 ... db5eb60aae

Author SHA1 Message Date
  caoliqin db5eb60aae Merge branch 'master' of http://1.14.104.71:10880/root/ylrz_his_scrm_java 1 week ago
  caoliqin 155d196d30 feat:渠道活码回调添加标签和备注 1 week ago

+ 1 - 1
fs-service/src/main/java/com/fs/qw/service/impl/QwContactWayServiceImpl.java

@@ -171,7 +171,7 @@ public class QwContactWayServiceImpl implements IQwContactWayService
         QwUpdateContactWayParam qwUpdateContactWayParam = new QwUpdateContactWayParam();
         qwUpdateContactWayParam.setConfig_id(qwContactWay.getConfigId());
         qwUpdateContactWayParam.setUser(users);
-        qwUpdateContactWayParam.setState("way:"+qwContactWay.getCompanyId()+":"+qwContactWay.getId());
+        qwUpdateContactWayParam.setState("way:"+qwContactWay.getCorpId()+":"+qwContactWay.getId());
         qwUpdateContactWayParam.setRemark(qwContactWay.getRemark());
         qwUpdateContactWayParam.setSkip_verify(qwContactWay.getSkipVerify()==1?true:false);
         if (qwContactWay.getIsWelcome()!=null&&qwContactWay.getIsWelcome()==1){

+ 72 - 61
fs-service/src/main/java/com/fs/qw/service/impl/QwExternalContactServiceImpl.java

@@ -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()))) {