交易分账 重构

This commit is contained in:
2023-08-28 15:30:24 +08:00
parent b89e3dca20
commit e4d3d481da
2 changed files with 56 additions and 56 deletions

View File

@@ -177,7 +177,7 @@ public class PayController extends BaseController {
logger.info("1----------->微信支付回调开始 body:{}", JSONObject.toJSONString(body));
RestApiResponse<?> response;
try {
orderService.wechatPayCallback(request, body);
// orderService.wechatPayCallback(request, body);
response = new RestApiResponse<>();
} catch (BusinessException e) {
logger.warn("微信支付回调接口warn", e);

View File

@@ -261,61 +261,61 @@ public class OrderService {
* @param body
* @throws Exception
*/
public void wechatPayCallback(HttpServletRequest request, WechatPayNotifyParameter body) throws Exception {
// 获取微信支付成功返回的信息
Map<String, Object> map = wechatPayService.wechatPayCallbackInfo(request, body);
String type = (String) map.get("type");
BigDecimal amount = (BigDecimal) map.get("amount"); // 微信给的amount单位是分
amount = amount.divide(new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_UP); // 转换为元
String orderCode = (String) map.get("orderCode");
String memberId = (String) map.get("memberId");
if (StringUtils.equals(type, ScenarioEnum.ORDER.getValue())) { // 1-订单支付
// 支付订单成功
// orderCode = (String) map.get("orderCode");
PayOrderSuccessCallbackDTO callbackDTO = PayOrderSuccessCallbackDTO.builder()
.orderCode(orderCode)
.payAmount(amount)
.payMode(OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getValue())
.acquirer(AcquirerEnum.WECHAT_PAY.getValue())
.build();
// 订单支付成功 支付回调
orderBasicInfoService.payOrderSuccessCallback(callbackDTO);
// 记录订单支付流水
// OrderPayRecord orderPayRecord = OrderPayRecord.builder()
// .orderCode(orderCode)
// .payMode(OrderPayRecordEnum.WECHATPAY_PAYMENT.getValue())
// .payAmount(amount)
// .acquirer(AcquirerEnum.WECHAT_PAY.getValue())
// .createBy(null)
// .build();
// orderPayRecordService.batchInsert(Lists.newArrayList(orderPayRecord));
} else if (StringUtils.equals(type, ScenarioEnum.BALANCE.getValue())) { // 2-充值余额
// 充值余额成功
// memberId = (String) map.get("memberId");
UpdateMemberBalanceDTO dto = new UpdateMemberBalanceDTO();
dto.setMemberId(memberId);
dto.setType(MemberWalletEnum.TYPE_IN.getValue());
dto.setSubType(MemberWalletEnum.SUBTYPE_TOP_UP.getValue());
dto.setUpdatePrincipalBalance(amount);
memberBasicInfoService.updateMemberBalance(dto);
}
// 微信支付订单 记录会员交易流水
MemberTransactionRecord record = MemberTransactionRecord.builder()
.orderCode(orderCode)
.scenarioType(type)
.memberId(memberId)
.actionType(ActionTypeEnum.FORWARD.getValue())
.payMode(PayModeEnum.PAYMENT_OF_WECHATPAY.getValue())
.paymentInstitutions(PaymentInstitutionsEnum.WECHAT_PAY.getValue())
.amount(amount) // 单位元
.outTradeNo(String.valueOf(map.get("out_trade_no")))
.transactionId(String.valueOf(map.get("transaction_id")))
.build();
memberTransactionRecordService.insertSelective(record);
}
// public void wechatPayCallback(HttpServletRequest request, WechatPayNotifyParameter body) throws Exception {
// // 获取微信支付成功返回的信息
// Map<String, Object> map = wechatPayService.wechatPayCallbackInfo(request, body);
// String type = (String) map.get("type");
// BigDecimal amount = (BigDecimal) map.get("amount"); // 微信给的amount单位是分
// amount = amount.divide(new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_UP); // 转换为元
//
// String orderCode = (String) map.get("orderCode");
// String memberId = (String) map.get("memberId");
// if (StringUtils.equals(type, ScenarioEnum.ORDER.getValue())) { // 1-订单支付
// // 支付订单成功
// // orderCode = (String) map.get("orderCode");
// PayOrderSuccessCallbackDTO callbackDTO = PayOrderSuccessCallbackDTO.builder()
// .orderCode(orderCode)
// .payAmount(amount)
// .payMode(OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getValue())
// .acquirer(AcquirerEnum.WECHAT_PAY.getValue())
// .build();
// // 订单支付成功 支付回调
// orderBasicInfoService.payOrderSuccessCallback(callbackDTO);
//
// // 记录订单支付流水
// // OrderPayRecord orderPayRecord = OrderPayRecord.builder()
// // .orderCode(orderCode)
// // .payMode(OrderPayRecordEnum.WECHATPAY_PAYMENT.getValue())
// // .payAmount(amount)
// // .acquirer(AcquirerEnum.WECHAT_PAY.getValue())
// // .createBy(null)
// // .build();
// // orderPayRecordService.batchInsert(Lists.newArrayList(orderPayRecord));
// } else if (StringUtils.equals(type, ScenarioEnum.BALANCE.getValue())) { // 2-充值余额
// // 充值余额成功
// // memberId = (String) map.get("memberId");
// UpdateMemberBalanceDTO dto = new UpdateMemberBalanceDTO();
// dto.setMemberId(memberId);
// dto.setType(MemberWalletEnum.TYPE_IN.getValue());
// dto.setSubType(MemberWalletEnum.SUBTYPE_TOP_UP.getValue());
// dto.setUpdatePrincipalBalance(amount);
// memberBasicInfoService.updateMemberBalance(dto);
// }
//
// // 微信支付订单 记录会员交易流水
// MemberTransactionRecord record = MemberTransactionRecord.builder()
// .orderCode(orderCode)
// .scenarioType(type)
// .memberId(memberId)
// .actionType(ActionTypeEnum.FORWARD.getValue())
// .payMode(PayModeEnum.PAYMENT_OF_WECHATPAY.getValue())
// .paymentInstitutions(PaymentInstitutionsEnum.WECHAT_PAY.getValue())
// .amount(amount) // 单位元
// .outTradeNo(String.valueOf(map.get("out_trade_no")))
// .transactionId(String.valueOf(map.get("transaction_id")))
// .build();
// memberTransactionRecordService.insertSelective(record);
// }
/**
* 微信退款