package cc.xiaokuihua.wechat.handler; import cc.xiaokuihua.entity.msg.wechat.entity.MsgTimedRemind; import cc.xiaokuihua.entity.msg.wechat.mapper.MsgTimedRemindMapper; import cc.xiaokuihua.wechat.feign.WeChatFerryFeign; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 小程序定时任务 * * @author ssk * @version 1.0 * @date 2025/1/14 11:23 */ @Slf4j @Component @RequiredArgsConstructor public class MiniProgramHandler { private final MsgTimedRemindMapper msgTimedRemindMapper; private final WeChatFerryFeign weChatFerryFeign; /** * 每分钟获取推送消息, 并推送 */ @Scheduled(cron = "0 * * * * *") public void getTimedRemind() { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); String date = sdf.format(new Date()); log.info("开始获取定时推送消息: {}", date); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.like(MsgTimedRemind::getRemindTime, date).orderByAsc(MsgTimedRemind::getCreatedTime); List msgTimedReminds = msgTimedRemindMapper.selectList(wrapper); for (MsgTimedRemind msgTimedRemind : msgTimedReminds) { Map map = new HashMap<>(); map.put("msgText", msgTimedRemind.getRemindContent()); map.put("recipient", msgTimedRemind.getReceiveUser()); weChatFerryFeign.sendTextMsg(map); } } }