'use strict'; const moment = require('moment'); const request = require('superagent'); module.exports = function (app, opts) { const timorHoliday = app.fs.scheduleInit( { interval: '54 42 4 */7 * * *', immediate: true, // proRun: true, }, async () => { const { timorApiUrl } = opts const { models } = app.fs.dc const { pushByEmail } = app.fs.utils const existCount = await models.Holiday.count() let begainDay = existCount ? moment() : moment('2022-01-01') let endDay = moment().add(3, 'months').endOf('month') let checkDay = begainDay.clone() // while (checkDay.isSameOrBefore(endDay)) { // try { // let start = (new Date()).getTime(); // const checkDayStr = checkDay.format('YYYY-MM-DD') // let holidayRes = await request.get( // timorApiUrl + `holiday/info/${checkDayStr}`, // ) // let holidayData = holidayRes.body || {} // if (holidayData.code == 0) { // let holidayType = holidayData.type.type // let dayType = '' // if ( // holidayType == 2 // && holidayData.holiday // && holidayData.holiday.wage == 3 // ) { // // 正经节假日 3倍工资那种 // // festivals // dayType = 'festivals' // } else if ( // holidayType == 1 // || ( // holidayType == 2 // && holidayData.holiday // && holidayData.holiday.wage < 3 // ) // ) { // // 普假 休息日非节假日 // dayType = 'dayoff' // } else if (holidayType == 0 || holidayType == 3) { // // 工作日或补班 // dayType = 'workday' // } // const dbRes = await models.Holiday.findOne({ // where: { // day: checkDayStr // } // }) // if (dbRes) { // await models.Holiday.update({ // holiday: holidayData, // type: dayType // }, { // where: { // day: checkDayStr // } // }) // } else { // await models.Holiday.create({ // day: checkDayStr, // holiday: holidayData, // type: dayType // }) // } // } // checkDay = checkDay.add(1, 'day') // await new Promise(resolve => setTimeout(() => resolve(), 3000)); // } catch (error) { // console.error(error); // } // } let existLastDayRes = await models.Holiday.findOne({ order: [['day', 'DESC']] }) console.log(moment(existLastDayRes.day).diff(moment(), 'day')); if (moment(existLastDayRes.day).diff(moment(), 'day') < 32 || 1) { console.log(1); await pushByEmail({ email:[] }) } } ) return { timorHoliday } }