/*同步conf_holiday数据,在common/config/crontab里面设置每年12月31日执行定时同步
- 如果今天日期不是12月31日,创建本年节假日数据
- 如果今天日期是12月31日,创建明年节假日数据
-
/
async syncHolidayAction(){
//获取本年
let startYearDate = moment().year(moment().year()).startOf('year');
let endYearDate = moment().year(moment().year()).endOf('year');
let todayDate = moment().format("MM-DD");
if(todayDate=="12-31"){
startYearDate = moment().year(moment().year()+1).startOf('year');
endYearDate = moment().year(moment().year()+1).endOf('year');
}else{
//查询是否有今年最后一天数据,有就不用调接口,没有就调接口
let holiday_json = await this.model("conf_holiday").where({date:endYearDate.format("YYYY-MM-DD")}).find();
if(!think.isEmpty(holiday_json)) return;
}
const diffDays = endYearDate.diff(startYearDate,"day")+1;
for(var i = 0;i<diffDays;i++){
/接口日期/
let current_api_date = moment(startYearDate).add(i,"days").format('YYYYMMDD');
/数据库日期/
let current_db_date = moment(startYearDate).add(i,"days").format('YYYY-MM-DD');
/调用指定日期接口/
let holiday_res = await axios("http://api.goseek.cn/Tools/holiday?date="+current_api_date);
let holiday_flag = holiday_res.data.data>0?1:0;
/- 搜索数据库里是否有该日期的记录,有就执行更新操作,没有就执行新增操作
-
/
let holiday_json = await this.model("conf_holiday").where({date:current_db_date}).find();
if(think.isEmpty(holiday_json)) {
/没有查询到,执行插入操作*/
await this.model("conf_holiday").add({date: current_db_date, flag: holiday_flag});
}
}
}