发送预约时间检查 - 代码解读
这段代码用于检查发送预约时间是否符合要求。
首先,判断formData中的'sendTimerFlag'字段是否等于'SEND_TIME_FLAG_RESERVATION',如果不等于则不需要进行预约发送,直接跳过检查。
如果'sendTimerFlag'等于'SEND_TIME_FLAG_RESERVATION',则继续进行检查。首先判断'sendPlanTime'字段是否为空或者空字符串,如果是则抛出异常,异常消息为'MESSAGECODE_MCBHS010_053'。
接下来判断'sendPlanTime'是否存在,如果存在则将其转换为DateTime对象,并进行进一步的判断。如果转换成功,则判断'sendPlanTime'是否早于当前时间now(),如果是则抛出异常,异常消息为'MESSAGECODE_MCBHS010_054'。
然后,将'sendPlanTime'转换为moment对象,并进行进一步的判断。将当前时间now()转换为moment对象,并将其增加'RESERVATION_MAX_DATE_LENGTH'天,同时设置时间为23:59:59,得到toDate。如果'sendPlanTime'晚于toDate,则抛出异常,异常消息为'MESSAGECODE_MCBHS010_060'。
最后,将当前时间now()转换为moment对象,并将其增加'RESERVATION_MIN_MINUTES_LENGTH'分钟,得到minTime。如果'sendPlanTime'早于等于minTime,则抛出异常,异常消息为'MESSAGECODE_MCBHS010_061'。
总结来说,这段代码用于检查发送预约时间是否符合要求,包括是否为空、是否早于当前时间、是否晚于最大预约日期、是否早于最小预约时间。如果不符合要求,则抛出异常。
// 送信予約期間チェック
if (String(formData.sendTimerFlag) === magiContants.SEND_TIME_FLAG_RESERVATION) {
if (formData.sendPlanTime === null || formData.sendPlanTime === '') {
throw { message: magiContants.MESSAGECODE_MCBHS010_053 }
}
if (formData.sendPlanTime) {
const sendPlanTime = stringToDateTime(formData.sendPlanTime)
if (sendPlanTime !== null) {
if (sendPlanTime < now()) {
throw { message: magiContants.MESSAGECODE_MCBHS010_054 }
}
const targetDate = moment(sendPlanTime)
const toDate = moment(now()).add(magiContants.RESERVATION_MAX_DATE_LENGTH, 'day').set('hour', 23).set('minutes', 59).set('second', 59)
if (targetDate > toDate) {
throw { message: magiContants.MESSAGECODE_MCBHS010_060 }
}
const minTime = moment(now()).add(magiContants.RESERVATION_MIN_MINUTES_LENGTH, 'minutes')
if (targetDate <= minTime) {
throw { message: magiContants.MESSAGECODE_MCBHS010_061 }
}
}
}
}
原文地址: https://www.cveoy.top/t/topic/mYhg 著作权归作者所有。请勿转载和采集!