package com.dataeasy.server.task; import java.util.ArrayList; import java.util.List; import java.util.Objects; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import com.dataeasy.server.atomic.entity.DataDaLeTou; import com.dataeasy.server.atomic.service.IDataDaLeTouService; import com.dataeasy.server.constant.HzApiStatusEnum; import com.dataeasy.server.constant.ScheduleTaskEnum; import com.dataeasy.server.feign.dto.hzapi.DaLeTouResponse; import com.dataeasy.server.feign.dto.hzapi.HzApiRequest; import lombok.extern.slf4j.Slf4j; import me.chanjar.weixin.mp.bean.template.WxMpTemplateData; /** * @author tyuio * @version 1.0.0 * @description 大乐透定时任务,执行时间:每周一、三、六,晚上21:30 * @date 2025/3/6 20:19 */ @Slf4j @Component public class DaLeTouTask extends AbstractHzApiTask { @Autowired private IDataDaLeTouService daLeTouService; @Scheduled(cron = "30 21 * * 1,3,6") @Transactional(rollbackFor = Exception.class) public void exec() { executeMain(); } @Override public ScheduleTaskEnum getTaskEnum() { return ScheduleTaskEnum.DA_LE_TOU; } @Override public void fetchData() { // 拉取数据 HzApiRequest request = buildCommonRequest(); DaLeTouResponse daLeTouResponse = hzApiFeign.getDaLeTou(request); if (Objects.isNull(daLeTouResponse)) { log.warn("拉取大乐透数据失败,返回结果对象为空"); return; } if (!HzApiStatusEnum.SUCCESS.getCode().equals(daLeTouResponse.getCode())) { log.warn("拉取大乐透数据失败,接口盒子返回错误信息:{}", daLeTouResponse.getMsg()); return; } // 数据入库 DataDaLeTou addDaLeTou = new DataDaLeTou(); BeanUtils.copyProperties(daLeTouResponse, addDaLeTou); daLeTouService.insert(addDaLeTou); } @Override public TemplateMessage getTemplateMessage() { // 这是模板所需数据 List templateDataList = new ArrayList(); templateDataList.add(new WxMpTemplateData("first", "预约成功")); templateDataList.add(new WxMpTemplateData("keyword1", "测试111")); templateDataList.add(new WxMpTemplateData("keyword2","测试2222")); templateDataList.add(new WxMpTemplateData("keyword3","测试333")); templateDataList.add(new WxMpTemplateData("keyword4","测试4444")); templateDataList.add(new WxMpTemplateData("remark","测试备注")); return TemplateMessage.builder() .url("www.baidu.com") .templateId(wxMessageProperties.getTemplateId()) .templateDataList(templateDataList) .build(); } }