JSK 解决预订单限制日期为0时,不会出现预定时间的问题
This commit is contained in:
parent
9afb8a0949
commit
923f62c64f
|
|
@ -3,6 +3,7 @@ package com.bonus.canteen.core.allocation.api;
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
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.common.houqin.constant.LeConstants;
|
||||||
import com.bonus.canteen.core.allocation.alloc.model.AllocMetadata;
|
import com.bonus.canteen.core.allocation.alloc.model.AllocMetadata;
|
||||||
import com.bonus.canteen.core.allocation.alloc.service.AllocMetadataService;
|
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 org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
@ -28,6 +30,9 @@ public class GlobalMetadataApi {
|
||||||
@Lazy
|
@Lazy
|
||||||
private AllocMetadataService allocMetadataService;
|
private AllocMetadataService allocMetadataService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private AllocStallMapper allocStallMapper;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
@Lazy
|
@Lazy
|
||||||
private AllocStallApi allocStallApi;
|
private AllocStallApi allocStallApi;
|
||||||
|
|
@ -116,7 +121,12 @@ public class GlobalMetadataApi {
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> T getAvailableModel(MetadataModelTypeEnum modelTypeEnum, T t, Long canteenId, Long stallId) {
|
public <T> T getAvailableModel(MetadataModelTypeEnum modelTypeEnum, T t, Long canteenId, Long stallId) {
|
||||||
List<AllocMetadata> metadataList = this.getAvailableList(modelTypeEnum, canteenId, stallId);
|
List<AllocMetadata> 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);
|
return MetadataUtil.transferToPayModel(metadataList, t);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package com.bonus.canteen.core.allocation.canteen.mapper;
|
package com.bonus.canteen.core.allocation.canteen.mapper;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
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.model.AllocStall;
|
||||||
import com.bonus.canteen.core.allocation.canteen.vo.AllocCanteenStallVO;
|
import com.bonus.canteen.core.allocation.canteen.vo.AllocCanteenStallVO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
@ -16,4 +17,6 @@ public interface AllocStallMapper extends BaseMapper<AllocStall> {
|
||||||
List<AllocCanteenStallVO.StallVO> listAllCanteenStall(@Param("canteenId") Long canteenId);
|
List<AllocCanteenStallVO.StallVO> listAllCanteenStall(@Param("canteenId") Long canteenId);
|
||||||
|
|
||||||
String getStallNameByIdSet(@Param("stallIdSet") Set<Long> stallIdSet);
|
String getStallNameByIdSet(@Param("stallIdSet") Set<Long> stallIdSet);
|
||||||
|
|
||||||
|
List<AllocMetadata> queryAvailableOrder(@Param("modelType") String modelType,@Param("canteenId") Long canteenId, @Param("stallId") Long stallId);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
|
@ -62,6 +63,8 @@ public class AllocStallServiceImpl extends ServiceImpl<AllocStallMapper, AllocSt
|
||||||
@Override
|
@Override
|
||||||
public List<LocalDate> listReserveDate(AllocMobileCanteenQueryDTO queryDTO) {
|
public List<LocalDate> listReserveDate(AllocMobileCanteenQueryDTO queryDTO) {
|
||||||
AllocCanteenOrderDTO allocCanteenOrderDTO = this.allocOrderMetadataApi.queryAvailableOrder(queryDTO.getCanteenId(), queryDTO.getStallId());
|
AllocCanteenOrderDTO allocCanteenOrderDTO = this.allocOrderMetadataApi.queryAvailableOrder(queryDTO.getCanteenId(), queryDTO.getStallId());
|
||||||
|
System.out.println("ifReserveSkipHoliday="+allocCanteenOrderDTO.getIfReserveSkipHoliday()+";reserveLimitDayNum="+allocCanteenOrderDTO.getReserveLimitDay()+"" +
|
||||||
|
";ifAllowReserveToday="+allocCanteenOrderDTO.getIfAllowReserveToday());
|
||||||
String ifReserveSkipHoliday="1";
|
String ifReserveSkipHoliday="1";
|
||||||
if(allocCanteenOrderDTO.getIfReserveSkipHoliday()!=null&&!"".equals(allocCanteenOrderDTO.getIfReserveSkipHoliday())){
|
if(allocCanteenOrderDTO.getIfReserveSkipHoliday()!=null&&!"".equals(allocCanteenOrderDTO.getIfReserveSkipHoliday())){
|
||||||
ifReserveSkipHoliday= allocCanteenOrderDTO.getIfReserveSkipHoliday();
|
ifReserveSkipHoliday= allocCanteenOrderDTO.getIfReserveSkipHoliday();
|
||||||
|
|
@ -85,42 +88,47 @@ public class AllocStallServiceImpl extends ServiceImpl<AllocStallMapper, AllocSt
|
||||||
return "yst:" + var10000 + ":alloc-stall:" + stallId;
|
return "yst:" + var10000 + ":alloc-stall:" + stallId;
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<LocalDate> listMatchData(String skipFlagStr, Integer limitNum, String ifAllowReserveToday) {
|
private List<LocalDate> listMatchData(String skipFlagStr, Integer limitNum, String ifAllowReserveToday) {
|
||||||
log.info(String.format("查询日期,是否调过节假日:%s,天数:%d", skipFlagStr, limitNum));
|
log.info(String.format("查询日期,是否调过节假日:%s,天数:%d", skipFlagStr, limitNum));
|
||||||
List<LocalDate> reserveDateList = new ArrayList();
|
List<LocalDate> reserveDateList = new ArrayList();
|
||||||
LocalDate startDate;
|
try{
|
||||||
if ("1".equals(ifAllowReserveToday)) {
|
LocalDate startDate;
|
||||||
log.info("允许预定当天");
|
if ("1".equals(ifAllowReserveToday)) {
|
||||||
startDate = LocalDate.now();
|
log.info("允许预定当天");
|
||||||
} else {
|
limitNum=limitNum+1;
|
||||||
log.info("不允许预定当天");
|
startDate = LocalDate.now();
|
||||||
startDate = LocalDate.now().plusDays(1L);
|
} 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));
|
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
List<LocalDate> holidayList = this.allocHolidayApi.getHolidayList();
|
|
||||||
|
|
||||||
for(int i = 0; i < limitNum; ++i) {
|
if ("2".equals(skipFlagStr)) {
|
||||||
LocalDate reserveDate = startDate.plusDays((long)i);
|
for(int i = 0; i < limitNum; ++i) {
|
||||||
boolean skipFlag = false;
|
reserveDateList.add(startDate.plusDays((long)i));
|
||||||
Iterator var10 = holidayList.iterator();
|
}
|
||||||
|
} else {
|
||||||
|
List<LocalDate> holidayList = this.allocHolidayApi.getHolidayList();
|
||||||
|
|
||||||
while(var10.hasNext()) {
|
for(int i = 0; i < limitNum; ++i) {
|
||||||
LocalDate holiday = (LocalDate)var10.next();
|
LocalDate reserveDate = startDate.plusDays((long)i);
|
||||||
if (reserveDate.isEqual(holiday)) {
|
boolean skipFlag = false;
|
||||||
skipFlag = true;
|
Iterator var10 = holidayList.iterator();
|
||||||
limitNum = limitNum + 1;
|
|
||||||
|
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;
|
return reserveDateList;
|
||||||
|
|
|
||||||
|
|
@ -235,9 +235,11 @@ public class OrderPlaceMobileBusinessImplV3 implements OrderPlaceMobileBusiness
|
||||||
, (Long) LeNumUtil.reduceField(reserveMealDTO.getReserveMealList(), OrderReserveMealDTO::getCanteenId
|
, (Long) LeNumUtil.reduceField(reserveMealDTO.getReserveMealList(), OrderReserveMealDTO::getCanteenId
|
||||||
, (Object)null), (Long)LeNumUtil.reduceField(reserveMealDTO.getReserveMealList()
|
, (Object)null), (Long)LeNumUtil.reduceField(reserveMealDTO.getReserveMealList()
|
||||||
, OrderReserveMealDTO::getStallId, (Object)null), headerDTO.getOpenid(), custInfo, reserveMealDTO);
|
, OrderReserveMealDTO::getStallId, (Object)null), headerDTO.getOpenid(), custInfo, reserveMealDTO);
|
||||||
|
|
||||||
OrderSavePO orderSavePO = this.packageOrderInfo(reserveMealDTO, reserveMealDTO.getReserveMealList(), payDTO);
|
OrderSavePO orderSavePO = this.packageOrderInfo(reserveMealDTO, reserveMealDTO.getReserveMealList(), payDTO);
|
||||||
this.reserveMealOrderPlaceCheck(orderSavePO.getOrderInfoList(), orderSavePO.getOrderDetailList()
|
this.reserveMealOrderPlaceCheck(orderSavePO.getOrderInfoList(), orderSavePO.getOrderDetailList()
|
||||||
, orderSavePO.getOrderDeliveryList());
|
, orderSavePO.getOrderDeliveryList());
|
||||||
|
|
||||||
if (LeConstants.COMMON_NO.equals(reserveMealDTO.getIfTrial())) {
|
if (LeConstants.COMMON_NO.equals(reserveMealDTO.getIfTrial())) {
|
||||||
this.orderPlaceBusiness.orderHandlerLock(orderSavePO.getMacOrderId(), OrderCacheConstants.MOBILE_PAY_INTERVAL);
|
this.orderPlaceBusiness.orderHandlerLock(orderSavePO.getMacOrderId(), OrderCacheConstants.MOBILE_PAY_INTERVAL);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,5 +13,22 @@
|
||||||
#{stallId}
|
#{stallId}
|
||||||
</foreach>
|
</foreach>
|
||||||
</select>
|
</select>
|
||||||
|
<select id="queryAvailableOrder" resultType="com.bonus.canteen.core.allocation.alloc.model.AllocMetadata">
|
||||||
|
select metadata_id as metadataId,
|
||||||
|
area_id as areaId,
|
||||||
|
canteen_id as canteenId,
|
||||||
|
stall_id as stallId,
|
||||||
|
if_active as ifActive,
|
||||||
|
model_type as modelType,
|
||||||
|
model_key as modelKey,
|
||||||
|
model_value as modelValue,
|
||||||
|
model_key_remark as modelKeyRemark,
|
||||||
|
crby as crby,
|
||||||
|
crtime as crtime,
|
||||||
|
upby as upby,
|
||||||
|
uptime as uptime,
|
||||||
|
model_item as modelItem
|
||||||
|
from alloc_metadata where canteen_id=#{canteenId} and stall_id=#{stallId} and model_type=#{modelType}
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue