Commit 8c998050 by 徐康

当外卖订单的预约时间不在门店的外卖时间内时,不允许下单

parent 52ae5483
...@@ -183,10 +183,18 @@ public class CheckOrder { ...@@ -183,10 +183,18 @@ public class CheckOrder {
} }
// TODO: 2020/6/16 门店校验处理 // TODO: 2020/6/16 门店校验处理
String takeMealFlag = createOrderVo.getTakeMealFlag(); String takeMealFlag = createOrderVo.getTakeMealFlag();
//立即送达
if("0".equals(takeMealFlag)) {
//未营业无预约时间无法下单 //未营业无预约时间无法下单
if (!StoreConstant.BUSINESS.equals(storeResponseDto.getState()) && StringUtils.isBlank(takeMealFlag) && "0".equals(takeMealFlag)) { if (!StoreConstant.BUSINESS.equals(storeResponseDto.getState())) {
throw new ServiceException(ResponseResult.STORE_ITEM_CHECK_CLOSE); throw new ServiceException(ResponseResult.STORE_ITEM_CHECK_CLOSE);
} }
// 外卖单选择立即送达的话,下单时间必须在店铺外卖时间内
if(createOrderVo.getOrderType().compareTo(CreateOrderType.TAKE_OUT.getCode()) == 0) {
checkTakeOutTime(storeResponseDto, new Date(), new Date(), true);
}
}
String takeMealTimes = createOrderVo.getTakeMealTime(); String takeMealTimes = createOrderVo.getTakeMealTime();
//有预约时间 //有预约时间
...@@ -298,6 +306,18 @@ public class CheckOrder { ...@@ -298,6 +306,18 @@ public class CheckOrder {
} }
if (CreateOrderType.TAKE_OUT.getCode().equals(createOrderVo.getOrderType())) { if (CreateOrderType.TAKE_OUT.getCode().equals(createOrderVo.getOrderType())) {
checkTakeOutTime(storeResponseDto, date, takeMealDateTime, expectTimeInTodayBusinessTime);
}
}
/**
* 检验订单是否在外卖时间内
* @param storeResponseDto 店铺信息
* @param now 当前时间
* @param takeMealDateTime 预约单送达时间/即时单下单时间
* @param expectTimeInTodayBusinessTime 是否在当日营业时间内
*/
private void checkTakeOutTime(StoreResponse.BizVO storeResponseDto, Date now, Date takeMealDateTime, boolean expectTimeInTodayBusinessTime) {
String deliveryStr = storeResponseDto.getDeliveryHoursDay().replace("-", ",") String deliveryStr = storeResponseDto.getDeliveryHoursDay().replace("-", ",")
.replace("_", ","); .replace("_", ",");
String[] deliverys = deliveryStr.split(","); String[] deliverys = deliveryStr.split(",");
...@@ -306,11 +326,11 @@ public class CheckOrder { ...@@ -306,11 +326,11 @@ public class CheckOrder {
if (deliverys.length == 2) { if (deliverys.length == 2) {
SimpleDateFormat hhmmss = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat hhmmss = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat yyyyMMdd = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat yyyyMMdd = new SimpleDateFormat("yyyy-MM-dd");
String startDateTimeStr = yyyyMMdd.format(date) + " " + deliverys[0] + ":00"; String startDateTimeStr = yyyyMMdd.format(now) + " " + deliverys[0] + ":00";
String endDateTimeStr = yyyyMMdd.format(date) + " " + deliverys[1] + ":00"; String endDateTimeStr = yyyyMMdd.format(now) + " " + deliverys[1] + ":00";
try { try {
deliveryEndDate = hhmmss.parse(endDateTimeStr);
deliveryStartDate = hhmmss.parse(startDateTimeStr); deliveryStartDate = hhmmss.parse(startDateTimeStr);
deliveryEndDate = hhmmss.parse(endDateTimeStr);
} catch (ParseException e) { } catch (ParseException e) {
LogUtil.error("getStoreDeliveryInfo_error", endDateTimeStr, e.getMessage()); LogUtil.error("getStoreDeliveryInfo_error", endDateTimeStr, e.getMessage());
} }
...@@ -329,7 +349,6 @@ public class CheckOrder { ...@@ -329,7 +349,6 @@ public class CheckOrder {
throw new ServiceException(ResponseResult.ORDER_CREATE_TIME_NOT_DELIVERY); throw new ServiceException(ResponseResult.ORDER_CREATE_TIME_NOT_DELIVERY);
} }
} }
}
public Date getOrderExpectTime(String takeMealFlag,String takeMealTimes,String expectTime, public Date getOrderExpectTime(String takeMealFlag,String takeMealTimes,String expectTime,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment