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);