Showing
3 changed files
with
13 additions
and
6 deletions
| 1 | package com.infoloop.tianting.logic.delay; | 1 | package com.infoloop.tianting.logic.delay; |
| 2 | 2 | ||
| 3 | +import com.infoloop.tianting.clientcustomerorderservice.CloseTimeType; | ||
| 3 | import com.infoloop.tianting.clientcustomerorderservice.PayStatusEnum; | 4 | import com.infoloop.tianting.clientcustomerorderservice.PayStatusEnum; |
| 4 | import com.infoloop.tianting.logic.delay.param.AutoCancelParam; | 5 | import com.infoloop.tianting.logic.delay.param.AutoCancelParam; |
| 5 | import com.infoloop.tianting.model.bo.AddSkusSellQuantityBO; | 6 | import com.infoloop.tianting.model.bo.AddSkusSellQuantityBO; |
| ... | @@ -43,13 +44,14 @@ public class OrderAutoCancelDelayTask { | ... | @@ -43,13 +44,14 @@ public class OrderAutoCancelDelayTask { |
| 43 | return; | 44 | return; |
| 44 | } | 45 | } |
| 45 | final var isUpdated = orderServiceRpcClient.updateClientCustomerOrderCancel(orderById.getEnterpriseId(), orderById.getId()); | 46 | final var isUpdated = orderServiceRpcClient.updateClientCustomerOrderCancel(orderById.getEnterpriseId(), orderById.getId()); |
| 46 | - if (isUpdated) { | 47 | + if (isUpdated && orderById.getCloseTimeType() == CloseTimeType.IMMEDIATELY) { |
| 48 | + // 立即点餐需回滚库存 | ||
| 47 | final var orderDetails = orderServiceRpcClient.getOrderDetailsByOrderId(orderById.getId()); | 49 | final var orderDetails = orderServiceRpcClient.getOrderDetailsByOrderId(orderById.getId()); |
| 48 | final var isSuccess = orderServiceRpcClient.addSkusSellQuantities(orderById.getEnterpriseId(), orderById.getStallId(), orderDetails.stream().map(e -> AddSkusSellQuantityBO.builder() | 50 | final var isSuccess = orderServiceRpcClient.addSkusSellQuantities(orderById.getEnterpriseId(), orderById.getStallId(), orderDetails.stream().map(e -> AddSkusSellQuantityBO.builder() |
| 49 | .skuId(e.getSkuId()) | 51 | .skuId(e.getSkuId()) |
| 50 | .quantity(-e.getCount()) | 52 | .quantity(-e.getCount()) |
| 51 | .build()).collect(Collectors.toList())); | 53 | .build()).collect(Collectors.toList())); |
| 52 | - log.info("Order {} addSkusSellQuantities result: {}", param.getOrderId(), isSuccess); | 54 | + log.info("Order {} returnSkusSellQuantities result: {}", param.getOrderId(), isSuccess); |
| 53 | } | 55 | } |
| 54 | } catch (Exception e) { | 56 | } catch (Exception e) { |
| 55 | log.error("OrderAutoCancelDelayTask execute error", e); | 57 | log.error("OrderAutoCancelDelayTask execute error", e); | ... | ... |
| ... | @@ -47,6 +47,7 @@ import com.infoloop.tianting.exception.ErrorCodeEnum; | ... | @@ -47,6 +47,7 @@ import com.infoloop.tianting.exception.ErrorCodeEnum; |
| 47 | import com.infoloop.tianting.logic.delay.DelayedQueue; | 47 | import com.infoloop.tianting.logic.delay.DelayedQueue; |
| 48 | import com.infoloop.tianting.logic.delay.OrderAutoCancelDelayTask; | 48 | import com.infoloop.tianting.logic.delay.OrderAutoCancelDelayTask; |
| 49 | import com.infoloop.tianting.logic.delay.param.AutoCancelParam; | 49 | import com.infoloop.tianting.logic.delay.param.AutoCancelParam; |
| 50 | +import com.infoloop.tianting.menuservice.CloseTimeTypeEnum; | ||
| 50 | import com.infoloop.tianting.menuservice.ModeOfPaymentEnum; | 51 | import com.infoloop.tianting.menuservice.ModeOfPaymentEnum; |
| 51 | import com.infoloop.tianting.model.bo.AddSkusSellQuantityBO; | 52 | import com.infoloop.tianting.model.bo.AddSkusSellQuantityBO; |
| 52 | import com.infoloop.tianting.model.bo.SkuSellQuantityBO; | 53 | import com.infoloop.tianting.model.bo.SkuSellQuantityBO; |
| ... | @@ -566,7 +567,7 @@ public class OrderServiceRpcClient { | ... | @@ -566,7 +567,7 @@ public class OrderServiceRpcClient { |
| 566 | .addAllOrderDetails(orderDetails) | 567 | .addAllOrderDetails(orderDetails) |
| 567 | .build(); | 568 | .build(); |
| 568 | final var menuById = menuServiceRpcClient.getMenuById(createOrderDto.getEnterpriseId(), createOrderDto.getMenuId()); | 569 | final var menuById = menuServiceRpcClient.getMenuById(createOrderDto.getEnterpriseId(), createOrderDto.getMenuId()); |
| 569 | - if (menuById.getResponse().getOrderRuleJson().getModeOfPayment() == ModeOfPaymentEnum.ONLINE) { | 570 | + if (menuById.getResponse().getOrderRuleJson().getCloseTimeType() == CloseTimeTypeEnum.IMMEDIATELY) { |
| 570 | final var skuIds = createOrderDto.getOrderDetailDtos().stream().map(CreateOrderDetailDto::getSkuId).collect(Collectors.toList()); | 571 | final var skuIds = createOrderDto.getOrderDetailDtos().stream().map(CreateOrderDetailDto::getSkuId).collect(Collectors.toList()); |
| 571 | final var skuSellQuantities = this.querySkuSellQuantitiesByStallAndSkuIds(createOrderDto.getEnterpriseId(), createOrderDto.getStallId(), skuIds); | 572 | final var skuSellQuantities = this.querySkuSellQuantitiesByStallAndSkuIds(createOrderDto.getEnterpriseId(), createOrderDto.getStallId(), skuIds); |
| 572 | final var skuSellQuantityMap = skuSellQuantities.stream().collect(Collectors.toMap(SingleSkuSellQuantityRpcResponse::getSkuId, Function.identity())); | 573 | final var skuSellQuantityMap = skuSellQuantities.stream().collect(Collectors.toMap(SingleSkuSellQuantityRpcResponse::getSkuId, Function.identity())); |
| ... | @@ -600,13 +601,18 @@ public class OrderServiceRpcClient { | ... | @@ -600,13 +601,18 @@ public class OrderServiceRpcClient { |
| 600 | .setEnterpriseId(createOrderDto.getEnterpriseId()) | 601 | .setEnterpriseId(createOrderDto.getEnterpriseId()) |
| 601 | .setCreatedBy(createOrderDto.getCreatedBy()) | 602 | .setCreatedBy(createOrderDto.getCreatedBy()) |
| 602 | .build()); | 603 | .build()); |
| 603 | - if (orderResponse.getIsCreated() && menuById.getResponse().getOrderRuleJson().getModeOfPayment() == ModeOfPaymentEnum.ONLINE) { | 604 | + if (orderResponse.getIsCreated()) { |
| 605 | + //立即点餐需要扣除库存 | ||
| 606 | + if (menuById.getResponse().getOrderRuleJson().getCloseTimeType() == CloseTimeTypeEnum.IMMEDIATELY) { | ||
| 604 | final var isSuccess = this.addSkusSellQuantities(createOrderDto.getEnterpriseId(), createOrderDto.getStallId(), | 607 | final var isSuccess = this.addSkusSellQuantities(createOrderDto.getEnterpriseId(), createOrderDto.getStallId(), |
| 605 | orderDetails.stream().map(e -> AddSkusSellQuantityBO.builder() | 608 | orderDetails.stream().map(e -> AddSkusSellQuantityBO.builder() |
| 606 | .skuId(e.getSkuId()) | 609 | .skuId(e.getSkuId()) |
| 607 | .quantity(e.getCount()) | 610 | .quantity(e.getCount()) |
| 608 | .build()).collect(Collectors.toList())); | 611 | .build()).collect(Collectors.toList())); |
| 609 | - if (isSuccess) { | 612 | + log.info("Order {} addSkusSellQuantities result: {}", orderResponse.getId(), isSuccess); |
| 613 | + } | ||
| 614 | + //在线支付需要延迟取消订单 | ||
| 615 | + if (menuById.getResponse().getOrderRuleJson().getModeOfPayment() == ModeOfPaymentEnum.ONLINE) { | ||
| 610 | final var autoCancelParam = new AutoCancelParam(); | 616 | final var autoCancelParam = new AutoCancelParam(); |
| 611 | autoCancelParam.setOrderId(orderResponse.getId()); | 617 | autoCancelParam.setOrderId(orderResponse.getId()); |
| 612 | delayedQueue.addToQueue(OrderAutoCancelDelayTask.AUTO_CANCEL_ORDER_DELAY_QUEUE, autoCancelParam, 10, TimeUnit.MINUTES); | 618 | delayedQueue.addToQueue(OrderAutoCancelDelayTask.AUTO_CANCEL_ORDER_DELAY_QUEUE, autoCancelParam, 10, TimeUnit.MINUTES); | ... | ... |
| ... | @@ -113,7 +113,6 @@ public class OrderServiceImpl implements OrderService { | ... | @@ -113,7 +113,6 @@ public class OrderServiceImpl implements OrderService { |
| 113 | createOrderDto.setRoomNo(record.getRoomNo()); | 113 | createOrderDto.setRoomNo(record.getRoomNo()); |
| 114 | createOrderDto.setCreationSource(OrderSourceEnum.STALL.getNumber()); | 114 | createOrderDto.setCreationSource(OrderSourceEnum.STALL.getNumber()); |
| 115 | createOrderDto.setEnterpriseId(operatorLoginInfo.getEnterpriseId()); | 115 | createOrderDto.setEnterpriseId(operatorLoginInfo.getEnterpriseId()); |
| 116 | -// createOrderDto.setStallId(); | ||
| 117 | var onlinePay = menu.getOrderRuleJson().getModeOfPayment() == ModeOfPaymentEnum.ONLINE; | 116 | var onlinePay = menu.getOrderRuleJson().getModeOfPayment() == ModeOfPaymentEnum.ONLINE; |
| 118 | createOrderDto.setOnlinePay(onlinePay); | 117 | createOrderDto.setOnlinePay(onlinePay); |
| 119 | OrderTypeEnum orderType; | 118 | OrderTypeEnum orderType; | ... | ... |
-
Please register or login to post a comment