From f2c2c4a2962f5b12820a42db62b7e0b6a5f970f3 Mon Sep 17 00:00:00 2001 From: 18650502300 <18650502300@163.com> Date: Thu, 20 Feb 2025 17:36:54 +0800 Subject: [PATCH] 111 --- .../callback/service/impl/CallbackServiceImpl.java | 13 +++++++------ .../service/impl/ChangeBalanceServiceImpl.java | 6 +++--- .../java/com/ruoyi/ss/order/mapper/OrderMapper.xml | 2 +- .../ss/refund/service/impl/RefundValidatormpl.java | 2 +- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/share-space-system/src/main/java/com/ruoyi/ss/callback/service/impl/CallbackServiceImpl.java b/share-space-system/src/main/java/com/ruoyi/ss/callback/service/impl/CallbackServiceImpl.java index 9893efc..31f6c78 100644 --- a/share-space-system/src/main/java/com/ruoyi/ss/callback/service/impl/CallbackServiceImpl.java +++ b/share-space-system/src/main/java/com/ruoyi/ss/callback/service/impl/CallbackServiceImpl.java @@ -408,7 +408,6 @@ public class CallbackServiceImpl implements ICallbackService { * 微信退款回调 */ @Override - @Transactional public void weChatRefund(HttpServletRequest request) { String body = HttpUtils.getBody(request); CallbackLog etCallbackLog = new CallbackLog(); @@ -457,7 +456,7 @@ public class CallbackServiceImpl implements ICallbackService { Order order = new Order(); order.setOrderNo(payBillVO.getOrderNo()); order.setStatus(ServiceConstants.ORDER_STATUS_REFUNDED); - int updateOrder = orderService.updateRlOrder(order); + int updateOrder = orderService.updateRlOrderByOrderNo(order); ServiceUtil.assertion(updateOrder == 0, "更新订单状态失败"); // 3.更新支付单中的退款金额为已退款 @@ -466,7 +465,7 @@ public class CallbackServiceImpl implements ICallbackService { PayBillQuery updateQuery = new PayBillQuery(); updateQuery.setStatusList(PayBillStatus.payedList()); updateQuery.setPayId(refund.getPayId()); - int update = paymentService.updatePayBill(closeData); + int update = paymentService.updateByQuery(closeData,updateQuery); ServiceUtil.assertion(update != 1, "修改订单状态失败"); // 3.1记录(转移)已退款金额 @@ -520,10 +519,12 @@ public class CallbackServiceImpl implements ICallbackService { .setScale(2, RoundingMode.HALF_UP); totalRefundCalculated = totalRefundCalculated.add(refundForDetail); detail.setRefundAmount(refundForDetail); + int i = dividendDetailService.updateRefundAmount(detail.getId(), refundForDetail); + ServiceUtil.assertion(i == 0, "更新分成表退款金额失败"); } // 检查总分红比例是否为100% - ServiceUtil.assertion(!totalDividendProportion.equals(new BigDecimal("100")), "总分红比例必须为100%"); + ServiceUtil.assertion(!(totalDividendProportion.compareTo(new BigDecimal("100")) == 0), "总分红比例必须为100%"); // 如果总退款金额有误差,由商户承担差额 BigDecimal difference = totalRefundCalculated.subtract(refundAmount).abs(); @@ -559,11 +560,11 @@ public class CallbackServiceImpl implements ICallbackService { // 余额退款 for (DividendDetailVO dividendDetail : refundList) { UserVO userVO = userService.selectUserById(dividendDetail.getPartnerId()); - ServiceUtil.assertion(userVO.getBalance().compareTo(dividendDetail.getBeRefundedAmount()) < 0, "可退款金额不足"); + ServiceUtil.assertion(userVO.getBalance().compareTo(dividendDetail.getRefundAmount()) < 0, "可退款金额不足"); /* 记录账变 */ int i = changeBalanceService.generateChangeBalance(dividendDetail.getOrderNo(), null, ServiceConstants.FLOW_TYPE_DISBURSE, - ServiceConstants.REFUND, dividendDetail.getBeRefundedAmount(), dividendDetail.getPartnerId(), dividendDetail.getPartnerName(), dividendDetail.getPartnerPhone(),dividendDetail.getPartnerType()); + ServiceConstants.REFUND, dividendDetail.getRefundAmount(), dividendDetail.getPartnerId(), dividendDetail.getPartnerName(), dividendDetail.getPartnerPhone(),dividendDetail.getPartnerType()); ServiceUtil.assertion(i == 0, "更新记录账变失败"); update++; } diff --git a/share-space-system/src/main/java/com/ruoyi/ss/changeBalance/service/impl/ChangeBalanceServiceImpl.java b/share-space-system/src/main/java/com/ruoyi/ss/changeBalance/service/impl/ChangeBalanceServiceImpl.java index b5d0013..169e211 100644 --- a/share-space-system/src/main/java/com/ruoyi/ss/changeBalance/service/impl/ChangeBalanceServiceImpl.java +++ b/share-space-system/src/main/java/com/ruoyi/ss/changeBalance/service/impl/ChangeBalanceServiceImpl.java @@ -184,11 +184,11 @@ public class ChangeBalanceServiceImpl implements IChangeBalanceService reason = businessType.getDescription() + orderNo; if (businessType == BusinessType.SYSTEM_MODIFY) { rlChangeBalance.setCreateBy(getUsername()); - if (type.equals(FLOW_TYPE_DISBURSE)) { - changeAmount = changeAmount.negate(); - } reason = changeType + payFee + "元"; } + if (type.equals(FLOW_TYPE_DISBURSE)) { + changeAmount = changeAmount.negate(); + } } rlChangeBalance.setReason(reason); BigDecimal finalChangeAmount = changeAmount; diff --git a/share-space-system/src/main/java/com/ruoyi/ss/order/mapper/OrderMapper.xml b/share-space-system/src/main/java/com/ruoyi/ss/order/mapper/OrderMapper.xml index 53cfbf0..aee98c0 100644 --- a/share-space-system/src/main/java/com/ruoyi/ss/order/mapper/OrderMapper.xml +++ b/share-space-system/src/main/java/com/ruoyi/ss/order/mapper/OrderMapper.xml @@ -516,7 +516,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update ss_order set refund = refund + #{refundAmount} - where order_no = #{orderNo} and refund paid + where order_no = #{orderNo} and refund pay_fee diff --git a/share-space-system/src/main/java/com/ruoyi/ss/refund/service/impl/RefundValidatormpl.java b/share-space-system/src/main/java/com/ruoyi/ss/refund/service/impl/RefundValidatormpl.java index 09c66e9..3f02e65 100644 --- a/share-space-system/src/main/java/com/ruoyi/ss/refund/service/impl/RefundValidatormpl.java +++ b/share-space-system/src/main/java/com/ruoyi/ss/refund/service/impl/RefundValidatormpl.java @@ -52,7 +52,7 @@ public class RefundValidatormpl implements IRefundValidator ServiceUtil.assertion(ORDER_PAY_STATUS_NON_PAYMENT.equals(orderVO.getPaid()), "订单未支付,不能发起退款"); ServiceUtil.assertion(dto.getAmount().compareTo(BigDecimal.ZERO) <= 0, "退款金额不能为0"); ServiceUtil.assertion(dto.getAmount().compareTo(orderVO.getPayFee()) > 0, "退款金额不能超过订单金额"); - ServiceUtil.assertion(!PayBillStatus.PAY_SUCCESS.getStatus().equals(payBillVO.getStatus()), "支付单状态非:"+PayBillStatus.PAY_SUCCESS.getMsg()+",不允许退款"); + ServiceUtil.assertion(!PayBillStatus.PAY_SUCCESS.getStatus().equals(payBillVO.getStatus()), "支付单状态非"+PayBillStatus.PAY_SUCCESS.getMsg()+",不允许退款"); RefundBO bo = new RefundBO(); bo.setOrder(orderVO);