这段代码用于检查发送预约时间是否符合要求。

首先,判断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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录