交易分账 重构

This commit is contained in:
2023-08-28 15:05:24 +08:00
parent 7a9361af9d
commit 517b88f6a2
2 changed files with 25 additions and 11 deletions

View File

@@ -980,16 +980,30 @@ public class OrderService {
ObjectMapper mapper = new ObjectMapper(); ObjectMapper mapper = new ObjectMapper();
mapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE); mapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE);
AdapayCallbackRecord adapayCallbackRecord = mapper.readValue(jsonObject.toJSONString(), AdapayCallbackRecord.class); AdapayCallbackRecord adapayCallbackRecord = mapper.readValue(jsonObject.toJSONString(), AdapayCallbackRecord.class);
adapayCallbackRecord.setExpend(jsonObject.getString("expend"));
adapayCallbackRecord.setPaymentId(jsonObject.getString("id"));
// 支付扩展域
adapayCallbackRecord.setExpend(jsonObject.getString("expend"));
// 支付id
String paymentId = jsonObject.getString("id");
adapayCallbackRecord.setPaymentId(paymentId);
// 订单附加说明
JSONObject descJson = JSON.parseObject(adapayCallbackRecord.getDescription()); JSONObject descJson = JSON.parseObject(adapayCallbackRecord.getDescription());
String type = descJson.getString("type");
adapayCallbackRecord.setPayScenario(type); // 支付回调中包含的场景类型
String scenarioType = descJson.getString("type");
adapayCallbackRecord.setPayScenario(scenarioType);
// 支付回调中包含的会员id
String memberId = descJson.getString("memberId"); String memberId = descJson.getString("memberId");
adapayCallbackRecord.setMemberId(memberId); adapayCallbackRecord.setMemberId(memberId);
// 支付回调中包含的订单编号
String orderCode = descJson.getString("orderCode"); String orderCode = descJson.getString("orderCode");
adapayCallbackRecord.setOrderCode(orderCode); adapayCallbackRecord.setOrderCode(orderCode);
// 支付金额
BigDecimal amount = adapayCallbackRecord.getPayAmt(); BigDecimal amount = adapayCallbackRecord.getPayAmt();
// 保存到数据库 // 保存到数据库
@@ -998,7 +1012,7 @@ public class OrderService {
// 微信支付订单 记录会员交易流水 // 微信支付订单 记录会员交易流水
MemberTransactionRecord record = MemberTransactionRecord.builder() MemberTransactionRecord record = MemberTransactionRecord.builder()
.orderCode(orderCode) .orderCode(orderCode)
.scenarioType(type) .scenarioType(scenarioType)
.memberId(memberId) .memberId(memberId)
.actionType(ActionTypeEnum.FORWARD.getValue()) .actionType(ActionTypeEnum.FORWARD.getValue())
.payMode(PayModeEnum.PAYMENT_OF_WECHATPAY.getValue()) .payMode(PayModeEnum.PAYMENT_OF_WECHATPAY.getValue())
@@ -1009,9 +1023,7 @@ public class OrderService {
.build(); .build();
memberTransactionRecordService.insertSelective(record); memberTransactionRecordService.insertSelective(record);
String scenarioType = null; if (StringUtils.equals(scenarioType, ScenarioEnum.ORDER.getValue())) { // 1-订单支付
if (StringUtils.equals(type, ScenarioEnum.ORDER.getValue())) { // 1-订单支付
scenarioType = ScenarioEnum.ORDER.getValue();
// 支付订单成功 // 支付订单成功
PayOrderSuccessCallbackDTO callbackDTO = PayOrderSuccessCallbackDTO.builder() PayOrderSuccessCallbackDTO callbackDTO = PayOrderSuccessCallbackDTO.builder()
.orderCode(orderCode) .orderCode(orderCode)
@@ -1031,8 +1043,7 @@ public class OrderService {
// .createBy(null) // .createBy(null)
// .build(); // .build();
// orderPayRecordService.batchInsert(Lists.newArrayList(orderPayRecord)); // orderPayRecordService.batchInsert(Lists.newArrayList(orderPayRecord));
} else if (StringUtils.equals(type, ScenarioEnum.BALANCE.getValue())) { // 2-充值余额 } else if (StringUtils.equals(scenarioType, ScenarioEnum.BALANCE.getValue())) { // 2-充值余额
scenarioType = ScenarioEnum.BALANCE.getValue();
// 充值余额成功 // 充值余额成功
UpdateMemberBalanceDTO dto = new UpdateMemberBalanceDTO(); UpdateMemberBalanceDTO dto = new UpdateMemberBalanceDTO();
dto.setMemberId(memberId); dto.setMemberId(memberId);
@@ -1051,6 +1062,7 @@ public class OrderService {
memberAdapayRecord.setPayAmt(amount); memberAdapayRecord.setPayAmt(amount);
memberAdapayRecord.setRefundAmt(BigDecimal.ZERO); memberAdapayRecord.setRefundAmt(BigDecimal.ZERO);
memberAdapayRecord.setSpendAmt(BigDecimal.ZERO); memberAdapayRecord.setSpendAmt(BigDecimal.ZERO);
memberAdapayRecord.setFreezeAmt(BigDecimal.ZERO);
memberAdapayRecord.setBalanceAmt(amount); memberAdapayRecord.setBalanceAmt(amount);
memberAdapayRecordService.insertSelective(memberAdapayRecord); memberAdapayRecordService.insertSelective(memberAdapayRecord);
} }

View File

@@ -2830,6 +2830,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
this.updateOrderBasicInfo(orderInfo); this.updateOrderBasicInfo(orderInfo);
// 记录订单支付流水 // 记录订单支付流水
List<OrderPayRecord> orderPayRecordList = Lists.newArrayList();
OrderPayRecord orderPayRecord = OrderPayRecord.builder() OrderPayRecord orderPayRecord = OrderPayRecord.builder()
.orderCode(dto.getOrderCode()) .orderCode(dto.getOrderCode())
.payMode(dto.getPayMode()) .payMode(dto.getPayMode())
@@ -2837,7 +2838,8 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
.acquirer(dto.getAcquirer()) .acquirer(dto.getAcquirer())
.createBy(null) .createBy(null)
.build(); .build();
orderPayRecordService.batchInsert(Lists.newArrayList(orderPayRecord)); orderPayRecordList.add(orderPayRecord);
orderPayRecordService.batchInsert(orderPayRecordList);
// 是否发送启动指令 // 是否发送启动指令
boolean sendStartCharging = true; boolean sendStartCharging = true;