zhuyifan

fix

...@@ -539,8 +539,11 @@ public class OrderServiceRpcClient { ...@@ -539,8 +539,11 @@ public class OrderServiceRpcClient {
539 .build(); 539 .build();
540 final var menuById = menuServiceRpcClient.getMenuById(createOrderDto.getEnterpriseId(), createOrderDto.getMenuId()); 540 final var menuById = menuServiceRpcClient.getMenuById(createOrderDto.getEnterpriseId(), createOrderDto.getMenuId());
541 OrderStatusEnum orderStatus = OrderStatusEnum.TO_PREPARE; 541 OrderStatusEnum orderStatus = OrderStatusEnum.TO_PREPARE;
542 - if (menuById.getResponse().getOrderRuleJson().getModeOfPayment() == ModeOfPaymentEnum.ONLINE && menuById.getResponse().getOrderRuleJson().getCloseTimeType() == CloseTimeTypeEnum.IMMEDIATELY) { 542 + if (createOrderDto.getOnlinePay() != OnlinePayEnum.ONLINE) {
543 - orderStatus = OrderStatusEnum.PREPARING; 543 + var orderRuleJson = menuById.getResponse().getOrderRuleJson();
544 + if (orderRuleJson.getModeOfPayment() == ModeOfPaymentEnum.ONLINE && orderRuleJson.getCloseTimeType() == CloseTimeTypeEnum.IMMEDIATELY) {
545 + orderStatus = OrderStatusEnum.PREPARING;
546 + }
544 } 547 }
545 final var creation = ClientCustomerOrderCreation.newBuilder() 548 final var creation = ClientCustomerOrderCreation.newBuilder()
546 .setShouldCreateCustomerId(createOrderDto.getShouldCreateCustomerId()) 549 .setShouldCreateCustomerId(createOrderDto.getShouldCreateCustomerId())
...@@ -553,7 +556,7 @@ public class OrderServiceRpcClient { ...@@ -553,7 +556,7 @@ public class OrderServiceRpcClient {
553 .setShouldCreateRoomNo(!createOrderDto.getRoomNo().isEmpty()).setRoomNo(createOrderDto.getRoomNo()) 556 .setShouldCreateRoomNo(!createOrderDto.getRoomNo().isEmpty()).setRoomNo(createOrderDto.getRoomNo())
554 .setShouldCreateTableCode(createOrderDto.getCloseTimeType().equals(CloseTimeType.IMMEDIATELY) || StringUtils.isNotEmpty(createOrderDto.getTableCode())).setTableCode(createOrderDto.getTableCode() == null ? "" : createOrderDto.getTableCode()) 557 .setShouldCreateTableCode(createOrderDto.getCloseTimeType().equals(CloseTimeType.IMMEDIATELY) || StringUtils.isNotEmpty(createOrderDto.getTableCode())).setTableCode(createOrderDto.getTableCode() == null ? "" : createOrderDto.getTableCode())
555 .setShouldCreateOnlinePay(true).setOnlinePay(createOrderDto.getOnlinePay()) 558 .setShouldCreateOnlinePay(true).setOnlinePay(createOrderDto.getOnlinePay())
556 - .setShouldCreatePayStatus(true).setPayStatus(createOrderDto.getOnlinePay() == OnlinePayEnum.ONLINE || createOrderDto.getOnlinePay() == OnlinePayEnum.LEAVE_HOSPITAL ? PayStatusEnum.TO_PAY : PayStatusEnum.SUCCEED) 559 + .setShouldCreatePayStatus(true).setPayStatus(createOrderDto.getOnlinePay() == OnlinePayEnum.ONLINE ? PayStatusEnum.TO_PAY : PayStatusEnum.SUCCEED)
557 .setMenuId(createOrderDto.getMenuId()) 560 .setMenuId(createOrderDto.getMenuId())
558 .setTotalNum(createOrderDto.getTotalNum()) 561 .setTotalNum(createOrderDto.getTotalNum())
559 .setShouldCreatePayPrice(createOrderDto.getOnlinePay() == OnlinePayEnum.LEAVE_HOSPITAL).setPayPrice(createOrderDto.getPayPrice()) 562 .setShouldCreatePayPrice(createOrderDto.getOnlinePay() == OnlinePayEnum.LEAVE_HOSPITAL).setPayPrice(createOrderDto.getPayPrice())
...@@ -571,13 +574,10 @@ public class OrderServiceRpcClient { ...@@ -571,13 +574,10 @@ public class OrderServiceRpcClient {
571 final var skuSellQuantities = this.querySkuSellQuantitiesByStallAndSkuIds(createOrderDto.getEnterpriseId(), createOrderDto.getStallId(), skuIds); 574 final var skuSellQuantities = this.querySkuSellQuantitiesByStallAndSkuIds(createOrderDto.getEnterpriseId(), createOrderDto.getStallId(), skuIds);
572 final var skuSellQuantityMap = skuSellQuantities.stream().collect(Collectors.toMap(SingleSkuSellQuantityRpcResponse::getSkuId, Function.identity())); 575 final var skuSellQuantityMap = skuSellQuantities.stream().collect(Collectors.toMap(SingleSkuSellQuantityRpcResponse::getSkuId, Function.identity()));
573 final var skuMap = skuServiceRpcClient.getSkusByIds(skuIds).stream().collect(Collectors.toMap(SingleSkuResponse::getId, Function.identity())); 576 final var skuMap = skuServiceRpcClient.getSkusByIds(skuIds).stream().collect(Collectors.toMap(SingleSkuResponse::getId, Function.identity()));
574 - final var soldOutSkus = new ArrayList<String>();
575 final var skuStockMap = new HashMap<String, Integer>(); 577 final var skuStockMap = new HashMap<String, Integer>();
576 for (var orderDetail : createOrderDto.getOrderDetailDtos()) { 578 for (var orderDetail : createOrderDto.getOrderDetailDtos()) {
577 final var skuSellQuantityRpcResponse = skuSellQuantityMap.get(orderDetail.getSkuId()); 579 final var skuSellQuantityRpcResponse = skuSellQuantityMap.get(orderDetail.getSkuId());
578 if (skuSellQuantityRpcResponse == null) { 580 if (skuSellQuantityRpcResponse == null) {
579 - log.error("skuSellQuantityRpcResponse is null; stallId:{}, skuId:{}", createOrderDto.getStallId(), orderDetail.getSkuId());
580 - soldOutSkus.add(skuMap.get(orderDetail.getSkuId()).getName());
581 continue; 581 continue;
582 } 582 }
583 if ((skuSellQuantityRpcResponse.getTodaySellQuantity() + orderDetail.getCount()) > skuSellQuantityRpcResponse.getMaxSellQuantity()) { 583 if ((skuSellQuantityRpcResponse.getTodaySellQuantity() + orderDetail.getCount()) > skuSellQuantityRpcResponse.getMaxSellQuantity()) {
...@@ -585,9 +585,6 @@ public class OrderServiceRpcClient { ...@@ -585,9 +585,6 @@ public class OrderServiceRpcClient {
585 skuStockMap.put(skuMap.get(orderDetail.getSkuId()).getName(), skuSellQuantityRpcResponse.getMaxSellQuantity() - skuSellQuantityRpcResponse.getTodaySellQuantity()); 585 skuStockMap.put(skuMap.get(orderDetail.getSkuId()).getName(), skuSellQuantityRpcResponse.getMaxSellQuantity() - skuSellQuantityRpcResponse.getTodaySellQuantity());
586 } 586 }
587 } 587 }
588 - if (!soldOutSkus.isEmpty()) {
589 - throw ClientEndExceptions.BusinessException.build(ErrorCodeEnum.SKUS_SOLD_OUT_TODAY, String.join(",", soldOutSkus));
590 - }
591 if (!skuStockMap.isEmpty()) { 588 if (!skuStockMap.isEmpty()) {
592 final var noEnoughSkus = String.join(", ", skuStockMap.keySet()); 589 final var noEnoughSkus = String.join(", ", skuStockMap.keySet());
593 throw ClientEndExceptions.BusinessException.build(ErrorCodeEnum.SKUS_STOCK_NO_ENOUGH_TODAY, noEnoughSkus); 590 throw ClientEndExceptions.BusinessException.build(ErrorCodeEnum.SKUS_STOCK_NO_ENOUGH_TODAY, noEnoughSkus);
......