zhuyifan

fix

......@@ -539,9 +539,12 @@ public class OrderServiceRpcClient {
.build();
final var menuById = menuServiceRpcClient.getMenuById(createOrderDto.getEnterpriseId(), createOrderDto.getMenuId());
OrderStatusEnum orderStatus = OrderStatusEnum.TO_PREPARE;
if (menuById.getResponse().getOrderRuleJson().getModeOfPayment() == ModeOfPaymentEnum.ONLINE && menuById.getResponse().getOrderRuleJson().getCloseTimeType() == CloseTimeTypeEnum.IMMEDIATELY) {
if (createOrderDto.getOnlinePay() != OnlinePayEnum.ONLINE) {
var orderRuleJson = menuById.getResponse().getOrderRuleJson();
if (orderRuleJson.getModeOfPayment() == ModeOfPaymentEnum.ONLINE && orderRuleJson.getCloseTimeType() == CloseTimeTypeEnum.IMMEDIATELY) {
orderStatus = OrderStatusEnum.PREPARING;
}
}
final var creation = ClientCustomerOrderCreation.newBuilder()
.setShouldCreateCustomerId(createOrderDto.getShouldCreateCustomerId())
.setShouldCreateCustomerId(true).setCustomerId(createOrderDto.getCustomerId())
......@@ -553,7 +556,7 @@ public class OrderServiceRpcClient {
.setShouldCreateRoomNo(!createOrderDto.getRoomNo().isEmpty()).setRoomNo(createOrderDto.getRoomNo())
.setShouldCreateTableCode(createOrderDto.getCloseTimeType().equals(CloseTimeType.IMMEDIATELY) || StringUtils.isNotEmpty(createOrderDto.getTableCode())).setTableCode(createOrderDto.getTableCode() == null ? "" : createOrderDto.getTableCode())
.setShouldCreateOnlinePay(true).setOnlinePay(createOrderDto.getOnlinePay())
.setShouldCreatePayStatus(true).setPayStatus(createOrderDto.getOnlinePay() == OnlinePayEnum.ONLINE || createOrderDto.getOnlinePay() == OnlinePayEnum.LEAVE_HOSPITAL ? PayStatusEnum.TO_PAY : PayStatusEnum.SUCCEED)
.setShouldCreatePayStatus(true).setPayStatus(createOrderDto.getOnlinePay() == OnlinePayEnum.ONLINE ? PayStatusEnum.TO_PAY : PayStatusEnum.SUCCEED)
.setMenuId(createOrderDto.getMenuId())
.setTotalNum(createOrderDto.getTotalNum())
.setShouldCreatePayPrice(createOrderDto.getOnlinePay() == OnlinePayEnum.LEAVE_HOSPITAL).setPayPrice(createOrderDto.getPayPrice())
......@@ -571,13 +574,10 @@ public class OrderServiceRpcClient {
final var skuSellQuantities = this.querySkuSellQuantitiesByStallAndSkuIds(createOrderDto.getEnterpriseId(), createOrderDto.getStallId(), skuIds);
final var skuSellQuantityMap = skuSellQuantities.stream().collect(Collectors.toMap(SingleSkuSellQuantityRpcResponse::getSkuId, Function.identity()));
final var skuMap = skuServiceRpcClient.getSkusByIds(skuIds).stream().collect(Collectors.toMap(SingleSkuResponse::getId, Function.identity()));
final var soldOutSkus = new ArrayList<String>();
final var skuStockMap = new HashMap<String, Integer>();
for (var orderDetail : createOrderDto.getOrderDetailDtos()) {
final var skuSellQuantityRpcResponse = skuSellQuantityMap.get(orderDetail.getSkuId());
if (skuSellQuantityRpcResponse == null) {
log.error("skuSellQuantityRpcResponse is null; stallId:{}, skuId:{}", createOrderDto.getStallId(), orderDetail.getSkuId());
soldOutSkus.add(skuMap.get(orderDetail.getSkuId()).getName());
continue;
}
if ((skuSellQuantityRpcResponse.getTodaySellQuantity() + orderDetail.getCount()) > skuSellQuantityRpcResponse.getMaxSellQuantity()) {
......@@ -585,9 +585,6 @@ public class OrderServiceRpcClient {
skuStockMap.put(skuMap.get(orderDetail.getSkuId()).getName(), skuSellQuantityRpcResponse.getMaxSellQuantity() - skuSellQuantityRpcResponse.getTodaySellQuantity());
}
}
if (!soldOutSkus.isEmpty()) {
throw ClientEndExceptions.BusinessException.build(ErrorCodeEnum.SKUS_SOLD_OUT_TODAY, String.join(",", soldOutSkus));
}
if (!skuStockMap.isEmpty()) {
final var noEnoughSkus = String.join(", ", skuStockMap.keySet());
throw ClientEndExceptions.BusinessException.build(ErrorCodeEnum.SKUS_STOCK_NO_ENOUGH_TODAY, noEnoughSkus);
......