This commit is contained in:
@jyuhsin
2025-08-27 17:21:42 +08:00
parent 3171c30d43
commit 3dcf833e7a
34 changed files with 1745 additions and 124 deletions
@@ -0,0 +1,54 @@
package com.budwk.app.task.job.holiday;
import cn.hutool.http.HttpUtil;
import com.budwk.app.sys.models.SysHoliday;
import org.nutz.dao.Dao;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.json.Json;
import org.nutz.lang.Lang;
import org.nutz.lang.util.NutMap;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import java.util.ArrayList;
import java.util.List;
/**
* @Author: JyuHsin
* @Date: 2024/6/6 15:16
* @Version: v1.0.0
* @Description: 获取所有节假日,每年执行一次
**/
@IocBean
public class HolidayJob implements Job {
private static final String URL = "https://timor.tech/api/holiday/year?type=Y";
@Inject
private Dao dao;
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
NutMap resMap = Json.fromJson(NutMap.class, HttpUtil.get(URL));
if(resMap.getInt("code") == 0) {
NutMap holidayMap = resMap.getAs("type", NutMap.class);
List<SysHoliday> result = new ArrayList<>();
holidayMap.keySet().forEach(k -> {
NutMap day = (NutMap) holidayMap.get(k);
if(day.getInt("type") == 2) {
SysHoliday h = new SysHoliday();
h.setDay(k);
h.setName(day.getString("name"));
h.setWeek(day.getString("week"));
result.add(h);
}
});
if(Lang.isNotEmpty(result)) {
dao.insert(result);
}
}
}
}