MiniProgramHandler.java 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package cc.xiaokuihua.wechat.handler;
  2. import cc.xiaokuihua.entity.msg.wechat.entity.MsgTimedRemind;
  3. import cc.xiaokuihua.entity.msg.wechat.mapper.MsgTimedRemindMapper;
  4. import cc.xiaokuihua.wechat.feign.WeChatFerryFeign;
  5. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  6. import lombok.RequiredArgsConstructor;
  7. import lombok.extern.slf4j.Slf4j;
  8. import org.springframework.scheduling.annotation.Scheduled;
  9. import org.springframework.stereotype.Component;
  10. import java.text.SimpleDateFormat;
  11. import java.util.Date;
  12. import java.util.HashMap;
  13. import java.util.List;
  14. import java.util.Map;
  15. /**
  16. * 小程序定时任务
  17. *
  18. * @author ssk
  19. * @version 1.0
  20. * @date 2025/1/14 11:23
  21. */
  22. @Slf4j
  23. @Component
  24. @RequiredArgsConstructor
  25. public class MiniProgramHandler {
  26. private final MsgTimedRemindMapper msgTimedRemindMapper;
  27. private final WeChatFerryFeign weChatFerryFeign;
  28. /**
  29. * 每分钟获取推送消息, 并推送
  30. */
  31. @Scheduled(cron = "0 * * * * *")
  32. public void getTimedRemind() {
  33. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
  34. String date = sdf.format(new Date());
  35. log.info("开始获取定时推送消息: {}", date);
  36. LambdaQueryWrapper<MsgTimedRemind> wrapper = new LambdaQueryWrapper<>();
  37. wrapper.like(MsgTimedRemind::getRemindTime, date).orderByAsc(MsgTimedRemind::getCreatedTime);
  38. List<MsgTimedRemind> msgTimedReminds = msgTimedRemindMapper.selectList(wrapper);
  39. for (MsgTimedRemind msgTimedRemind : msgTimedReminds) {
  40. Map<String, Object> map = new HashMap<>();
  41. map.put("msgText", msgTimedRemind.getRemindContent());
  42. map.put("recipient", msgTimedRemind.getReceiveUser());
  43. weChatFerryFeign.sendTextMsg(map);
  44. }
  45. }
  46. }