From 9aa109735b29215f9a64426300095706fd137d0b Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 01 一月 2025 17:49:24 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java |   93 ++++++++++++++++++++++++++++------------------
 1 files changed, 57 insertions(+), 36 deletions(-)

diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java
index b8d4e84..ef55d38 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java
@@ -8,6 +8,7 @@
 import com.ruoyi.account.api.model.BalanceChangeRecord;
 import com.ruoyi.account.api.model.UserPoint;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.order.service.CommissionService;
 import com.ruoyi.order.service.OrderGoodService;
 import com.ruoyi.order.service.OrderService;
@@ -97,17 +98,30 @@
                 BigDecimal superiorSubcommission = orderGood.getSuperiorSubcommission();
                 //上级获得分佣积分(直推上级|直帮上级)
                 Integer superiorRebatePoints = orderGood.getSuperiorRebatePoints();
-                String[] split = orderGood.getSuperiorPriceType().split(",");
-                for (String s : split) {
-                    //直推上级
-                    if("1".equals(s)){
-                        ztsj_price = ztsj_price.add(superiorSubcommission);
-                        ztsj_point += superiorRebatePoints;
+                if(StringUtils.isNotEmpty(orderGood.getSuperiorPriceType())){
+                    String[] split = orderGood.getSuperiorPriceType().split(",");
+                    for (String s : split) {
+                        //直推上级
+                        if("1".equals(s)){
+                            ztsj_price = ztsj_price.add(superiorSubcommission);
+                        }
+                        //直帮上级
+                        if("2".equals(s)){
+                            zbsj_price = zbsj_price.add(superiorSubcommission);
+                        }
                     }
-                    //直帮上级
-                    if("2".equals(s)){
-                        zbsj_price = zbsj_price.add(superiorSubcommission);
-                        zbsj_point += superiorRebatePoints;
+                }
+                if(StringUtils.isNotEmpty(orderGood.getSuperiorType())){
+                    String[] split = orderGood.getSuperiorType().split(",");
+                    for (String s : split) {
+                        //直推上级
+                        if("1".equals(s)){
+                            ztsj_point += superiorRebatePoints;
+                        }
+                        //直帮上级
+                        if("2".equals(s)){
+                            zbsj_point += superiorRebatePoints;
+                        }
                     }
                 }
                 
@@ -140,14 +154,17 @@
                 }
                 if(ztsj_point > 0){
                     PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
-                    int earnPoint1 = ztsj_point;
+                    int earnPoint1 = 0;
                     //计算可用积分比例
                     if(null != pointSetting && 1 == pointSetting.getSharePointOpen()){
-                        earnPoint1 = new BigDecimal(earnPoint1).multiply(pointSetting.getSharePoint().divide(new BigDecimal(100))).intValue();
+                        earnPoint1 = new BigDecimal(ztsj_point).multiply(pointSetting.getSharePoint().divide(new BigDecimal(100))).intValue();
                     }
                     inviteUser.setSharePoint(inviteUser.getSharePoint() + ztsj_point);
                     inviteUser.setLavePoint(inviteUser.getLavePoint() + ztsj_point);
                     inviteUser.setAvailablePoint(inviteUser.getAvailablePoint() + earnPoint1);
+                    if(null != pointSetting && 1 == pointSetting.getSharePointGift()){
+                        inviteUser.setTransferablePoint(inviteUser.getTransferablePoint() + earnPoint1);
+                    }
                     inviteUser.setTotalPoint(inviteUser.getTotalPoint() + ztsj_point);
                 }
                 appUserClient.editAppUserById(inviteUser);
@@ -192,14 +209,17 @@
                 }
                 if(zbsj_point > 0){
                     PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
-                    int earnPoint1 = zbsj_point;
+                    int earnPoint1 = 0;
                     //计算可用积分比例
                     if(null != pointSetting && 1 == pointSetting.getSharePointOpen()){
-                        earnPoint1 = new BigDecimal(earnPoint1).multiply(pointSetting.getSharePoint().divide(new BigDecimal(100))).intValue();
+                        earnPoint1 = new BigDecimal(zbsj_point).multiply(pointSetting.getSharePoint().divide(new BigDecimal(100))).intValue();
                     }
                     superiorLeader.setSharePoint(superiorLeader.getSharePoint() + zbsj_point);
                     superiorLeader.setLavePoint(superiorLeader.getLavePoint() + zbsj_point);
                     superiorLeader.setAvailablePoint(superiorLeader.getAvailablePoint() + earnPoint1);
+                    if(null != pointSetting && 1 == pointSetting.getSharePointGift()){
+                        superiorLeader.setTransferablePoint(superiorLeader.getTransferablePoint() + earnPoint1);
+                    }
                     superiorLeader.setTotalPoint(superiorLeader.getTotalPoint() + zbsj_point);
                 }
                 appUserClient.editAppUserById(superiorLeader);
@@ -242,10 +262,6 @@
                 Integer lavePoint = shopAppUser.getLavePoint();
                 Integer shopLavePoint = shop.getLavePoint();
                 if(hxmd_price.compareTo(BigDecimal.ZERO) > 0){
-                    shopAppUser.setTotalDistributionAmount(shopAppUser.getTotalDistributionAmount().add(hxmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
-                    shopAppUser.setBalance(shopAppUser.getBalance().add(hxmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
-                    shopAppUser.setWithdrawableAmount(shopAppUser.getWithdrawableAmount().add(hxmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
-                    shopAppUser.setShopServiceFee(shopAppUser.getShopServiceFee().add(hxmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
                     //门店返佣
                     shop.setGiveawayAllMoney(shop.getGiveawayAllMoney().add(hxmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
                     shop.setServerGiveawayMoney(shop.getServerGiveawayMoney().add(hxmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
@@ -254,15 +270,18 @@
                 }
                 if(hxmd_point > 0){
                     PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
-                    int earnPoint1 = hxmd_point;
+                    int earnPoint1 = 0;
                     //计算可用积分比例
                     if(null != pointSetting && 1 == pointSetting.getShopPointOpen()){
-                        earnPoint1 = new BigDecimal(earnPoint1).multiply(pointSetting.getShopPoint().divide(new BigDecimal(100))).intValue();
+                        earnPoint1 = new BigDecimal(hxmd_point).multiply(pointSetting.getShopPoint().divide(new BigDecimal(100))).intValue();
                     }
                     shopAppUser.setLavePoint(shopAppUser.getLavePoint() + hxmd_point);
                     shopAppUser.setAvailablePoint(shopAppUser.getAvailablePoint() + earnPoint1);
+                    if(null != pointSetting && 1 == pointSetting.getShopPointGift()){
+                        shopAppUser.setTransferablePoint(shopAppUser.getTransferablePoint() + earnPoint1);
+                    }
                     shopAppUser.setTotalPoint(shopAppUser.getTotalPoint() + hxmd_point);
-                    shopAppUser.setShopAchievementPoint(shopAppUser.getShopAchievementPoint() + bdmdsj_point);
+                    shopAppUser.setShopAchievementPoint(shopAppUser.getShopAchievementPoint() + hxmd_point);
                     //门店返佣
                     shop.setShopAllPoint(shop.getShopAllPoint() + hxmd_point);
                     shop.setServerPoint(shop.getServerPoint() + hxmd_point);
@@ -336,13 +355,16 @@
                     Integer lavePoint = technicianAppUser.getLavePoint();
                     if(js_point > 0){
                         PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
-                        int earnPoint1 = js_point;
+                        int earnPoint1 = 0;
                         //计算可用积分比例
                         if(null != pointSetting && 1 == pointSetting.getPersonPointOpen()){
-                            earnPoint1 = new BigDecimal(earnPoint1).multiply(pointSetting.getPersonPoint().divide(new BigDecimal(100))).intValue();
+                            earnPoint1 = new BigDecimal(js_point).multiply(pointSetting.getPersonPoint().divide(new BigDecimal(100))).intValue();
                         }
                         technicianAppUser.setLavePoint(technicianAppUser.getLavePoint() + js_point);
                         technicianAppUser.setAvailablePoint(technicianAppUser.getAvailablePoint() + earnPoint1);
+                        if(null != pointSetting && 1 == pointSetting.getPersonPointGift()){
+                            technicianAppUser.setTransferablePoint(technicianAppUser.getTransferablePoint() + earnPoint1);
+                        }
                         technicianAppUser.setTotalPoint(technicianAppUser.getTotalPoint() + js_point);
                         technicianAppUser.setTotalPerformancePoint(technicianAppUser.getTotalPerformancePoint() + js_point);
                     }
@@ -375,10 +397,6 @@
                     Integer lavePoint = bdShopAppUser.getLavePoint();
                     Integer shopLavePoint = shop1.getLavePoint();
                     if(bdmd_price.compareTo(BigDecimal.ZERO) > 0){
-                        bdShopAppUser.setTotalDistributionAmount(bdShopAppUser.getTotalDistributionAmount().add(bdmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
-                        bdShopAppUser.setBalance(bdShopAppUser.getBalance().add(bdmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
-                        bdShopAppUser.setWithdrawableAmount(bdShopAppUser.getWithdrawableAmount().add(bdmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
-                        bdShopAppUser.setShopCommission(bdShopAppUser.getShopCommission().add(bdmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
                         //门店返佣
                         shop1.setGiveawayAllMoney(shop1.getGiveawayAllMoney().add(bdmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
                         shop1.setGiveawayMoney(shop1.getGiveawayMoney().add(bdmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
@@ -387,15 +405,18 @@
                     }
                     if(bdmd_point > 0){
                         PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
-                        int earnPoint1 = bdmd_point;
+                        int earnPoint1 = 0;
                         //计算可用积分比例
                         if(null != pointSetting && 1 == pointSetting.getShopSharePointOpen()){
-                            earnPoint1 = new BigDecimal(earnPoint1).multiply(pointSetting.getShopSharePoint().divide(new BigDecimal(100))).intValue();
+                            earnPoint1 = new BigDecimal(bdmd_point).multiply(pointSetting.getShopSharePoint().divide(new BigDecimal(100))).intValue();
                         }
                         bdShopAppUser.setLavePoint(bdShopAppUser.getLavePoint() + bdmd_point);
                         bdShopAppUser.setAvailablePoint(bdShopAppUser.getAvailablePoint() + earnPoint1);
+                        if(null != pointSetting && 1 == pointSetting.getShopSharePointGift()){
+                            bdShopAppUser.setTransferablePoint(bdShopAppUser.getTransferablePoint() + earnPoint1);
+                        }
                         bdShopAppUser.setTotalPoint(bdShopAppUser.getTotalPoint() + bdmd_point);
-                        bdShopAppUser.setShopSharePoint(bdShopAppUser.getShopSharePoint() + bdmdsj_point);
+                        bdShopAppUser.setShopSharePoint(bdShopAppUser.getShopSharePoint() + bdmd_point);
                         //门店返佣
                         shop1.setShopAllPoint(shop1.getShopAllPoint() + bdmd_point);
                         shop1.setSharePoint(shop1.getSharePoint() + bdmd_point);
@@ -463,7 +484,7 @@
             }
     
             //上级门店分佣
-            Integer pid = shopClient.getShopById(order.getShopId()).getData().getPid();
+            Integer pid = shop1.getPid();
             Shop shop2 = shopClient.getShopById(pid).getData();
             if(null != shop2){
                 AppUser sjShopAppUser = appUserClient.getAppUserById(shop2.getAppUserId());
@@ -473,9 +494,6 @@
                     Integer lavePoint = sjShopAppUser.getLavePoint();
                     Integer shopLavePoint = shop2.getLavePoint();
                     if(bdmdsj_price.compareTo(BigDecimal.ZERO) > 0){
-                        sjShopAppUser.setTotalDistributionAmount(sjShopAppUser.getTotalDistributionAmount().add(bdmdsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
-                        sjShopAppUser.setBalance(sjShopAppUser.getBalance().add(bdmdsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
-                        sjShopAppUser.setWithdrawableAmount(sjShopAppUser.getWithdrawableAmount().add(bdmdsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
                         //门店返佣
                         shop2.setGiveawayAllMoney(shop2.getGiveawayAllMoney().add(bdmdsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
                         shop2.setLowerLevelGiveawayMoney(shop2.getLowerLevelGiveawayMoney().add(bdmdsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
@@ -484,13 +502,16 @@
                     }
                     if(bdmdsj_point > 0){
                         PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
-                        int earnPoint1 = bdmdsj_point;
+                        int earnPoint1 = 0;
                         //计算可用积分比例
                         if(null != pointSetting && 1 == pointSetting.getShopSharePointOpen()){
-                            earnPoint1 = new BigDecimal(earnPoint1).multiply(pointSetting.getShopSharePoint().divide(new BigDecimal(100))).intValue();
+                            earnPoint1 = new BigDecimal(bdmdsj_point).multiply(pointSetting.getShopSharePoint().divide(new BigDecimal(100))).intValue();
                         }
                         sjShopAppUser.setLavePoint(sjShopAppUser.getLavePoint() + bdmdsj_point);
                         sjShopAppUser.setAvailablePoint(sjShopAppUser.getAvailablePoint() + earnPoint1);
+                        if(null != pointSetting && 1 == pointSetting.getShopSharePointGift()){
+                            sjShopAppUser.setTransferablePoint(sjShopAppUser.getTransferablePoint() + earnPoint1);
+                        }
                         sjShopAppUser.setTotalPoint(sjShopAppUser.getTotalPoint() + bdmdsj_point);
                         sjShopAppUser.setLowerLevelSharePoint(sjShopAppUser.getLowerLevelSharePoint() + bdmdsj_point);
                         //门店返佣

--
Gitblit v1.7.1