|
|
@@ -2698,23 +2698,55 @@ public class QwExternalContactServiceImpl extends ServiceImpl<QwExternalContactM
|
|
|
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();
|
|
|
-
|
|
|
+ List<QwAutoTagsRulesTags> qwAutoTagsRulesTagsList = JSON.parseArray(qwAutoTags.getRulesTags(), QwAutoTagsRulesTags.class);
|
|
|
+ boolean isMatch = false;
|
|
|
+ //存分时段里符合条件的标签
|
|
|
+ Set<String> combinedTagsItem = new HashSet<>();
|
|
|
+ LocalDate dateNow = LocalDate.now();
|
|
|
+ // 获取今天的星期数
|
|
|
+ DayOfWeek today = dateNow.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();
|
|
|
+ Integer dayOrWeek = rulesTags.getDayOrWeek();
|
|
|
+ boolean isWeek = dayOrWeek == null || dayOrWeek == 0;
|
|
|
+ log.info("自动打标签规则:{}", JSON.toJSONString(rulesTags));
|
|
|
+// // 检查今天是否在 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 (isWeek) {
|
|
|
+ log.info("进入按星期打标签");
|
|
|
// 检查今天是否在 week 集合中
|
|
|
boolean isTodayInWeek = week.contains(todayIndex);
|
|
|
// 转换时间字符串为 LocalTime
|
|
|
@@ -2728,21 +2760,53 @@ public class QwExternalContactServiceImpl extends ServiceImpl<QwExternalContactM
|
|
|
combinedTagsSet.addAll(tagsItem);
|
|
|
combinedTagsItem.addAll(tagsItem);
|
|
|
isMatch = true;
|
|
|
- if (rulesTags.getIsDay()!=null&&rulesTags.getIsDay()==1){
|
|
|
+ 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;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if (rulesTags.getDays() != null && rulesTags.getDays().size() == 2) {
|
|
|
+ log.info("进入按日期打标签");
|
|
|
+ LocalDate startDate = rulesTags.getDays().get(0);
|
|
|
+ LocalDate endDate = rulesTags.getDays().get(1);
|
|
|
+ boolean isInRange = (dateNow.isEqual(startDate) || dateNow.isAfter(startDate))
|
|
|
+ && (dateNow.isEqual(endDate) || dateNow.isBefore(endDate));
|
|
|
+ log.info("是否满足日期start:{},end:{},now:{},boolean:{}", startDate, endDate, now, isInRange);
|
|
|
+ // 转换时间字符串为 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);
|
|
|
+ if (isInRange && 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);
|
|
|
+ tagRemark = DayDate.substring(1);
|
|
|
}
|
|
|
//如果备注不为空
|
|
|
- if (rulesTags.getIsDay()!=null&&rulesTags.getIsDay()==1){
|
|
|
+ if (rulesTags.getIsDay() != null && rulesTags.getIsDay() == 1) {
|
|
|
String DayDate = LocalDate.now().format(DateTimeFormatter.ofPattern("yyMMdd"));
|
|
|
- tagRemark=DayDate.substring(1);
|
|
|
+ tagRemark = DayDate.substring(1);
|
|
|
}
|
|
|
//如果备注不为空
|
|
|
- if (!StringUtil.strIsNullOrEmpty(remarks)){
|
|
|
- tagRemark = (tagRemark==null?"":(tagRemark+ "-") ) +remarks;
|
|
|
+ if (!StringUtil.strIsNullOrEmpty(remarks)) {
|
|
|
+ tagRemark = (tagRemark == null ? "" : (tagRemark + "-")) + remarks;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ }
|
|
|
// 如果有匹配的规则,使用 combinedTagsList
|
|
|
if (isMatch) {
|
|
|
// 转换一下分时段-符合 条件的 列表
|