mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-05-17 16:28:41 +08:00
update
This commit is contained in:
@@ -795,9 +795,9 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
|||||||
/**
|
/**
|
||||||
* 记账
|
* 记账
|
||||||
*/
|
*/
|
||||||
private void doUpdateClearingBill(OrderSettleResult orderSettleResult) {
|
// private void doUpdateClearingBill(OrderSettleResult orderSettleResult) {
|
||||||
logger.info("orderSettleResult:{}", JSON.toJSONString(orderSettleResult));
|
// logger.info("orderSettleResult:{}", JSON.toJSONString(orderSettleResult));
|
||||||
}
|
// }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单分账逻辑
|
* 订单分账逻辑
|
||||||
@@ -3169,129 +3169,129 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
|||||||
* @param orderCode 订单编号
|
* @param orderCode 订单编号
|
||||||
* @param memberId 会员id
|
* @param memberId 会员id
|
||||||
*/
|
*/
|
||||||
private BigDecimal queryBalanceOrderSettleInfo(String orderCode, String memberId, String wechatAppId) {
|
// private BigDecimal queryBalanceOrderSettleInfo(String orderCode, String memberId, String wechatAppId) {
|
||||||
BigDecimal resultAmt = BigDecimal.ZERO;
|
// BigDecimal resultAmt = BigDecimal.ZERO;
|
||||||
// 查询会员余额支付记录
|
// // 查询会员余额支付记录
|
||||||
List<MemberAdapayRecord> recordList = memberAdapayRecordService.selectAdapayRecordList(memberId, ScenarioEnum.BALANCE.getValue());
|
// List<MemberAdapayRecord> recordList = memberAdapayRecordService.selectAdapayRecordList(memberId, ScenarioEnum.BALANCE.getValue());
|
||||||
if (CollectionUtils.isEmpty(recordList)) {
|
// if (CollectionUtils.isEmpty(recordList)) {
|
||||||
return resultAmt;
|
// return resultAmt;
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
// 用汇付api查询分账信息
|
// // 用汇付api查询分账信息
|
||||||
for (MemberAdapayRecord record : recordList) {
|
// for (MemberAdapayRecord record : recordList) {
|
||||||
QueryPaymentConfirmDTO dto = new QueryPaymentConfirmDTO();
|
// QueryPaymentConfirmDTO dto = new QueryPaymentConfirmDTO();
|
||||||
dto.setWechatAppId(wechatAppId);
|
// dto.setWechatAppId(wechatAppId);
|
||||||
dto.setPaymentId(record.getPaymentId());
|
// dto.setPaymentId(record.getPaymentId());
|
||||||
QueryPaymentConfirmDetailResponse response = adapayService.queryPaymentConfirmList(dto);
|
// QueryPaymentConfirmDetailResponse response = adapayService.queryPaymentConfirmList(dto);
|
||||||
if (response != null && CollectionUtils.isNotEmpty(response.getPaymentConfirms())) {
|
// if (response != null && CollectionUtils.isNotEmpty(response.getPaymentConfirms())) {
|
||||||
for (QueryPaymentConfirmDetailResponse.PaymentConfirmInfo paymentConfirm : response.getPaymentConfirms()) {
|
// for (QueryPaymentConfirmDetailResponse.PaymentConfirmInfo paymentConfirm : response.getPaymentConfirms()) {
|
||||||
JSONObject jsonObject = JSON.parseObject(paymentConfirm.getDescription());
|
// JSONObject jsonObject = JSON.parseObject(paymentConfirm.getDescription());
|
||||||
if (StringUtils.equals(jsonObject.getString("orderCode"), orderCode)) {
|
// if (StringUtils.equals(jsonObject.getString("orderCode"), orderCode)) {
|
||||||
// 订单号对的上,累计分账金额
|
// // 订单号对的上,累计分账金额
|
||||||
resultAmt = resultAmt.add(new BigDecimal(paymentConfirm.getConfirmAmt()));
|
// resultAmt = resultAmt.add(new BigDecimal(paymentConfirm.getConfirmAmt()));
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
return resultAmt;
|
// return resultAmt;
|
||||||
}
|
// }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 余额支付订单逻辑
|
* 余额支付订单逻辑
|
||||||
* 去除赠送金额相关的代码
|
* 去除赠送金额相关的代码
|
||||||
* @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();
|
||||||
BigDecimal chargeAmount = dto.getPayAmount();
|
// BigDecimal chargeAmount = dto.getPayAmount();
|
||||||
// 查询该会员的余额
|
// // 查询该会员的余额
|
||||||
MemberVO memberVO = memberBasicInfoService.queryMemberInfoByMemberId(dto.getMemberId());
|
// MemberVO memberVO = memberBasicInfoService.queryMemberInfoByMemberId(dto.getMemberId());
|
||||||
BigDecimal totalAccountAmount = memberVO.getTotalAccountAmount();
|
// BigDecimal totalAccountAmount = memberVO.getTotalAccountAmount();
|
||||||
|
//
|
||||||
if (totalAccountAmount.compareTo(chargeAmount) < 0) {
|
// if (totalAccountAmount.compareTo(chargeAmount) < 0) {
|
||||||
// 总余额小于充电金额
|
// // 总余额小于充电金额
|
||||||
throw new BusinessException(ReturnCodeEnum.CODE_BALANCE_IS_INSUFFICIENT);
|
// throw new BusinessException(ReturnCodeEnum.CODE_BALANCE_IS_INSUFFICIENT);
|
||||||
}
|
// }
|
||||||
BigDecimal principalAmount = memberVO.getPrincipalBalance(); // 会员剩余本金金额
|
// BigDecimal principalAmount = memberVO.getPrincipalBalance(); // 会员剩余本金金额
|
||||||
BigDecimal giftAmount = memberVO.getGiftBalance(); // 会员剩余赠送余额
|
// BigDecimal giftAmount = memberVO.getGiftBalance(); // 会员剩余赠送余额
|
||||||
|
//
|
||||||
BigDecimal principalPay = null; // 30
|
// BigDecimal principalPay = null; // 30
|
||||||
BigDecimal giftPay = null; // 10
|
// BigDecimal giftPay = null; // 10
|
||||||
// 先扣除本金金额,再扣除赠送金额
|
// // 先扣除本金金额,再扣除赠送金额
|
||||||
BigDecimal subtract = principalAmount.subtract(chargeAmount);
|
// BigDecimal subtract = principalAmount.subtract(chargeAmount);
|
||||||
if (subtract.compareTo(BigDecimal.ZERO) >= 0) {
|
// if (subtract.compareTo(BigDecimal.ZERO) >= 0) {
|
||||||
principalPay = chargeAmount;
|
// principalPay = chargeAmount;
|
||||||
} else {
|
// } else {
|
||||||
if (principalAmount.compareTo(BigDecimal.ZERO) > 0) {
|
// if (principalAmount.compareTo(BigDecimal.ZERO) > 0) {
|
||||||
principalPay = principalAmount;
|
// principalPay = principalAmount;
|
||||||
}
|
// }
|
||||||
giftPay = subtract.negate();
|
// giftPay = subtract.negate();
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
// 更新会员钱包
|
// // 更新会员钱包
|
||||||
UpdateMemberBalanceDTO updateMemberBalanceDTO = UpdateMemberBalanceDTO.builder()
|
// UpdateMemberBalanceDTO updateMemberBalanceDTO = UpdateMemberBalanceDTO.builder()
|
||||||
.memberId(dto.getMemberId())
|
// .memberId(dto.getMemberId())
|
||||||
.type(MemberWalletEnum.TYPE_OUT.getValue())
|
// .type(MemberWalletEnum.TYPE_OUT.getValue())
|
||||||
.subType(MemberWalletEnum.SUBTYPE_PAYMENT_FOR_ORDER.getValue())
|
// .subType(MemberWalletEnum.SUBTYPE_PAYMENT_FOR_ORDER.getValue())
|
||||||
.updatePrincipalBalance(principalPay)
|
// .updatePrincipalBalance(principalPay)
|
||||||
.updateGiftBalance(giftPay)
|
// .updateGiftBalance(giftPay)
|
||||||
.relatedOrderCode(orderCode)
|
// .relatedOrderCode(orderCode)
|
||||||
.build();
|
// .build();
|
||||||
memberBasicInfoService.updateMemberBalance(updateMemberBalanceDTO);
|
// memberBasicInfoService.updateMemberBalance(updateMemberBalanceDTO);
|
||||||
|
//
|
||||||
// 查询余额充值有剩余的记录
|
// // 查询余额充值有剩余的记录
|
||||||
List<BalanceDeductionAmountVO> list = calculateTheBalanceDeductionAmount(dto.getMemberId(), chargeAmount);
|
// List<BalanceDeductionAmountVO> list = calculateTheBalanceDeductionAmount(dto.getMemberId(), chargeAmount);
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
// 记录流水
|
// // 记录流水
|
||||||
if (principalPay != null) {
|
// if (principalPay != null) {
|
||||||
payRecordList.add(OrderPayRecord.builder()
|
// payRecordList.add(OrderPayRecord.builder()
|
||||||
.orderCode(orderCode)
|
// .orderCode(orderCode)
|
||||||
.payMode(OrderPayRecordEnum.PRINCIPAL_BALANCE_PAYMENT.getValue())
|
// .payMode(OrderPayRecordEnum.PRINCIPAL_BALANCE_PAYMENT.getValue())
|
||||||
.payAmount(principalPay)
|
// .payAmount(principalPay)
|
||||||
.acquirer(AcquirerEnum.LOCAL.getValue())
|
// .acquirer(AcquirerEnum.LOCAL.getValue())
|
||||||
.createBy(dto.getMemberId())
|
// .createBy(dto.getMemberId())
|
||||||
.build());
|
// .build());
|
||||||
}
|
// }
|
||||||
if (giftPay != null) {
|
// if (giftPay != null) {
|
||||||
payRecordList.add(OrderPayRecord.builder()
|
// payRecordList.add(OrderPayRecord.builder()
|
||||||
.orderCode(orderCode)
|
// .orderCode(orderCode)
|
||||||
.payMode(OrderPayRecordEnum.GIFT_BALANCE_PAYMENT.getValue())
|
// .payMode(OrderPayRecordEnum.GIFT_BALANCE_PAYMENT.getValue())
|
||||||
.payAmount(giftPay)
|
// .payAmount(giftPay)
|
||||||
.acquirer(AcquirerEnum.LOCAL.getValue())
|
// .acquirer(AcquirerEnum.LOCAL.getValue())
|
||||||
.createBy(dto.getMemberId())
|
// .createBy(dto.getMemberId())
|
||||||
.build());
|
// .build());
|
||||||
}
|
// }
|
||||||
// 余额支付可以直接调支付回调方法
|
// // 余额支付可以直接调支付回调方法
|
||||||
PayOrderSuccessCallbackDTO callbackDTO = PayOrderSuccessCallbackDTO.builder()
|
// PayOrderSuccessCallbackDTO callbackDTO = PayOrderSuccessCallbackDTO.builder()
|
||||||
.orderCode(orderCode)
|
// .orderCode(orderCode)
|
||||||
.payAmount(chargeAmount)
|
// .payAmount(chargeAmount)
|
||||||
.payMode(dto.getPayMode())
|
// .payMode(dto.getPayMode())
|
||||||
.startMode(dto.getStartMode())
|
// .startMode(dto.getStartMode())
|
||||||
.acquirer(AcquirerEnum.LOCAL.getValue())
|
// .acquirer(AcquirerEnum.LOCAL.getValue())
|
||||||
.build();
|
// .build();
|
||||||
payOrderSuccessCallback(callbackDTO);
|
// payOrderSuccessCallback(callbackDTO);
|
||||||
|
//
|
||||||
// 余额支付订单 记录会员交易流水
|
// // 余额支付订单 记录会员交易流水
|
||||||
MemberTransactionRecord record = MemberTransactionRecord.builder()
|
// MemberTransactionRecord record = MemberTransactionRecord.builder()
|
||||||
.orderCode(orderCode)
|
// .orderCode(orderCode)
|
||||||
.scenarioType(ScenarioEnum.ORDER.getValue())
|
// .scenarioType(ScenarioEnum.ORDER.getValue())
|
||||||
.memberId(memberVO.getMemberId())
|
// .memberId(memberVO.getMemberId())
|
||||||
.actionType(ActionTypeEnum.FORWARD.getValue())
|
// .actionType(ActionTypeEnum.FORWARD.getValue())
|
||||||
.payMode(PayModeEnum.PAYMENT_OF_BALANCE.getValue())
|
// .payMode(PayModeEnum.PAYMENT_OF_BALANCE.getValue())
|
||||||
.paymentInstitutions(PaymentInstitutionsEnum.LOCAL_ACCOUNTS.getValue())
|
// .paymentInstitutions(PaymentInstitutionsEnum.LOCAL_ACCOUNTS.getValue())
|
||||||
.amount(dto.getPayAmount()) // 单位元
|
// .amount(dto.getPayAmount()) // 单位元
|
||||||
.build();
|
// .build();
|
||||||
memberTransactionRecordService.insertSelective(record);
|
// memberTransactionRecordService.insertSelective(record);
|
||||||
|
//
|
||||||
// 订单支付流水入库
|
// // 订单支付流水入库
|
||||||
if (CollectionUtils.isNotEmpty(payRecordList)) {
|
// if (CollectionUtils.isNotEmpty(payRecordList)) {
|
||||||
orderPayRecordService.batchInsert(payRecordList);
|
// orderPayRecordService.batchInsert(payRecordList);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void balancePayOrderV2(PayOrderDTO dto) {
|
public void balancePayOrderV2(PayOrderDTO dto) {
|
||||||
|
|||||||
Reference in New Issue
Block a user