交易分账 重构

This commit is contained in:
2023-08-28 17:27:57 +08:00
parent 38dbafa116
commit d1b0d40e24
2 changed files with 31 additions and 36 deletions

View File

@@ -1011,6 +1011,19 @@ public class OrderService {
// 保存到数据库 // 保存到数据库
adapayCallbackRecordService.saveAdapayCallbackRecord(adapayCallbackRecord); adapayCallbackRecordService.saveAdapayCallbackRecord(adapayCallbackRecord);
// 保存MemberAdapayRecord
MemberAdapayRecord memberAdapayRecord = new MemberAdapayRecord();
memberAdapayRecord.setMemberId(memberId);
memberAdapayRecord.setPaymentId(paymentId);
memberAdapayRecord.setPaymentOrderNo(adapayCallbackRecord.getOutTransId());
memberAdapayRecord.setScenarioType(scenarioType);
memberAdapayRecord.setPayAmt(amount);
memberAdapayRecord.setRefundAmt(BigDecimal.ZERO);
memberAdapayRecord.setSpendAmt(BigDecimal.ZERO);
memberAdapayRecord.setFreezeAmt(BigDecimal.ZERO);
memberAdapayRecord.setBalanceAmt(amount);
memberAdapayRecordService.insertSelective(memberAdapayRecord);
// 微信支付订单 记录会员交易流水 // 微信支付订单 记录会员交易流水
MemberTransactionRecord record = MemberTransactionRecord.builder() MemberTransactionRecord record = MemberTransactionRecord.builder()
.orderCode(orderCode) .orderCode(orderCode)
@@ -1026,6 +1039,21 @@ public class OrderService {
memberTransactionRecordService.insertSelective(record); memberTransactionRecordService.insertSelective(record);
if (StringUtils.equals(scenarioType, ScenarioEnum.ORDER.getValue())) { // 1-订单支付 if (StringUtils.equals(scenarioType, ScenarioEnum.ORDER.getValue())) { // 1-订单支付
JSONObject json = new JSONObject();
json.put("paymentId", paymentId);
json.put("amount", amount);
// 记录订单支付流水
OrderPayRecord orderPayRecord = OrderPayRecord.builder()
.orderCode(orderCode)
.payMode(OrderPayRecordEnum.WECHATPAY_PAYMENT.getValue())
.payAmount(amount)
.acquirer(AcquirerEnum.ADAPAY.getValue())
.deductionRecord(json.toJSONString())
.createBy(null)
.build();
orderPayRecordService.batchInsert(Lists.newArrayList(orderPayRecord));
// 支付订单成功 // 支付订单成功
PayOrderSuccessCallbackDTO callbackDTO = PayOrderSuccessCallbackDTO.builder() PayOrderSuccessCallbackDTO callbackDTO = PayOrderSuccessCallbackDTO.builder()
.orderCode(orderCode) .orderCode(orderCode)
@@ -1035,16 +1063,6 @@ public class OrderService {
.build(); .build();
// 订单支付成功 支付回调 // 订单支付成功 支付回调
orderBasicInfoService.payOrderSuccessCallback(callbackDTO); orderBasicInfoService.payOrderSuccessCallback(callbackDTO);
// 记录订单支付流水
// OrderPayRecord orderPayRecord = OrderPayRecord.builder()
// .orderCode(orderCode)
// .payMode(OrderPayRecordEnum.WECHATPAY_PAYMENT.getValue())
// .payAmount(amount)
// .acquirer(AcquirerEnum.ADAPAY.getValue())
// .createBy(null)
// .build();
// orderPayRecordService.batchInsert(Lists.newArrayList(orderPayRecord));
} else if (StringUtils.equals(scenarioType, ScenarioEnum.BALANCE.getValue())) { // 2-充值余额 } else if (StringUtils.equals(scenarioType, ScenarioEnum.BALANCE.getValue())) { // 2-充值余额
// 充值余额成功 // 充值余额成功
UpdateMemberBalanceDTO dto = new UpdateMemberBalanceDTO(); UpdateMemberBalanceDTO dto = new UpdateMemberBalanceDTO();
@@ -1055,18 +1073,7 @@ public class OrderService {
memberBasicInfoService.updateMemberBalance(dto); memberBasicInfoService.updateMemberBalance(dto);
} }
// 保存MemberAdapayRecord
MemberAdapayRecord memberAdapayRecord = new MemberAdapayRecord();
memberAdapayRecord.setMemberId(memberId);
memberAdapayRecord.setPaymentId(adapayCallbackRecord.getPaymentId());
memberAdapayRecord.setPaymentOrderNo(adapayCallbackRecord.getOutTransId());
memberAdapayRecord.setScenarioType(scenarioType);
memberAdapayRecord.setPayAmt(amount);
memberAdapayRecord.setRefundAmt(BigDecimal.ZERO);
memberAdapayRecord.setSpendAmt(BigDecimal.ZERO);
memberAdapayRecord.setFreezeAmt(BigDecimal.ZERO);
memberAdapayRecord.setBalanceAmt(amount);
memberAdapayRecordService.insertSelective(memberAdapayRecord);
} }
/** /**

View File

@@ -2832,18 +2832,6 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
orderInfo.setPayTime(new Date()); orderInfo.setPayTime(new Date());
this.updateOrderBasicInfo(orderInfo); this.updateOrderBasicInfo(orderInfo);
// 记录订单支付流水
List<OrderPayRecord> orderPayRecordList = Lists.newArrayList();
OrderPayRecord orderPayRecord = OrderPayRecord.builder()
.orderCode(dto.getOrderCode())
.payMode(dto.getPayMode())
.payAmount(payAmount)
.acquirer(dto.getAcquirer())
.createBy(null)
.build();
orderPayRecordList.add(orderPayRecord);
orderPayRecordService.batchInsert(orderPayRecordList);
// 是否发送启动指令 // 是否发送启动指令
boolean sendStartCharging = true; boolean sendStartCharging = true;
@@ -2999,7 +2987,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
* 去除赠送金额相关的代码 * 去除赠送金额相关的代码
* @param dto * @param dto
*/ */
private void balancePayOrder(PayOrderDTO dto) { /*private void balancePayOrder(PayOrderDTO dto) {
// 记录支付流水 // 记录支付流水
List<OrderPayRecord> payRecordList = Lists.newArrayList(); List<OrderPayRecord> payRecordList = Lists.newArrayList();
String orderCode = dto.getOrderCode(); String orderCode = dto.getOrderCode();
@@ -3089,7 +3077,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
if (CollectionUtils.isNotEmpty(payRecordList)) { if (CollectionUtils.isNotEmpty(payRecordList)) {
orderPayRecordService.batchInsert(payRecordList); orderPayRecordService.batchInsert(payRecordList);
} }
} }*/
private void balancePayOrderV2(PayOrderDTO dto) { private void balancePayOrderV2(PayOrderDTO dto) {
String orderCode = dto.getOrderCode(); // 订单编号 String orderCode = dto.getOrderCode(); // 订单编号