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