From 74ae88c7fe1143563b075acd63d274ca1959c40b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Thu, 30 Oct 2025 14:47:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E9=94=80=E8=AE=A2=E5=8D=95=E9=80=80?= =?UTF-8?q?=E6=AC=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/MkDistributionUserService.java | 5 +++- .../com/czg/constant/TableValueConstant.java | 1 + .../main/resources/mapper/UserInfoMapper.xml | 1 - .../impl/MkDistributionUserServiceImpl.java | 30 ++++++++++++++++--- .../order/service/impl/PayServiceImpl.java | 5 ++++ 5 files changed, 36 insertions(+), 6 deletions(-) diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkDistributionUserService.java b/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkDistributionUserService.java index e781b4ca..d911b8c7 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkDistributionUserService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkDistributionUserService.java @@ -1,6 +1,7 @@ package com.czg.market.service; import com.czg.account.entity.UserInfo; +import com.czg.constant.TableValueConstant; import com.czg.market.dto.MkDistributionUserDTO; import com.czg.market.dto.MkDistributionWithdrawFlowDTO; import com.czg.market.entity.MkDistributionUser; @@ -113,7 +114,9 @@ public interface MkDistributionUserService extends IService */ void rechargeCallBack(Long shopId, BigDecimal amount, Long paymentId); - BigDecimal updateShopInfoAmount(Long shopId, BigDecimal changeAmount, Long sourceId); + BigDecimal updateShopInfoAmount(Long shopId, BigDecimal changeAmount, Long sourceId, TableValueConstant.DistributionAmountFlow.Type type, String remark); + + void refund(String orderNo); /** * 发放分销奖励 diff --git a/cash-common/cash-common-tools/src/main/java/com/czg/constant/TableValueConstant.java b/cash-common/cash-common-tools/src/main/java/com/czg/constant/TableValueConstant.java index b96c3b89..3de30ddc 100644 --- a/cash-common/cash-common-tools/src/main/java/com/czg/constant/TableValueConstant.java +++ b/cash-common/cash-common-tools/src/main/java/com/czg/constant/TableValueConstant.java @@ -45,6 +45,7 @@ public interface TableValueConstant { @Getter enum Type { MANUAL_RECHARGE("manual_recharge", "手动充值"), + REFUND("refund", "退款"), SUB("sub", "系统扣减"), OPEN("open", "分销员购买"), MANUAL_SUB("manual_sub", "手动扣减"), diff --git a/cash-service/account-service/src/main/resources/mapper/UserInfoMapper.xml b/cash-service/account-service/src/main/resources/mapper/UserInfoMapper.xml index 6f3126c4..e25bef7c 100644 --- a/cash-service/account-service/src/main/resources/mapper/UserInfoMapper.xml +++ b/cash-service/account-service/src/main/resources/mapper/UserInfoMapper.xml @@ -10,7 +10,6 @@ distribution_amount = distribution_amount + #{amount} where id = #{userId} - and distribution_amount + #{amount} >= 0 diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionUserServiceImpl.java b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionUserServiceImpl.java index b66a6fcc..22daf004 100644 --- a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionUserServiceImpl.java +++ b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionUserServiceImpl.java @@ -605,7 +605,7 @@ public class MkDistributionUserServiceImpl extends ServiceImpl { + MkDistributionFlow refundFlow = BeanUtil.copyProperties(item, MkDistributionFlow.class); + refundFlow.setStatus(TableValueConstant.DistributionFlow.Status.REFUND.getCode()); + refundFlow.setSourceId(item.getId()); + refundFlow.setId(null); + refundFlow.setCreateTime(DateUtil.date().toLocalDateTime()); + refundFlow.setUpdateTime(DateUtil.date().toLocalDateTime()); + if (TableValueConstant.DistributionFlow.Status.PENDING.getCode().equals(item.getStatus())) { + item.setStatus(TableValueConstant.DistributionFlow.Status.SUCCESS.getCode()); + updateIncome(item.getRewardAmount().negate(), BigDecimal.ZERO, BigDecimal.ZERO, item.getDistributionUserId(), item.getSourceShopUserId(), item.getShopId(), item.getLevel()); + distributionFlowService.updateById(item); + }else { + // 执行扣款 + updateIncome(BigDecimal.ZERO, item.getRewardAmount().negate(), BigDecimal.ZERO, item.getDistributionUserId(), item.getSourceShopUserId(), item.getShopId(), item.getLevel()); + updateShopInfoAmount(item.getShopId(), item.getRewardAmount(), item.getId(), TableValueConstant.DistributionAmountFlow.Type.REFUND, "分销回退"); + } + distributionFlowService.save(refundFlow); + }); + } + @Override public void distribute(Long sourceId, String orderNo, BigDecimal amount, Long sourceUserId, Long shopId, String type) { MkDistributionDeliver deliver = new MkDistributionDeliver().setSourceId(sourceId).setOrderNo(orderNo).setShopId(shopId).setType(type).setStatus("success"); diff --git a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/PayServiceImpl.java b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/PayServiceImpl.java index 6c4276ab..b30ea062 100644 --- a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/PayServiceImpl.java +++ b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/PayServiceImpl.java @@ -114,6 +114,8 @@ public class PayServiceImpl implements PayService { private MkShopRechargeDetailService shopRechargeDetailService; @Resource private TbMemberConfigService memberConfigService; + @Resource + private MkDistributionUserService distributionUserService; private final BigDecimal MONEY_RATE = new BigDecimal("100"); @@ -788,6 +790,9 @@ public class PayServiceImpl implements PayService { if (!returnProMap.isEmpty()) { rabbitPublisher.sendOrderRefundMsg(JSONObject.toJSONString(Map.of("orderId", orderInfo.getId(), "returnProMap", returnProMap))); } + + // 退款分销还原 + distributionUserService.refund(orderInfo.getOrderNo()); return CzgResult.success(); }