sync_pay_state

This commit is contained in:
sxu 2025-02-20 18:05:43 +08:00
parent 1b63872d7e
commit ed1c1aca5f
6 changed files with 170 additions and 9 deletions

View File

@ -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;

View File

@ -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;
}
}

View File

@ -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;

View File

@ -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<CustomBusiness.Version> versions() {
return CollUtil.newArrayList(new CustomBusiness.Version[0]);
}
public OrderSavePO didPackageNewPaidOrderInfo(List<OrderInfo> originalOrderInfoList, OrderSavePO newOrderSavePO) {
return newOrderSavePO;
}
// public OrderSavePO didPackageNotExistsOrderInfo(TradeRecord tradeRecord, OrderListRepairInfoVO repairVO, OrderSavePO newOrderSavePO) {
// return newOrderSavePO;
// }
}

View File

@ -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<OrderInfo> 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);
}
}

View File

@ -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<TradeOrderRecharge> listSuccessByOrderIds(List<Long> orderIds) {
return this.tradeRecordService.listSuccessByOrderIds(orderIds);
}
public List<TradeChannelVO> listChannelDetailByTradeId(Long tradeId) {
return this.tradeChannelService.listChannelDetailByTradeId(tradeId);
}
}