From 0cd9d911b8e8634ec04cb82ea07696bb09260b03 Mon Sep 17 00:00:00 2001 From: zhanghua <314079846@qq.com> Date: 星期二, 26 十二月 2023 13:48:06 +0800 Subject: [PATCH] Merge branch 'master' of http://42.193.1.25:9521/r/sccg_server --- ycl-platform/src/main/java/com/ycl/timer/SendDingMsg.java | 83 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 83 insertions(+), 0 deletions(-) diff --git a/ycl-platform/src/main/java/com/ycl/timer/SendDingMsg.java b/ycl-platform/src/main/java/com/ycl/timer/SendDingMsg.java new file mode 100644 index 0000000..ede2249 --- /dev/null +++ b/ycl-platform/src/main/java/com/ycl/timer/SendDingMsg.java @@ -0,0 +1,83 @@ +package com.ycl.timer; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.ycl.common.dingding.DingCommon; +import com.ycl.entity.message.DingMessage; +import com.ycl.mapper.message.DingMessageMapper; +import com.ycl.service.message.IDingMessageService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.ApplicationRunner; +import org.springframework.context.ApplicationListener; +import org.springframework.context.event.ContextRefreshedEvent; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.util.Date; +import java.util.List; + +@Slf4j +@Component +public class SendDingMsg implements ApplicationListener<ContextRefreshedEvent> { + @Autowired + private DingMessageMapper dingMessageMapper; + @Autowired + private DingCommon dingCommon; + @Autowired + private IDingMessageService dingMessageService; + @Value("${spring.profiles.active}") + private String env; + + public final static Short STATE_READY = 0; + public final static Short STATE_SUCCESS = 1; + public final static Short STATE_FAILURE = 2; + public final static Short SCAN_READY = 0; + public final static Short SCAN_FINISH = 1; + + @Scheduled(cron = "0 0/2 * * * ?") + public void runAction() { + if ("online".equals(env)) { + QueryWrapper<DingMessage> wrapper = new QueryWrapper<>(); + wrapper.eq("state", STATE_READY); + wrapper.eq("if_scan", SCAN_READY); + List<DingMessage> dingMessages = dingMessageMapper.selectList(wrapper); + if (CollectionUtils.isNotEmpty(dingMessages)) { + int size = dingMessages.size(); + log.info("鏈夊緟鍙戦�佹秷鎭瘂}鏉�", size); + for (DingMessage dingMessage : dingMessages) { + String baseCaseCode = dingMessage.getBaseCaseCode(); + Long accountId = dingMessage.getAccountId(); + Long messageId = dingMessage.getId(); + String text = "閬傛槍浜戞墽娉曪細鏈夊緟澶勭悊鐨勪换鍔n" + + "路鎮ㄦ湁1鏉″緟澶勭悊浜嬩欢銆備簨浠剁紪鍙�:\n" + + baseCaseCode; + String title = "鎮ㄦ湁涓�鏉″伐浣滈�氱煡"; + try { + dingMessage.setIfScan(SCAN_FINISH); + dingMessage.setSendTime(new Date()); + dingCommon.sendDingMsgStr(accountId + "", text); + log.info("鍙戦�佷竴鏉″伐浣滈�氱煡锛屾秷鎭痠d{}", messageId); + dingMessage.setState(STATE_SUCCESS); + } catch (Exception e) { + log.error("鍙戦�侀拤閽夋秷鎭嚭鐜板紓甯�,娑堟伅id{}", messageId, e); + dingMessage.setState(STATE_FAILURE); + size--; + } + } + dingMessageService.updateBatchById(dingMessages); + log.info("鍙戦�佹垚鍔焮}鏉★紝澶辫触{}鏉�", size, dingMessages.size() - size); + } + } + } + + + @Override + public void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) { + if (contextRefreshedEvent.getApplicationContext().getParent() == null) { +// runAction(); + } + } +} -- Gitblit v1.8.0