From 6c8b828ca0db32cfe10f4946d22f966d756941e6 Mon Sep 17 00:00:00 2001 From: Zhujx Date: Fri, 25 Jul 2025 14:29:33 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E8=8A=AC=E7=8E=A9=E5=B2=9B=E6=BC=94?= =?UTF-8?q?=E5=94=B1=E4=BC=9A=E9=A2=84=E5=94=AE=E6=8F=90=E9=86=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/FwdPerformProjectInfoMapper.java | 5 ++ .../fwd/schedule/FwdImportantMsgJob.java | 56 +++++++++++++++++++ .../fwd/FwdPerformProjectInfoMapper.xml | 9 ++- 3 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 script/src/main/java/com/xiang/xservice/fwd/schedule/FwdImportantMsgJob.java diff --git a/script/src/main/java/com/xiang/xservice/fwd/mapper/FwdPerformProjectInfoMapper.java b/script/src/main/java/com/xiang/xservice/fwd/mapper/FwdPerformProjectInfoMapper.java index 12215d7..c794030 100644 --- a/script/src/main/java/com/xiang/xservice/fwd/mapper/FwdPerformProjectInfoMapper.java +++ b/script/src/main/java/com/xiang/xservice/fwd/mapper/FwdPerformProjectInfoMapper.java @@ -4,6 +4,9 @@ import com.xiang.xservice.fwd.entity.pojo.FPerformProjectInfo; import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Repository; +import java.time.LocalDateTime; +import java.util.List; + /** * @Author: xiang * @Date: 2025-07-24 17:22 @@ -16,4 +19,6 @@ public interface FwdPerformProjectInfoMapper { int insert(FPerformProjectInfo fPerformProjectInfo); int update(FPerformProjectInfo fPerformProjectInfo); + + List getPreSaleTodayData(LocalDateTime startTime, LocalDateTime endTime); } diff --git a/script/src/main/java/com/xiang/xservice/fwd/schedule/FwdImportantMsgJob.java b/script/src/main/java/com/xiang/xservice/fwd/schedule/FwdImportantMsgJob.java new file mode 100644 index 0000000..f514c7a --- /dev/null +++ b/script/src/main/java/com/xiang/xservice/fwd/schedule/FwdImportantMsgJob.java @@ -0,0 +1,56 @@ +package com.xiang.xservice.fwd.schedule; + +import com.alibaba.fastjson2.JSONObject; +import com.xiang.xservice.basic.utils.DateUtils; +import com.xiang.xservice.basic.xservice.dingTalk.service.DingTalkService; +import com.xiang.xservice.fwd.entity.pojo.FPerformProjectInfo; +import com.xiang.xservice.fwd.mapper.FwdPerformProjectInfoMapper; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.time.LocalDate; +import java.util.List; + +/** + * @Author: xiang + * @Date: 2025-07-25 14:13 + */ +@Component +@RequiredArgsConstructor +@Slf4j +@RestController +public class FwdImportantMsgJob { + + private final FwdPerformProjectInfoMapper performProjectInfoMapper; + private final DingTalkService dingTalkService; + + @Value("${DingTalk.chatId}") + private String chatId; + + @Scheduled(cron = "0 0 8 1/1 * ?") + @PostMapping("/preSaleReminderJob") + public void preSaleReminderJob() throws Exception { + log.info("【芬玩岛】演唱会预售定时任务开始!time:{}", System.currentTimeMillis()); + + // 查询所有即将今天预售的演唱会信息 + LocalDate now = LocalDate.now(); + List saleTodayData = performProjectInfoMapper.getPreSaleTodayData(now.atTime(0, 0, 0), now.atTime(23, 59, 59)); + if (CollectionUtils.isEmpty(saleTodayData)) { + log.info("【芬玩岛】 今天:{}暂无预售的演唱会门票信息.", now); + return; + } + log.info("【芬玩岛】 即将:{}预售的演唱会门票信息:{}", now, JSONObject.toJSONString(saleTodayData)); + StringBuilder msg = new StringBuilder("今日" + now + "演唱会门票预售信息:\n"); + for (FPerformProjectInfo data : saleTodayData) { + msg.append("演唱会名称:").append(data.getProjectName()).append("预售时间:").append(DateUtils.getDateTimeStr(data.getPreSaleTime())).append("\n"); + } + dingTalkService.sendChatMessage(chatId, msg.toString()); + log.info("【芬玩岛】演唱会预售定时任务结束!time:{}", System.currentTimeMillis()); + } +} diff --git a/script/src/main/resources/mapper/fwd/FwdPerformProjectInfoMapper.xml b/script/src/main/resources/mapper/fwd/FwdPerformProjectInfoMapper.xml index 066a6f6..3bbbb70 100644 --- a/script/src/main/resources/mapper/fwd/FwdPerformProjectInfoMapper.xml +++ b/script/src/main/resources/mapper/fwd/FwdPerformProjectInfoMapper.xml @@ -23,6 +23,7 @@ + @@ -43,7 +44,8 @@ project_price, project_start_date, project_end_date, - sub_classify_name + sub_classify_name, + pre_sale_time @@ -198,6 +200,11 @@ from fwd_perform_project_info where project_id = #{projectId} + \ No newline at end of file