Administrator
2025-05-15 84adeef86c567bbe290265208b05b8559fc7f4f8
refactor(mall): 重构订单退款和资金流水相关逻辑

- 更新了订单退款时的资金流水记录方式
- 从 MoneyFlowTypeEnum 改为 ScoreFlowTypeEnum
- 增加了退款金额的格式化描述
- 统一了余额退款和微信退款的资金流水处理方式
3 files modified
50 ■■■■ changed files
src/main/java/cc/mrbird/febs/common/enumerates/ScoreFlowTypeEnum.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java 27 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java 21 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/common/enumerates/ScoreFlowTypeEnum.java
@@ -6,6 +6,8 @@
public enum ScoreFlowTypeEnum {
    WECHAT_REFUND(15,"退款{}到微信"),
    REFUND(14, "退款{}到余额"),
    /**
     * 抽奖
     */
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java
@@ -2,10 +2,7 @@
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.entity.QueryRequest;
import cc.mrbird.febs.common.enumerates.FlowTypeEnum;
import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum;
import cc.mrbird.febs.common.enumerates.OrderDeliveryStateEnum;
import cc.mrbird.febs.common.enumerates.OrderStatusEnum;
import cc.mrbird.febs.common.enumerates.*;
import cc.mrbird.febs.mall.dto.*;
import cc.mrbird.febs.mall.entity.*;
import cc.mrbird.febs.mall.mapper.*;
@@ -194,7 +191,15 @@
            //用户钱包增加对应的余额
            iApiMallMemberWalletService.addBalance(amount, mallOrderInfo.getMemberId());
            mallMoneyFlowService.addMoneyFlow(mallOrderRefund.getMemberId(), amount, MoneyFlowTypeEnum.REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue());
            mallMoneyFlowService.addMoneyFlow(
                    mallOrderInfo.getMemberId(),
                    amount,
                    ScoreFlowTypeEnum.REFUND.getValue(),
                    mallOrderInfo.getOrderNo(),
                    FlowTypeEnum.BALANCE.getValue(),
                    StrUtil.format(ScoreFlowTypeEnum.REFUND.getDesc(),amount),
                    2
            );
        }
        MallOrderRefundOperation mallOrderRefundOperation = new MallOrderRefundOperation();
@@ -263,7 +268,17 @@
        iApiMallMemberWalletService.addBalance(refundAmount, mallOrderInfo.getMemberId());
        //新增一条资金流水
        mallMoneyFlowService.addMoneyFlow(mallOrderRefund.getMemberId(), refundAmount, MoneyFlowTypeEnum.REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue());
        mallMoneyFlowService.addMoneyFlow(
                mallOrderInfo.getMemberId(),
                refundAmount,
                ScoreFlowTypeEnum.REFUND.getValue(),
                mallOrderInfo.getOrderNo(),
                FlowTypeEnum.BALANCE.getValue(),
                StrUtil.format(ScoreFlowTypeEnum.REFUND.getDesc(),refundAmount),
                2
        );
        return new FebsResponse().success();
    }
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java
@@ -441,7 +441,15 @@
                mallRefundEntity.setState(1);
                mallRefundEntity.setUpdatedTime(DateUtil.date());
                mallRefundMapper.updateById(mallRefundEntity);
                mallMoneyFlowService.addMoneyFlow(mallOrderInfo.getMemberId(), refundAmount, MoneyFlowTypeEnum.REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue(),"余额退款",2);
                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)){
@@ -483,7 +491,16 @@
                mallRefundEntity.setState(1);
                mallRefundEntity.setUpdatedTime(DateUtil.date());
                mallRefundMapper.updateById(mallRefundEntity);
                mallMoneyFlowService.addMoneyFlow(mallOrderInfo.getMemberId(), refundAmount, MoneyFlowTypeEnum.WECHAT_REFUND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.WECHAT.getValue(),"微信退款",2);
                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)){