From 513961ecebcfd0619ede7a7edb7ac5e27de28d26 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期三, 01 一月 2025 17:11:23 +0800
Subject: [PATCH] 增加第三方支付

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java |  122 +++++++++++++++++++++++++++++-----------
 1 files changed, 87 insertions(+), 35 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 6783958..b8d4e84 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
@@ -11,16 +11,10 @@
 import com.ruoyi.order.service.CommissionService;
 import com.ruoyi.order.service.OrderGoodService;
 import com.ruoyi.order.service.OrderService;
-import com.ruoyi.other.api.domain.Shop;
-import com.ruoyi.other.api.domain.ShopBalanceStatement;
-import com.ruoyi.other.api.domain.ShopPoint;
-import com.ruoyi.other.api.domain.Technician;
-import com.ruoyi.other.api.feignClient.ShopBalanceStatementClient;
-import com.ruoyi.other.api.feignClient.ShopClient;
+import com.ruoyi.other.api.domain.*;
+import com.ruoyi.other.api.feignClient.*;
 import com.ruoyi.order.model.Order;
 import com.ruoyi.order.model.OrderGood;
-import com.ruoyi.other.api.feignClient.ShopPointClient;
-import com.ruoyi.other.api.feignClient.TechnicianClient;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -54,6 +48,8 @@
     private ShopPointClient shopPointClient;
     @Resource
     private TechnicianClient technicianClient;
+    @Resource
+    private PointSettingClient pointSettingClient;
 
  
 
@@ -72,7 +68,7 @@
                 continue;
             }
             List<OrderGood> orderGoods = orderGoodService.list(new LambdaQueryWrapper<OrderGood>()
-                    .eq(OrderGood::getGoodsId, order.getId()));
+                    .eq(OrderGood::getOrderId, order.getId()));
             AppUser appUser = appUserClient.getAppUserById(order.getAppUserId());
             //直推上级分佣金额
             BigDecimal ztsj_price = BigDecimal.ZERO;
@@ -143,8 +139,15 @@
                     inviteUser.setWithdrawableAmount(inviteUser.getWithdrawableAmount().add(ztsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
                 }
                 if(ztsj_point > 0){
+                    PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
+                    int earnPoint1 = ztsj_point;
+                    //计算可用积分比例
+                    if(null != pointSetting && 1 == pointSetting.getSharePointOpen()){
+                        earnPoint1 = new BigDecimal(earnPoint1).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);
                     inviteUser.setTotalPoint(inviteUser.getTotalPoint() + ztsj_point);
                 }
                 appUserClient.editAppUserById(inviteUser);
@@ -173,6 +176,8 @@
                     userPoint.setObjectId(order.getId());
                     userPoint.setExtention(order.getOrderNumber());
                     userPointClient.saveUserPoint(userPoint);
+                    //变更等级
+                    appUserClient.vipUpgrade(inviteUser.getId());
                 }
             }
             //直帮上级
@@ -186,8 +191,15 @@
                     superiorLeader.setWithdrawableAmount(superiorLeader.getWithdrawableAmount().add(zbsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
                 }
                 if(zbsj_point > 0){
+                    PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
+                    int earnPoint1 = zbsj_point;
+                    //计算可用积分比例
+                    if(null != pointSetting && 1 == pointSetting.getSharePointOpen()){
+                        earnPoint1 = new BigDecimal(earnPoint1).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);
                     superiorLeader.setTotalPoint(superiorLeader.getTotalPoint() + zbsj_point);
                 }
                 appUserClient.editAppUserById(superiorLeader);
@@ -216,6 +228,8 @@
                     userPoint.setObjectId(order.getId());
                     userPoint.setExtention(order.getOrderNumber());
                     userPointClient.saveUserPoint(userPoint);
+                    //变更等级
+                    appUserClient.vipUpgrade(superiorLeader.getId());
                 }
             }
     
@@ -239,9 +253,16 @@
                     shop.setBalance(shop.getBalance().add(hxmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
                 }
                 if(hxmd_point > 0){
-                    shopAppUser.setSharePoint(shopAppUser.getSharePoint() + hxmd_point);
+                    PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
+                    int earnPoint1 = hxmd_point;
+                    //计算可用积分比例
+                    if(null != pointSetting && 1 == pointSetting.getShopPointOpen()){
+                        earnPoint1 = new BigDecimal(earnPoint1).multiply(pointSetting.getShopPoint().divide(new BigDecimal(100))).intValue();
+                    }
                     shopAppUser.setLavePoint(shopAppUser.getLavePoint() + hxmd_point);
+                    shopAppUser.setAvailablePoint(shopAppUser.getAvailablePoint() + earnPoint1);
                     shopAppUser.setTotalPoint(shopAppUser.getTotalPoint() + hxmd_point);
+                    shopAppUser.setShopAchievementPoint(shopAppUser.getShopAchievementPoint() + bdmdsj_point);
                     //门店返佣
                     shop.setShopAllPoint(shop.getShopAllPoint() + hxmd_point);
                     shop.setServerPoint(shop.getServerPoint() + hxmd_point);
@@ -288,6 +309,8 @@
                     userPoint.setObjectId(order.getId());
                     userPoint.setExtention(order.getOrderNumber());
                     userPointClient.saveUserPoint(userPoint);
+                    //变更等级
+                    appUserClient.vipUpgrade(shopAppUser.getId());
                 }
     
                 if(!shop.getLavePoint().equals(shopLavePoint)){
@@ -308,26 +331,37 @@
             //技师服务积分
             if(order.getOrderType() == 1){
                 Technician technician = technicianClient.shopdetail(order.getTechnicianId()).getData();
-                AppUser technicianAppUser = appUserClient.getAppUserById(technician.getAppUserId());
-                Integer lavePoint = technicianAppUser.getLavePoint();
-                if(js_point > 0){
-                    technicianAppUser.setLavePoint(technicianAppUser.getLavePoint() + js_point);
-                    technicianAppUser.setTotalPoint(technicianAppUser.getTotalPoint() + js_point);
-                    technicianAppUser.setTotalPerformancePoint(technicianAppUser.getTotalPerformancePoint() + js_point);
-                }
-                appUserClient.editAppUserById(technicianAppUser);
-                //添加积分明细
-                if(!technicianAppUser.getLavePoint().equals(lavePoint)){
-                    UserPoint userPoint = new UserPoint();
-                    userPoint.setType(10);
-                    userPoint.setHistoricalPoint(lavePoint);
-                    userPoint.setVariablePoint(js_point);
-                    userPoint.setBalance(technicianAppUser.getLavePoint());
-                    userPoint.setCreateTime(LocalDateTime.now());
-                    userPoint.setAppUserId(technicianAppUser.getId());
-                    userPoint.setObjectId(order.getId());
-                    userPoint.setExtention(order.getOrderNumber());
-                    userPointClient.saveUserPoint(userPoint);
+                if(null != technician){
+                    AppUser technicianAppUser = appUserClient.getAppUserById(technician.getAppUserId());
+                    Integer lavePoint = technicianAppUser.getLavePoint();
+                    if(js_point > 0){
+                        PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
+                        int earnPoint1 = js_point;
+                        //计算可用积分比例
+                        if(null != pointSetting && 1 == pointSetting.getPersonPointOpen()){
+                            earnPoint1 = new BigDecimal(earnPoint1).multiply(pointSetting.getPersonPoint().divide(new BigDecimal(100))).intValue();
+                        }
+                        technicianAppUser.setLavePoint(technicianAppUser.getLavePoint() + js_point);
+                        technicianAppUser.setAvailablePoint(technicianAppUser.getAvailablePoint() + earnPoint1);
+                        technicianAppUser.setTotalPoint(technicianAppUser.getTotalPoint() + js_point);
+                        technicianAppUser.setTotalPerformancePoint(technicianAppUser.getTotalPerformancePoint() + js_point);
+                    }
+                    appUserClient.editAppUserById(technicianAppUser);
+                    //添加积分明细
+                    if(!technicianAppUser.getLavePoint().equals(lavePoint)){
+                        UserPoint userPoint = new UserPoint();
+                        userPoint.setType(10);
+                        userPoint.setHistoricalPoint(lavePoint);
+                        userPoint.setVariablePoint(js_point);
+                        userPoint.setBalance(technicianAppUser.getLavePoint());
+                        userPoint.setCreateTime(LocalDateTime.now());
+                        userPoint.setAppUserId(technicianAppUser.getId());
+                        userPoint.setObjectId(order.getId());
+                        userPoint.setExtention(order.getOrderNumber());
+                        userPointClient.saveUserPoint(userPoint);
+                        //变更等级
+                        appUserClient.vipUpgrade(technicianAppUser.getId());
+                    }
                 }
             }
             
@@ -352,9 +386,16 @@
                         shop1.setBalance(shop1.getBalance().add(bdmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
                     }
                     if(bdmd_point > 0){
-                        bdShopAppUser.setSharePoint(bdShopAppUser.getSharePoint() + bdmd_point);
+                        PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
+                        int earnPoint1 = bdmd_point;
+                        //计算可用积分比例
+                        if(null != pointSetting && 1 == pointSetting.getShopSharePointOpen()){
+                            earnPoint1 = new BigDecimal(earnPoint1).multiply(pointSetting.getShopSharePoint().divide(new BigDecimal(100))).intValue();
+                        }
                         bdShopAppUser.setLavePoint(bdShopAppUser.getLavePoint() + bdmd_point);
+                        bdShopAppUser.setAvailablePoint(bdShopAppUser.getAvailablePoint() + earnPoint1);
                         bdShopAppUser.setTotalPoint(bdShopAppUser.getTotalPoint() + bdmd_point);
+                        bdShopAppUser.setShopSharePoint(bdShopAppUser.getShopSharePoint() + bdmdsj_point);
                         //门店返佣
                         shop1.setShopAllPoint(shop1.getShopAllPoint() + bdmd_point);
                         shop1.setSharePoint(shop1.getSharePoint() + bdmd_point);
@@ -401,6 +442,8 @@
                         userPoint.setObjectId(order.getId());
                         userPoint.setExtention(order.getOrderNumber());
                         userPointClient.saveUserPoint(userPoint);
+                        //变更等级
+                        appUserClient.vipUpgrade(bdShopAppUser.getId());
                     }
         
                     if(!shop1.getLavePoint().equals(shopLavePoint)){
@@ -440,13 +483,19 @@
                         shop2.setBalance(shop2.getBalance().add(bdmdsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
                     }
                     if(bdmdsj_point > 0){
-                        sjShopAppUser.setSharePoint(sjShopAppUser.getSharePoint() + bdmdsj_point);
+                        PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
+                        int earnPoint1 = bdmdsj_point;
+                        //计算可用积分比例
+                        if(null != pointSetting && 1 == pointSetting.getShopSharePointOpen()){
+                            earnPoint1 = new BigDecimal(earnPoint1).multiply(pointSetting.getShopSharePoint().divide(new BigDecimal(100))).intValue();
+                        }
                         sjShopAppUser.setLavePoint(sjShopAppUser.getLavePoint() + bdmdsj_point);
+                        sjShopAppUser.setAvailablePoint(sjShopAppUser.getAvailablePoint() + earnPoint1);
                         sjShopAppUser.setTotalPoint(sjShopAppUser.getTotalPoint() + bdmdsj_point);
-                        sjShopAppUser.setShopSharePoint(sjShopAppUser.getShopSharePoint() + bdmdsj_point);
+                        sjShopAppUser.setLowerLevelSharePoint(sjShopAppUser.getLowerLevelSharePoint() + bdmdsj_point);
                         //门店返佣
                         shop2.setShopAllPoint(shop2.getShopAllPoint() + bdmdsj_point);
-                        shop2.setSharePoint(shop2.getSharePoint() + bdmdsj_point);
+                        shop2.setLowerLevelSharePoint(shop2.getLowerLevelSharePoint() + bdmdsj_point);
                         shop2.setLavePoint(shop2.getLavePoint() + bdmdsj_point);
                     }
                     appUserClient.editAppUserById(sjShopAppUser);
@@ -490,6 +539,8 @@
                         userPoint.setObjectId(order.getId());
                         userPoint.setExtention(order.getOrderNumber());
                         userPointClient.saveUserPoint(userPoint);
+                        //变更等级
+                        appUserClient.vipUpgrade(sjShopAppUser.getId());
                     }
         
                     if(!shop2.getLavePoint().equals(shopLavePoint)){
@@ -507,7 +558,8 @@
                     }
                 }
             }
-            
+            order.setIsCommission(1);
+            orderService.updateById(order);
         }
         
 

--
Gitblit v1.7.1