diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/allocation/api/GlobalMetadataApi.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/allocation/api/GlobalMetadataApi.java index c2b8d133..529dcbb6 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/allocation/api/GlobalMetadataApi.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/allocation/api/GlobalMetadataApi.java @@ -3,6 +3,7 @@ package com.bonus.canteen.core.allocation.api; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.bonus.canteen.core.allocation.canteen.mapper.AllocStallMapper; import com.bonus.common.houqin.constant.LeConstants; import com.bonus.canteen.core.allocation.alloc.model.AllocMetadata; import com.bonus.canteen.core.allocation.alloc.service.AllocMetadataService; @@ -16,6 +17,7 @@ import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Objects; @@ -28,6 +30,9 @@ public class GlobalMetadataApi { @Lazy private AllocMetadataService allocMetadataService; + @Resource + private AllocStallMapper allocStallMapper; + @Resource @Lazy private AllocStallApi allocStallApi; @@ -116,7 +121,12 @@ public class GlobalMetadataApi { } public T getAvailableModel(MetadataModelTypeEnum modelTypeEnum, T t, Long canteenId, Long stallId) { - List metadataList = this.getAvailableList(modelTypeEnum, canteenId, stallId); + List metadataList =new ArrayList<>(); + if("order".equals(modelTypeEnum.getKey())){ + metadataList=allocStallMapper.queryAvailableOrder(modelTypeEnum.getKey(),canteenId,stallId); + }else{ + metadataList = this.getAvailableList(modelTypeEnum, canteenId, stallId); + } return MetadataUtil.transferToPayModel(metadataList, t); } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/allocation/canteen/mapper/AllocStallMapper.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/allocation/canteen/mapper/AllocStallMapper.java index 0cecb06e..f22cf537 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/allocation/canteen/mapper/AllocStallMapper.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/allocation/canteen/mapper/AllocStallMapper.java @@ -1,6 +1,7 @@ package com.bonus.canteen.core.allocation.canteen.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.bonus.canteen.core.allocation.alloc.model.AllocMetadata; import com.bonus.canteen.core.allocation.canteen.model.AllocStall; import com.bonus.canteen.core.allocation.canteen.vo.AllocCanteenStallVO; import org.apache.ibatis.annotations.Mapper; @@ -16,4 +17,6 @@ public interface AllocStallMapper extends BaseMapper { List listAllCanteenStall(@Param("canteenId") Long canteenId); String getStallNameByIdSet(@Param("stallIdSet") Set stallIdSet); + + List queryAvailableOrder(@Param("modelType") String modelType,@Param("canteenId") Long canteenId, @Param("stallId") Long stallId); } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/allocation/canteen/service/impl/AllocStallServiceImpl.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/allocation/canteen/service/impl/AllocStallServiceImpl.java index 8902597e..1a127a54 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/allocation/canteen/service/impl/AllocStallServiceImpl.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/allocation/canteen/service/impl/AllocStallServiceImpl.java @@ -21,6 +21,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.time.LocalDate; import java.util.ArrayList; import java.util.Iterator; @@ -62,6 +63,8 @@ public class AllocStallServiceImpl extends ServiceImpl listReserveDate(AllocMobileCanteenQueryDTO queryDTO) { AllocCanteenOrderDTO allocCanteenOrderDTO = this.allocOrderMetadataApi.queryAvailableOrder(queryDTO.getCanteenId(), queryDTO.getStallId()); + System.out.println("ifReserveSkipHoliday="+allocCanteenOrderDTO.getIfReserveSkipHoliday()+";reserveLimitDayNum="+allocCanteenOrderDTO.getReserveLimitDay()+"" + + ";ifAllowReserveToday="+allocCanteenOrderDTO.getIfAllowReserveToday()); String ifReserveSkipHoliday="1"; if(allocCanteenOrderDTO.getIfReserveSkipHoliday()!=null&&!"".equals(allocCanteenOrderDTO.getIfReserveSkipHoliday())){ ifReserveSkipHoliday= allocCanteenOrderDTO.getIfReserveSkipHoliday(); @@ -85,42 +88,47 @@ public class AllocStallServiceImpl extends ServiceImpl listMatchData(String skipFlagStr, Integer limitNum, String ifAllowReserveToday) { + private List listMatchData(String skipFlagStr, Integer limitNum, String ifAllowReserveToday) { log.info(String.format("查询日期,是否调过节假日:%s,天数:%d", skipFlagStr, limitNum)); List reserveDateList = new ArrayList(); - LocalDate startDate; - if ("1".equals(ifAllowReserveToday)) { - log.info("允许预定当天"); - startDate = LocalDate.now(); - } else { - log.info("不允许预定当天"); - startDate = LocalDate.now().plusDays(1L); - } - - if ("2".equals(skipFlagStr)) { - for(int i = 0; i < limitNum; ++i) { - reserveDateList.add(startDate.plusDays((long)i)); + try{ + LocalDate startDate; + if ("1".equals(ifAllowReserveToday)) { + log.info("允许预定当天"); + limitNum=limitNum+1; + startDate = LocalDate.now(); + } else { + log.info("不允许预定当天"); + startDate = LocalDate.now().plusDays(1L); } - } else { - List holidayList = this.allocHolidayApi.getHolidayList(); - for(int i = 0; i < limitNum; ++i) { - LocalDate reserveDate = startDate.plusDays((long)i); - boolean skipFlag = false; - Iterator var10 = holidayList.iterator(); + if ("2".equals(skipFlagStr)) { + for(int i = 0; i < limitNum; ++i) { + reserveDateList.add(startDate.plusDays((long)i)); + } + } else { + List holidayList = this.allocHolidayApi.getHolidayList(); - while(var10.hasNext()) { - LocalDate holiday = (LocalDate)var10.next(); - if (reserveDate.isEqual(holiday)) { - skipFlag = true; - limitNum = limitNum + 1; + for(int i = 0; i < limitNum; ++i) { + LocalDate reserveDate = startDate.plusDays((long)i); + boolean skipFlag = false; + Iterator var10 = holidayList.iterator(); + + while(var10.hasNext()) { + LocalDate holiday = (LocalDate)var10.next(); + if (reserveDate.isEqual(holiday)) { + skipFlag = true; + limitNum = limitNum + 1; + } + } + + if (!skipFlag) { + reserveDateList.add(reserveDate); } } - - if (!skipFlag) { - reserveDateList.add(reserveDate); - } } + }catch (Exception e){ + e.printStackTrace(); } return reserveDateList; diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/mobile/business/impl/OrderPlaceMobileBusinessImplV3.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/mobile/business/impl/OrderPlaceMobileBusinessImplV3.java index e8b5ed9a..0f7ec255 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/mobile/business/impl/OrderPlaceMobileBusinessImplV3.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/order/mobile/business/impl/OrderPlaceMobileBusinessImplV3.java @@ -235,9 +235,11 @@ public class OrderPlaceMobileBusinessImplV3 implements OrderPlaceMobileBusiness , (Long) LeNumUtil.reduceField(reserveMealDTO.getReserveMealList(), OrderReserveMealDTO::getCanteenId , (Object)null), (Long)LeNumUtil.reduceField(reserveMealDTO.getReserveMealList() , OrderReserveMealDTO::getStallId, (Object)null), headerDTO.getOpenid(), custInfo, reserveMealDTO); + OrderSavePO orderSavePO = this.packageOrderInfo(reserveMealDTO, reserveMealDTO.getReserveMealList(), payDTO); this.reserveMealOrderPlaceCheck(orderSavePO.getOrderInfoList(), orderSavePO.getOrderDetailList() , orderSavePO.getOrderDeliveryList()); + if (LeConstants.COMMON_NO.equals(reserveMealDTO.getIfTrial())) { this.orderPlaceBusiness.orderHandlerLock(orderSavePO.getMacOrderId(), OrderCacheConstants.MOBILE_PAY_INTERVAL); } diff --git a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/alloc/canteen/AllocStallMapper.xml b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/alloc/canteen/AllocStallMapper.xml index e3342a0a..a92d0e60 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/alloc/canteen/AllocStallMapper.xml +++ b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/alloc/canteen/AllocStallMapper.xml @@ -13,5 +13,22 @@ #{stallId} +