Commit f4ea9d48 by 吕明尚

订单下单查询预约时间增加查询情况

parent cbd67306
......@@ -1462,6 +1462,10 @@ public class SOrderServiceImpl extends ServiceImpl<SOrderMapper, SOrder> impleme
queryWrapper.eq(SOrder::getIsDelete,YesNoEnum.no.getIndex());
queryWrapper.eq(SOrder::getStoreId, request.getStoreId());
queryWrapper.eq(SOrder::getRoomId, request.getRoomId());
LambdaQueryWrapper<SOrder> sOrderLambdaQueryWrapper = new LambdaQueryWrapper<>();
LambdaQueryWrapper<SOrder> orderLambdaQueryWrapper = new LambdaQueryWrapper<>();
BeanUtils.copyProperties(queryWrapper, sOrderLambdaQueryWrapper);
BeanUtils.copyProperties(queryWrapper, orderLambdaQueryWrapper);
// queryWrapper.ne(SOrder::getConsumerId, user.getId());
switch (OrderTypeEnum.getEnumByCode(request.getOrderType())) {
case RESERVER://预定
......@@ -1473,6 +1477,23 @@ public class SOrderServiceImpl extends ServiceImpl<SOrderMapper, SOrder> impleme
"OR IFNULL(end_date,pre_end_date) BETWEEN '"
+ DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, DateUtils.addMinutes(request.getPreStartDate(), -Constants.ROOM_LOCK_DELAY_MINUTE))
+ "' AND '" + DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, request.getPreEndDate()) + "' )");
sOrderLambdaQueryWrapper.apply("(IFNULL(start_date,pre_start_date) <= '"
+ DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, request.getPreStartDate())
+ "' AND '" + DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, request.getPreStartDate()) + "' " +
"<= IFNULL(end_date,pre_end_date)" +
"OR IFNULL(start_date,pre_start_date) <= '"
+ DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, request.getPreEndDate())
+ "' AND '" + DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, request.getPreEndDate()) +
"' " + "<= IFNULL(end_date,pre_end_date))");
orderLambdaQueryWrapper.apply("(IFNULL(start_date,pre_start_date) >= '"
+ DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, request.getPreStartDate())
+ "' AND IFNULL(start_date,pre_start_date) <= '" + DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, request.getPreEndDate()) + "' " +
"OR IFNULL(end_date,pre_end_date) >= '"
+ DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, request.getPreStartDate())
+ "' AND '" + DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, request.getPreEndDate()) +
"' " + ">= IFNULL(end_date,pre_end_date))");
break;
case RENEW://续费
if (StringUtils.isBlank(request.getPreOrderNo())) {
......@@ -1497,6 +1518,9 @@ public class SOrderServiceImpl extends ServiceImpl<SOrderMapper, SOrder> impleme
throw new BaseException("订单类型异常!");
}
List<SOrder> orderList = list(queryWrapper);
List<SOrder> sOrderList = list(sOrderLambdaQueryWrapper);
List<SOrder> orders = list(orderLambdaQueryWrapper);
if (CollectionUtils.isNotEmpty(orderList)) {
Optional<SOrder> lastOrderOp = orderList.stream().max(Comparator.comparing(SOrder::getPreEndDate));
SOrder lastOrder = lastOrderOp.orElse(null);
......@@ -1525,6 +1549,9 @@ public class SOrderServiceImpl extends ServiceImpl<SOrderMapper, SOrder> impleme
}
throw new BaseException("下单时间已被预定!");
}
if (CollectionUtils.isNotEmpty(sOrderList) || CollectionUtils.isNotEmpty(orders)) {
throw new BaseException("下单时间已被预定!");
}
}
private void checkOrderRoomStat(SRoom room) {
......
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