DaLeTouTask.java 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package com.dataeasy.server.task;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import java.util.Objects;
  5. import org.springframework.beans.BeanUtils;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.scheduling.annotation.Scheduled;
  8. import org.springframework.stereotype.Component;
  9. import org.springframework.transaction.annotation.Transactional;
  10. import com.dataeasy.server.atomic.entity.DataDaLeTou;
  11. import com.dataeasy.server.atomic.service.IDataDaLeTouService;
  12. import com.dataeasy.server.constant.HzApiStatusEnum;
  13. import com.dataeasy.server.constant.ScheduleTaskEnum;
  14. import com.dataeasy.server.feign.dto.hzapi.DaLeTouResponse;
  15. import com.dataeasy.server.feign.dto.hzapi.HzApiRequest;
  16. import lombok.extern.slf4j.Slf4j;
  17. import me.chanjar.weixin.mp.bean.template.WxMpTemplateData;
  18. /**
  19. * @author tyuio
  20. * @version 1.0.0
  21. * @description 大乐透定时任务,执行时间:每周一、三、六,晚上21:30
  22. * @date 2025/3/6 20:19
  23. */
  24. @Slf4j
  25. @Component
  26. public class DaLeTouTask extends AbstractHzApiTask {
  27. @Autowired
  28. private IDataDaLeTouService daLeTouService;
  29. @Scheduled(cron = "30 21 * * 1,3,6")
  30. @Transactional(rollbackFor = Exception.class)
  31. public void exec() {
  32. executeMain();
  33. }
  34. @Override
  35. public ScheduleTaskEnum getTaskEnum() {
  36. return ScheduleTaskEnum.DA_LE_TOU;
  37. }
  38. @Override
  39. public void fetchData() {
  40. // 拉取数据
  41. HzApiRequest request = buildCommonRequest();
  42. DaLeTouResponse daLeTouResponse = hzApiFeign.getDaLeTou(request);
  43. if (Objects.isNull(daLeTouResponse)) {
  44. log.warn("拉取大乐透数据失败,返回结果对象为空");
  45. return;
  46. }
  47. if (!HzApiStatusEnum.SUCCESS.getCode().equals(daLeTouResponse.getCode())) {
  48. log.warn("拉取大乐透数据失败,接口盒子返回错误信息:{}", daLeTouResponse.getMsg());
  49. return;
  50. }
  51. // 数据入库
  52. DataDaLeTou addDaLeTou = new DataDaLeTou();
  53. BeanUtils.copyProperties(daLeTouResponse, addDaLeTou);
  54. daLeTouService.insert(addDaLeTou);
  55. }
  56. @Override
  57. public TemplateMessage getTemplateMessage() {
  58. // 这是模板所需数据
  59. List<WxMpTemplateData> templateDataList = new ArrayList();
  60. templateDataList.add(new WxMpTemplateData("first", "预约成功"));
  61. templateDataList.add(new WxMpTemplateData("keyword1", "测试111"));
  62. templateDataList.add(new WxMpTemplateData("keyword2","测试2222"));
  63. templateDataList.add(new WxMpTemplateData("keyword3","测试333"));
  64. templateDataList.add(new WxMpTemplateData("keyword4","测试4444"));
  65. templateDataList.add(new WxMpTemplateData("remark","测试备注"));
  66. return TemplateMessage.builder()
  67. .url("www.baidu.com")
  68. .templateId(wxMessageProperties.getTemplateId())
  69. .templateDataList(templateDataList)
  70. .build();
  71. }
  72. }