diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/order/common/business/impl/OrderResultBusinessImpl.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/order/common/business/impl/OrderResultBusinessImpl.java index 42ae5897..1d8ca097 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/order/common/business/impl/OrderResultBusinessImpl.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/order/common/business/impl/OrderResultBusinessImpl.java @@ -11,6 +11,7 @@ import com.bonus.core.common.utils.LogUtil; import com.bonus.core.marketing.v2.api.MarketApi; import com.bonus.core.order.common.business.OrderPlaceBusiness; import com.bonus.core.order.common.business.OrderResultBusiness; +import com.bonus.core.order.common.dto.OrderDidPayInfoDTO; import com.bonus.core.order.common.model.*; import com.bonus.core.order.common.service.OrderAmountChangeService; import com.bonus.core.order.common.service.OrderDeliveryService; @@ -18,6 +19,7 @@ import com.bonus.core.order.common.service.OrderDetailService; import com.bonus.core.order.common.service.OrderInfoService; import com.bonus.core.order.custom.OrderCustomBusiness; import com.bonus.core.order.mq.po.OrderSavePO; +import com.bonus.core.order.repair.service.OrderRepairService; import com.bonus.core.pay.api.PayApi; import com.bonus.core.pay.api.TradeRecordApi; import com.bonus.core.pay.api.dto.UnifyPaySelectDTO; @@ -82,9 +84,9 @@ public class OrderResultBusinessImpl implements OrderResultBusiness { // @Autowired // @Lazy // protected OrderRefundService orderRefundService; -// @Autowired -// @Lazy -// protected OrderRepairService orderRepairService; + @Autowired + @Lazy + protected OrderRepairService orderRepairService; @Autowired @Lazy protected PayApi payApi; diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/order/common/dto/OrderDidPayInfoDTO.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/order/common/dto/OrderDidPayInfoDTO.java new file mode 100644 index 00000000..1dc8919c --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/order/common/dto/OrderDidPayInfoDTO.java @@ -0,0 +1,69 @@ +package com.bonus.core.order.common.dto; + + +import com.bonus.core.pay.api.vo.UnifyPayVO; +import com.bonus.core.pay.common.model.TradeRecord; + +import java.time.LocalDateTime; + +public class OrderDidPayInfoDTO { + private Integer payState; + private Integer payType; + private Integer payChannel; + private LocalDateTime payTime; + + public static OrderDidPayInfoDTO of(Integer payState, Integer payType, Integer payChannel) { + return new OrderDidPayInfoDTO(payState, payType, payChannel, LocalDateTime.now()); + } + + public static OrderDidPayInfoDTO of(UnifyPayVO payVO) { + return new OrderDidPayInfoDTO(payVO.getCode(), payVO.getPayType(), payVO.getPayChannel(), payVO.getPayTime()); + } + + public static OrderDidPayInfoDTO of(TradeRecord tradeRecord) { + return new OrderDidPayInfoDTO(tradeRecord.getTradeState(), tradeRecord.getPayType(), tradeRecord.getPayChannel(), tradeRecord.getTradeTime()); + } + + public Integer getPayState() { + return this.payState; + } + + public Integer getPayType() { + return this.payType; + } + + public Integer getPayChannel() { + return this.payChannel; + } + + public LocalDateTime getPayTime() { + return this.payTime; + } + + public void setPayState(final Integer payState) { + this.payState = payState; + } + + public void setPayType(final Integer payType) { + this.payType = payType; + } + + public void setPayChannel(final Integer payChannel) { + this.payChannel = payChannel; + } + + public void setPayTime(final LocalDateTime payTime) { + this.payTime = payTime; + } + + + public OrderDidPayInfoDTO() { + } + + public OrderDidPayInfoDTO(final Integer payState, final Integer payType, final Integer payChannel, final LocalDateTime payTime) { + this.payState = payState; + this.payType = payType; + this.payChannel = payChannel; + this.payTime = payTime; + } +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/order/custom/OrderCustomBusiness.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/order/custom/OrderCustomBusiness.java index d7c1f732..7f4856c6 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/order/custom/OrderCustomBusiness.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/order/custom/OrderCustomBusiness.java @@ -33,9 +33,9 @@ public class OrderCustomBusiness { @Autowired @Lazy protected OrderCustomResultBusiness orderCustomResultBusiness; -// @Autowired -// @Lazy -// protected OrderCustomRepairBusiness orderCustomRepairBusiness; + @Autowired + @Lazy + protected OrderCustomRepairBusiness orderCustomRepairBusiness; // @Autowired // @Lazy // protected OrderCustomPrintBusiness orderCustomPrintBusiness; @@ -76,9 +76,9 @@ public class OrderCustomBusiness { return this.orderCustomResultBusiness; } // -// public OrderCustomRepairBusiness repair() { -// return this.orderCustomRepairBusiness; -// } + public OrderCustomRepairBusiness repair() { + return this.orderCustomRepairBusiness; + } // // public OrderCustomPrintBusiness print() { // return this.orderCustomPrintBusiness; diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/order/custom/OrderCustomRepairBusiness.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/order/custom/OrderCustomRepairBusiness.java new file mode 100644 index 00000000..64c4f731 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/order/custom/OrderCustomRepairBusiness.java @@ -0,0 +1,29 @@ +package com.bonus.core.order.custom; + +import cn.hutool.core.collection.CollUtil; +import com.bonus.core.common.custom.business.CustomBusiness; +import com.bonus.core.order.common.model.OrderInfo; +import com.bonus.core.order.mq.po.OrderSavePO; +import com.bonus.core.pay.common.model.TradeRecord; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class OrderCustomRepairBusiness implements CustomBusiness { + public String name() { + return "订单(数据修复)"; + } + + public List versions() { + return CollUtil.newArrayList(new CustomBusiness.Version[0]); + } + + public OrderSavePO didPackageNewPaidOrderInfo(List originalOrderInfoList, OrderSavePO newOrderSavePO) { + return newOrderSavePO; + } + +// public OrderSavePO didPackageNotExistsOrderInfo(TradeRecord tradeRecord, OrderListRepairInfoVO repairVO, OrderSavePO newOrderSavePO) { +// return newOrderSavePO; +// } +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/order/repair/service/OrderRepairService.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/order/repair/service/OrderRepairService.java new file mode 100644 index 00000000..7486740d --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/order/repair/service/OrderRepairService.java @@ -0,0 +1,54 @@ +package com.bonus.core.order.repair.service; + +import com.bonus.core.order.common.constants.*; +import com.bonus.core.order.common.model.*; +import com.bonus.core.order.custom.OrderCustomBusiness; +import com.bonus.core.order.mq.po.OrderSavePO; +import com.bonus.core.pay.common.constants.PayStateEnum; +import com.bonus.utils.id.Id; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Service; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Service +public class OrderRepairService { + @Autowired + @Lazy + protected OrderCustomBusiness orderCustomBusiness; + + + public OrderSavePO packageNewPaidOrderInfo(List orderInfoList) { + String newMacOrderId = Id.nextString(); + OrderSavePO orderSavePO = OrderSavePO.byLockKey(newMacOrderId); + Iterator var4 = orderInfoList.iterator(); + + while(var4.hasNext()) { + OrderInfo existOrderInfo = (OrderInfo)var4.next(); + OrderInfo newOrderInfo = existOrderInfo.copyInstance(); + newOrderInfo.setOrderId(Id.next()); + newOrderInfo.setMacOrderId(newMacOrderId); + newOrderInfo.resetAmountsZero(); + newOrderInfo.setOrderType(OrderTypeEnum.DEDUCT.getKey()); + newOrderInfo.setOrderState(OrderStateEnum.WAIT_PLACE.getKey()); + newOrderInfo.setPayState(PayStateEnum.UN_PAY.getKey()); + newOrderInfo.setOrderRefundState(OrderRefundStateEnum.UN_APPLY.getKey()); + newOrderInfo.setPayableAmount(existOrderInfo.calcUnRefundAmount()); + orderSavePO.getOrderInfoList().add(newOrderInfo); + OrderDetail newOrderDetail = OrderDetail.newDefaultDetail(existOrderInfo.calcUnRefundAmount(), DetailTypeEnum.DEDUCT.getKey()); + newOrderDetail.setDetailId(Id.next()); + newOrderDetail.setOrderId(newOrderInfo.getOrderId()); + newOrderDetail.setOrderDate(newOrderInfo.getOrderDate()); + orderSavePO.getOrderDetailList().add(newOrderDetail); + } + + return this.orderCustomBusiness.repair().didPackageNewPaidOrderInfo(orderInfoList, orderSavePO); + } + + +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/pay/api/TradeRecordApi.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/pay/api/TradeRecordApi.java index d99ea1a4..8a2160ba 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/pay/api/TradeRecordApi.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/core/pay/api/TradeRecordApi.java @@ -46,6 +46,9 @@ public class TradeRecordApi { @Lazy @Resource protected OrderInfoService orderInfoService; + @Lazy + @Autowired + protected TradeChannelService tradeChannelService; public TradeRecord getTradeRecordById(Long tradeId) { return this.tradeRecordService.getTradeRecordById(tradeId); @@ -72,4 +75,8 @@ public class TradeRecordApi { public List listSuccessByOrderIds(List orderIds) { return this.tradeRecordService.listSuccessByOrderIds(orderIds); } + + public List listChannelDetailByTradeId(Long tradeId) { + return this.tradeChannelService.listChannelDetailByTradeId(tradeId); + } }