|
@@ -67,6 +67,7 @@ import com.fs.system.service.ISysDictTypeService;
|
|
|
import com.fs.voice.utils.StringUtil;
|
|
|
import com.google.gson.Gson;
|
|
|
import com.google.gson.reflect.TypeToken;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.rocketmq.spring.core.RocketMQTemplate;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
@@ -95,7 +96,7 @@ import java.util.stream.Stream;
|
|
|
* @date 2024-06-20
|
|
|
*/
|
|
|
@Service
|
|
|
-
|
|
|
+@Slf4j
|
|
|
public class QwExternalContactServiceImpl extends ServiceImpl<QwExternalContactMapper, QwExternalContact> implements IQwExternalContactService {
|
|
|
|
|
|
private static final String miniappRealLink = "/pages_course/video.html?course=";
|
|
@@ -2567,20 +2568,25 @@ 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);
|
|
|
- // 获取今天的星期数
|
|
|
- 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);
|
|
|
+ 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));
|
|
|
+ if(isWeek){
|
|
|
+ log.info("进入按星期打标签");
|
|
|
// 检查今天是否在 week 集合中
|
|
|
boolean isTodayInWeek = week.contains(todayIndex);
|
|
|
// 转换时间字符串为 LocalTime
|
|
@@ -2591,6 +2597,37 @@ public class QwExternalContactServiceImpl extends ServiceImpl<QwExternalContactM
|
|
|
// 如果当前时间和日期匹配规则,将 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;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }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, dateNow, 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;
|
|
@@ -2609,6 +2646,7 @@ public class QwExternalContactServiceImpl extends ServiceImpl<QwExternalContactM
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// 如果有匹配的规则,使用 combinedTagsList
|