From a00c6d07e4c8eb629e5ffe4661dcde2686c1df53 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期五, 18 七月 2025 18:51:08 +0800
Subject: [PATCH] 修改bug 分佣退回  判断是否可以退款

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OrderServiceImpl.java |   32 ++++++++++++++++++++++++++++++--
 1 files changed, 30 insertions(+), 2 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OrderServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OrderServiceImpl.java
index 49bb5c0..b920461 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OrderServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OrderServiceImpl.java
@@ -69,6 +69,10 @@
     private CompanyTypeService companyTypeService;
 
 
+    @Resource
+    private AccountDetailMapper accountDetailMapper;
+
+
     @Override
     public IPage<OrderPageVO> getOrderPage(OrderPageDTO dto) {
         IPage<OrderPageVO> page = new Page<>(dto.getPageNum(), dto.getPageSize());
@@ -614,6 +618,15 @@
             order.setRefundTime(LocalDateTime.now());
             companyMapper.updateById(company);
         }else{
+            // 判断是否能退
+            if(order.getShareUserId()!=null){
+                User user = appUserMapper.selectById(order.getShareUserId());
+                if(user.getBalance().doubleValue()<order.getCommissionPrice().doubleValue()){
+                    throw new ServiceException("退款失败,卖家上级余额不足");
+                }
+            }
+
+
             R r = refundPayMoney(order);//退款
             if (200 == r.getCode()) {
                 //退款申请成功
@@ -683,14 +696,29 @@
         order.setIsRefund(1);
         order.setRefundTime(LocalDateTime.now());
         this.baseMapper.updateById(order);
+
         //将分佣次数加回
-        User user = appUserMapper.selectById(order.getUserId());
-        User inviter = appUserMapper.selectById(user.getInviteId());
+        User inviter = appUserMapper.selectById(company.getUserId());
         if (inviter!=null && inviter.getIsDelete()==0){
             inviter.setInviteNum(inviter.getInviteNum()+1);
             appUserMapper.updateById(inviter);
         }
 
+        // 分佣退回
+        if(order.getShareUserId()!=null && order.getCommissionPrice().doubleValue()>0){
+            User user = appUserMapper.selectById(order.getShareUserId());
+            user.setBalance(user.getBalance().subtract(order.getCommissionPrice()));
+            appUserMapper.updateById(user);
+            AccountDetail accountDetail = new AccountDetail();
+            accountDetail.setUserId(order.getShareUserId());
+            accountDetail.setType(2);
+            accountDetail.setCategory(4);
+            accountDetail.setSourceId(order.getId());
+            accountDetail.setMoney(order.getCommissionPrice());
+            accountDetail.setRemark("订单取消分佣退回");
+            accountDetailMapper.insert(accountDetail);
+        }
+
         //商品状态修改
         company.setStatus(1);
         companyMapper.updateById(company);

--
Gitblit v1.7.1