@Scheduled(cron = "0 0 0 1 1 *")
public Result<?> importHoliDay() {
Calendar calendar = Calendar.getInstance();
//获取当前的年
int year = calendar.get(Calendar.YEAR);
String dateTime = year + "-01-01";
this.remove(null);
//调用第三方接口获取全年的日期和节假日期
String url = "https://www.mxnzp.com/api/holiday/list/year/" + year;
Map<String, String> paramMap = new HashMap<>(16);
paramMap.put("app_id", "xek9gjnuukihyold");
paramMap.put("app_secret", "bHJtVE0zbTkrWWpabEEra1k0WGNtUT09");
// 带参GET请求
String result = HttpClientUtil.doGet(url, paramMap);
JSONObject jsonObject = JSONObject.parseObject(result);
Integer code = jsonObject.getInteger("code");
if (code.equals(1)) {
List<MdHolidayEntity> list = new ArrayList<>();
JSONArray dateJson = jsonObject.getJSONArray("data");
for (int i = 0; i < dateJson.size(); i++) {
JSONObject jsonObject1 = dateJson.getJSONObject(i);
JSONArray daysJson = jsonObject1.getJSONArray("days");
for (int j = 0; j < daysJson.size(); j++) {
JSONObject jsonObject2 = daysJson.getJSONObject(j);
String date = jsonObject2.getString("date");
Integer weekDay = jsonObject2.getInteger("weekDay");
Integer dateType = jsonObject2.getInteger("type");
String typeDes = jsonObject2.getString("typeDes");
Integer dayOfYear = jsonObject2.getInteger("dayOfYear");
Integer weekOfYear = jsonObject2.getInteger("weekOfYear");
Integer workDayOfMonth = jsonObject2.getInteger("indexWorkDayOfMonth");
MdHolidayEntity jhActHoliday = new MdHolidayEntity();
jhActHoliday.setDayOfYear(dayOfYear);
jhActHoliday.setDateTime(date);
jhActHoliday.setDateType(dateType);
jhActHoliday.setTypeDes(typeDes);
jhActHoliday.setWeekDay(weekDay);
jhActHoliday.setWeekOfYear(weekOfYear);
jhActHoliday.setWorkDayOfMonth(workDayOfMonth);
list.add(jhActHoliday);
}
}
this.saveBatch(list);
}
return Result.OK("导入假期成功!");
}
实体类
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("md_holiday")
public class MdHolidayEntity implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 日期
*/
@TableField("date_time")
private String dateTime;
/**
* 当前周第几天
*/
@TableField("week_day")
private Integer weekDay;
/**
* 0:工作日 1 周末假日 2 节假日
*/
@TableField("date_type")
private Integer dateType;
/**
* 类型描述 比如 国庆,休息日,工作日
*/
@TableField("type_des")
private String typeDes;
/**
* 这一年的第几天
*/
@TableField("day_of_year")
private Integer dayOfYear;
/**
* 这一年的第几周
*/
@TableField("week_of_year")
private Integer weekOfYear;
/**
* 当前月的第几个工作日
*/
@TableField("work_day_of_month")
private Integer workDayOfMonth;
@TableField("sys_code")
private String sysCode;
}