From 1fc8fde81cbf79ebe95e927f9099cf94c2ccc6e5 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Thu, 15 May 2025 17:39:04 +0800 Subject: [PATCH] refactor(mall): 优化退款流程和逻辑 --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java | 61 ++++++++++++++++++------------ 1 files changed, 36 insertions(+), 25 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java index 022811b..4cc2cb2 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java @@ -441,15 +441,6 @@ mallRefundEntity.setState(1); mallRefundEntity.setUpdatedTime(DateUtil.date()); mallRefundMapper.updateById(mallRefundEntity); - mallMoneyFlowService.addMoneyFlow( - mallOrderInfo.getMemberId(), - refundAmount, - ScoreFlowTypeEnum.REFUND.getValue(), - mallOrderInfo.getOrderNo(), - FlowTypeEnum.BALANCE.getValue(), - StrUtil.format(ScoreFlowTypeEnum.REFUND.getDesc(),refundAmount), - 2 - ); List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByNotInStateAndOrderId(3,orderId); if(CollUtil.isEmpty(mallOrderItemList)){ @@ -457,19 +448,38 @@ mallOrderRefund.setStatus(6); mallOrderInfoMapper.updateById(mallOrderRefund); } - memberWalletService.add(refundAmount, mallOrderInfo.getMemberId(), "balance"); + if(refundAmount.compareTo(BigDecimal.ZERO) > 0){ + memberWalletService.add(refundAmount, mallOrderInfo.getMemberId(), "balance"); + mallMoneyFlowService.addMoneyFlow( + mallOrderInfo.getMemberId(), + refundAmount, + ScoreFlowTypeEnum.REFUND.getValue(), + mallOrderInfo.getOrderNo(), + FlowTypeEnum.BALANCE.getValue(), + StrUtil.format(ScoreFlowTypeEnum.REFUND.getDesc(),refundAmount), + 2 + ); + } return new FebsResponse().success().message("退款成功"); } Boolean flag = false; Boolean debug = xcxProperties.getDebug(); if (debug) { - boolean b = weixinServiceUtil.comRefund(orderNo, refundNo, 1, 1, null); - flag = b; + if(refundAmount.compareTo(BigDecimal.ZERO) > 0){ + boolean b = weixinServiceUtil.comRefund(orderNo, refundNo, 1, 1, null); + flag = b; + }else{ + flag = true; + } } else { - log.info("开始调用退款接口。。。退款编号为{}", refundNo); - boolean b = weixinServiceUtil.comRefund(orderNo, refundNo, orderMoney, refundMoney, null); - flag = b; + if(refundAmount.compareTo(BigDecimal.ZERO) > 0){ + log.info("开始调用退款接口。。。退款编号为{}", refundNo); + boolean b = weixinServiceUtil.comRefund(orderNo, refundNo, orderMoney, refundMoney, null); + flag = b; + }else{ + flag = true; + } } if(flag){ @@ -491,16 +501,17 @@ mallRefundEntity.setState(1); mallRefundEntity.setUpdatedTime(DateUtil.date()); mallRefundMapper.updateById(mallRefundEntity); - - mallMoneyFlowService.addMoneyFlow( - mallOrderInfo.getMemberId(), - refundAmount, - ScoreFlowTypeEnum.WECHAT_REFUND.getValue(), - mallOrderInfo.getOrderNo(), - FlowTypeEnum.BALANCE.getValue(), - StrUtil.format(ScoreFlowTypeEnum.WECHAT_REFUND.getDesc(),refundAmount), - 2 - ); + if(refundAmount.compareTo(BigDecimal.ZERO) > 0){ + mallMoneyFlowService.addMoneyFlow( + mallOrderInfo.getMemberId(), + refundAmount, + ScoreFlowTypeEnum.WECHAT_REFUND.getValue(), + mallOrderInfo.getOrderNo(), + FlowTypeEnum.BALANCE.getValue(), + StrUtil.format(ScoreFlowTypeEnum.WECHAT_REFUND.getDesc(),refundAmount), + 2 + ); + } List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByNotInStateAndOrderId(3,orderId); if(CollUtil.isEmpty(mallOrderItemList)){ -- Gitblit v1.9.1