1. 获取实时的节假日接口;
parent
0e2e9dc1b0
commit
7a95cae827
@ -0,0 +1,42 @@
|
||||
|
||||
package com.ibeetl.admin.core.util.holidays;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public class Day {
|
||||
/**
|
||||
* 时间
|
||||
*/
|
||||
private String date;
|
||||
/**
|
||||
* 是否休息日
|
||||
*/
|
||||
private Boolean isOffDay;
|
||||
/**
|
||||
* 中文名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
public String getDate() {
|
||||
return date;
|
||||
}
|
||||
|
||||
public void setDate(String date) {
|
||||
this.date = date;
|
||||
}
|
||||
|
||||
public Boolean getOffDay() {
|
||||
return isOffDay;
|
||||
}
|
||||
|
||||
public void setOffDay(Boolean offDay) {
|
||||
isOffDay = offDay;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
}
|
@ -0,0 +1,53 @@
|
||||
|
||||
package com.ibeetl.admin.core.util.holidays;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class Holidays {
|
||||
|
||||
private String $id;
|
||||
private String $schema;
|
||||
private List<Day> days;
|
||||
private List<String> papers;
|
||||
private Long year;
|
||||
|
||||
public String get$id() {
|
||||
return $id;
|
||||
}
|
||||
|
||||
public void set$id(String $id) {
|
||||
this.$id = $id;
|
||||
}
|
||||
|
||||
public String get$schema() {
|
||||
return $schema;
|
||||
}
|
||||
|
||||
public void set$schema(String $schema) {
|
||||
this.$schema = $schema;
|
||||
}
|
||||
|
||||
public List<Day> getDays() {
|
||||
return days;
|
||||
}
|
||||
|
||||
public void setDays(List<Day> days) {
|
||||
this.days = days;
|
||||
}
|
||||
|
||||
public List<String> getPapers() {
|
||||
return papers;
|
||||
}
|
||||
|
||||
public void setPapers(List<String> papers) {
|
||||
this.papers = papers;
|
||||
}
|
||||
|
||||
public Long getYear() {
|
||||
return year;
|
||||
}
|
||||
|
||||
public void setYear(Long year) {
|
||||
this.year = year;
|
||||
}
|
||||
}
|
@ -0,0 +1,56 @@
|
||||
package com.ibeetl.admin.core.util.holidays;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.http.HttpUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.apache.logging.log4j.util.Strings;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 节假日查询工具
|
||||
* </p>
|
||||
*
|
||||
* @author mlx
|
||||
* @date 2022/9/11
|
||||
* @modified
|
||||
*/
|
||||
public abstract class HolidaysUtils {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(HolidaysUtils.class);
|
||||
|
||||
private volatile static Map<Integer, Holidays> cache = new ConcurrentHashMap<>();
|
||||
/**
|
||||
* 线路一
|
||||
* https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/{年份}.json
|
||||
*/
|
||||
private static final String githubHolidaysURL1 = "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/%s.json";
|
||||
|
||||
/**
|
||||
* 线路二
|
||||
* https://cdn.jsdelivr.net/gh/NateScarlet/holiday-cn@master/{年份}.json
|
||||
*/
|
||||
private static final String githubHolidaysURL2 = "https://cdn.jsdelivr.net/gh/NateScarlet/holiday-cn@master/%s.json";
|
||||
|
||||
public static Holidays get() {
|
||||
int year = DateUtil.thisYear();
|
||||
if (cache.containsKey(year)) {
|
||||
return cache.get(year);
|
||||
}
|
||||
String URL1 = String.format(githubHolidaysURL2, year);
|
||||
String URL2 = String.format(githubHolidaysURL2, year);
|
||||
String defaultResponseStr = HttpUtil.get(URL1);
|
||||
String secondResponseStr = HttpUtil.get(URL2);
|
||||
String responseStr = ObjectUtil.defaultIfBlank(defaultResponseStr, secondResponseStr);
|
||||
Holidays holidays = JSONObject.parseObject(responseStr, Holidays.class);
|
||||
log.info("正在从{} 获取节假日列表信息。", Strings.isNotBlank(defaultResponseStr) ? URL1 : URL2);
|
||||
cache.put(year, holidays);
|
||||
return holidays;
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue