From 257d66798aa538f8737980f13d94c547bf0b51ea Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期三, 15 一月 2025 15:37:15 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java |  418 ++++++++++++++++++++++++++++++++---------------------------
 1 files changed, 229 insertions(+), 189 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 d55f36b..bd55d78 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,19 +8,14 @@
 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;
-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 +49,8 @@
     private ShopPointClient shopPointClient;
     @Resource
     private TechnicianClient technicianClient;
+    @Resource
+    private PointSettingClient pointSettingClient;
 
  
 
@@ -61,19 +58,19 @@
     @Transactional(rollbackFor = Exception.class)
     public void calculationCommission() {
         List<Order> list = orderService.list(new LambdaQueryWrapper<Order>().eq(Order::getIsCommission, 0).isNotNull(Order::getAfterSaleTime)
-                .eq(Order::getDelFlag, 0).last(" and after_sale_time <= now()"));
+                .eq(Order::getDelFlag, 0).ne(Order::getPayMethod, 3).last(" and after_sale_time <= now()"));
         List<Long> collect = list.stream().map(Order::getId).collect(Collectors.toList());
         if(collect.size() == 0){
             return;
         }
     
         for (Order order : list) {
-            if(order.getPayMethod() == 3){
-                continue;
-            }
             List<OrderGood> orderGoods = orderGoodService.list(new LambdaQueryWrapper<OrderGood>()
                     .eq(OrderGood::getOrderId, order.getId()));
             AppUser appUser = appUserClient.getAppUserById(order.getAppUserId());
+            if(null == appUser){
+                return;
+            }
             //直推上级分佣金额
             BigDecimal ztsj_price = BigDecimal.ZERO;
             //直帮上级分佣金额
@@ -101,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;
+                        }
                     }
                 }
                 
@@ -133,48 +143,65 @@
                 bdmdsj_point += orderGood.getBoundShopSuperiorsPoints();
             }
             //直推上级
-            AppUser inviteUser = appUserClient.getAppUserById(appUser.getInviteUserId());
-            if(null != inviteUser){
-                BigDecimal balance = inviteUser.getBalance();
-                Integer lavePoint = inviteUser.getLavePoint();
-                if(ztsj_price.compareTo(BigDecimal.ZERO) > 0){
-                    inviteUser.setTotalDistributionAmount(inviteUser.getTotalDistributionAmount().add(ztsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
-                    inviteUser.setBalance(inviteUser.getBalance().add(ztsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
-                    inviteUser.setWithdrawableAmount(inviteUser.getWithdrawableAmount().add(ztsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
-                }
-                if(ztsj_point > 0){
-                    inviteUser.setSharePoint(inviteUser.getSharePoint() + ztsj_point);
-                    inviteUser.setLavePoint(inviteUser.getLavePoint() + ztsj_point);
-                    inviteUser.setTotalPoint(inviteUser.getTotalPoint() + ztsj_point);
-                }
-                appUserClient.editAppUserById(inviteUser);
-                //添加明细记录
-                if(!inviteUser.getBalance().equals(balance)){
-                    BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord();
-                    balanceChangeRecord.setAppUserId(inviteUser.getId());
-                    balanceChangeRecord.setOrderId(order.getId());
-                    balanceChangeRecord.setChangeType(4);
-                    balanceChangeRecord.setBeforeAmount(balance);
-                    balanceChangeRecord.setChangeAmount(ztsj_price);
-                    balanceChangeRecord.setAfterAmount(inviteUser.getBalance());
-                    balanceChangeRecord.setDelFlag(0);
-                    balanceChangeRecord.setCreateTime(LocalDateTime.now());
-                    balanceChangeRecordClient.saveBalanceChangeRecord(balanceChangeRecord);
-                }
-                //添加积分明细
-                if(!inviteUser.getLavePoint().equals(lavePoint)){
-                    UserPoint userPoint = new UserPoint();
-                    userPoint.setType(2);
-                    userPoint.setHistoricalPoint(lavePoint);
-                    userPoint.setVariablePoint(ztsj_point);
-                    userPoint.setBalance(inviteUser.getLavePoint());
-                    userPoint.setCreateTime(LocalDateTime.now());
-                    userPoint.setAppUserId(inviteUser.getId());
-                    userPoint.setObjectId(order.getId());
-                    userPoint.setExtention(order.getOrderNumber());
-                    userPointClient.saveUserPoint(userPoint);
+            if(null != appUser.getInviteUserId()){
+                AppUser inviteUser = appUserClient.getAppUserById(appUser.getInviteUserId());
+                if(null != inviteUser){
+                    BigDecimal balance = inviteUser.getBalance();
+                    Integer lavePoint = inviteUser.getLavePoint();
+                    if(ztsj_price.compareTo(BigDecimal.ZERO) > 0){
+                        inviteUser.setTotalDistributionAmount(inviteUser.getTotalDistributionAmount().add(ztsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+                        inviteUser.setBalance(inviteUser.getBalance().add(ztsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+                        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 = 0;
+                        //计算可用积分比例
+                        if(null != pointSetting && 1 == pointSetting.getSharePointOpen()){
+                            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);
+                        inviteUser.setTotalAvailablePoint(inviteUser.getTotalAvailablePoint() + earnPoint1);
+                        if(null != pointSetting && 1 == pointSetting.getSharePointGift()){
+                            inviteUser.setTransferablePoint(inviteUser.getTransferablePoint() + earnPoint1);
+                        }
+                        inviteUser.setTotalPoint(inviteUser.getTotalPoint() + ztsj_point);
+                    }
+                    appUserClient.editAppUserById(inviteUser);
+                    //添加明细记录
+                    if(!inviteUser.getBalance().equals(balance)){
+                        BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord();
+                        balanceChangeRecord.setAppUserId(inviteUser.getId());
+                        balanceChangeRecord.setVipId(inviteUser.getVipId());
+                        balanceChangeRecord.setOrderId(order.getId());
+                        balanceChangeRecord.setChangeType(4);
+                        balanceChangeRecord.setBeforeAmount(balance);
+                        balanceChangeRecord.setChangeAmount(ztsj_price);
+                        balanceChangeRecord.setAfterAmount(inviteUser.getBalance());
+                        balanceChangeRecord.setDelFlag(0);
+                        balanceChangeRecord.setCreateTime(LocalDateTime.now());
+                        balanceChangeRecordClient.saveBalanceChangeRecord(balanceChangeRecord);
+                    }
+                    //添加积分明细
+                    if(!inviteUser.getLavePoint().equals(lavePoint)){
+                        UserPoint userPoint = new UserPoint();
+                        userPoint.setType(2);
+                        userPoint.setHistoricalPoint(lavePoint);
+                        userPoint.setVariablePoint(ztsj_point);
+                        userPoint.setBalance(inviteUser.getLavePoint());
+                        userPoint.setCreateTime(LocalDateTime.now());
+                        userPoint.setAppUserId(inviteUser.getId());
+                        userPoint.setObjectId(order.getId());
+                        userPoint.setExtention(order.getOrderNumber());
+                        userPointClient.saveUserPoint(userPoint);
+                        //变更等级
+                        appUserClient.vipUpgrade(inviteUser.getId());
+                    }
                 }
             }
+
             //直帮上级
             AppUser superiorLeader = appUserClient.getSuperiorLeader(appUser.getId()).getData();
             if(null != superiorLeader){
@@ -186,8 +213,19 @@
                     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 = 0;
+                    //计算可用积分比例
+                    if(null != pointSetting && 1 == pointSetting.getSharePointOpen()){
+                        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);
+                    superiorLeader.setTotalAvailablePoint(superiorLeader.getTotalAvailablePoint() + earnPoint1);
+                    if(null != pointSetting && 1 == pointSetting.getSharePointGift()){
+                        superiorLeader.setTransferablePoint(superiorLeader.getTransferablePoint() + earnPoint1);
+                    }
                     superiorLeader.setTotalPoint(superiorLeader.getTotalPoint() + zbsj_point);
                 }
                 appUserClient.editAppUserById(superiorLeader);
@@ -195,6 +233,7 @@
                 if(!superiorLeader.getBalance().equals(balance)){
                     BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord();
                     balanceChangeRecord.setAppUserId(superiorLeader.getId());
+                    balanceChangeRecord.setVipId(superiorLeader.getVipId());
                     balanceChangeRecord.setOrderId(order.getId());
                     balanceChangeRecord.setChangeType(4);
                     balanceChangeRecord.setBeforeAmount(balance);
@@ -216,6 +255,8 @@
                     userPoint.setObjectId(order.getId());
                     userPoint.setExtention(order.getOrderNumber());
                     userPointClient.saveUserPoint(userPoint);
+                    //变更等级
+                    appUserClient.vipUpgrade(superiorLeader.getId());
                 }
             }
     
@@ -223,15 +264,10 @@
             Shop shop = shopClient.getShopById(order.getShopId()).getData();
             AppUser shopAppUser = appUserClient.getAppUserById(shop.getAppUserId());
             if(null != shopAppUser){
-                BigDecimal balance = shopAppUser.getBalance();
                 BigDecimal shopBalance = shop.getBalance();
                 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));
@@ -239,9 +275,20 @@
                     shop.setBalance(shop.getBalance().add(hxmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
                 }
                 if(hxmd_point > 0){
+                    PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
+                    int earnPoint1 = 0;
+                    //计算可用积分比例
+                    if(null != pointSetting && 1 == pointSetting.getShopPointOpen()){
+                        earnPoint1 = new BigDecimal(hxmd_point).multiply(pointSetting.getShopPoint().divide(new BigDecimal(100))).intValue();
+                    }
                     shopAppUser.setLavePoint(shopAppUser.getLavePoint() + hxmd_point);
+                    shopAppUser.setAvailablePoint(shopAppUser.getAvailablePoint() + earnPoint1);
+                    shopAppUser.setTotalAvailablePoint(shopAppUser.getTotalAvailablePoint() + earnPoint1);
+                    if(null != pointSetting && 1 == pointSetting.getShopPointGift()){
+                        shopAppUser.setTransferablePoint(shopAppUser.getTransferablePoint() + earnPoint1);
+                    }
                     shopAppUser.setTotalPoint(shopAppUser.getTotalPoint() + hxmd_point);
-                    shopAppUser.setShopSharePoint(shopAppUser.getShopSharePoint() + bdmdsj_point);
+                    shopAppUser.setShopAchievementPoint(shopAppUser.getShopAchievementPoint() + hxmd_point);
                     //门店返佣
                     shop.setShopAllPoint(shop.getShopAllPoint() + hxmd_point);
                     shop.setServerPoint(shop.getServerPoint() + hxmd_point);
@@ -250,19 +297,6 @@
                 appUserClient.editAppUserById(shopAppUser);
                 shopClient.updateShop(shop);
                 //添加明细记录
-                if(!shopAppUser.getBalance().equals(balance)){
-                    BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord();
-                    balanceChangeRecord.setAppUserId(shopAppUser.getId());
-                    balanceChangeRecord.setOrderId(order.getId());
-                    balanceChangeRecord.setChangeType(4);
-                    balanceChangeRecord.setBeforeAmount(balance);
-                    balanceChangeRecord.setChangeAmount(hxmd_price);
-                    balanceChangeRecord.setAfterAmount(shopAppUser.getBalance());
-                    balanceChangeRecord.setDelFlag(0);
-                    balanceChangeRecord.setCreateTime(LocalDateTime.now());
-                    balanceChangeRecordClient.saveBalanceChangeRecord(balanceChangeRecord);
-                }
-                
                 if(!shop.getBalance().equals(shopBalance)){
                     ShopBalanceStatement shopBalanceStatement = new ShopBalanceStatement();
                     shopBalanceStatement.setShopId(shop.getId());
@@ -279,7 +313,7 @@
                 //添加积分明细
                 if(!shopAppUser.getLavePoint().equals(lavePoint)){
                     UserPoint userPoint = new UserPoint();
-                    userPoint.setType(9);
+                    userPoint.setType(8);
                     userPoint.setHistoricalPoint(lavePoint);
                     userPoint.setVariablePoint(hxmd_point);
                     userPoint.setBalance(shopAppUser.getLavePoint());
@@ -288,12 +322,14 @@
                     userPoint.setObjectId(order.getId());
                     userPoint.setExtention(order.getOrderNumber());
                     userPointClient.saveUserPoint(userPoint);
+                    //变更等级
+                    appUserClient.vipUpgrade(shopAppUser.getId());
                 }
     
                 if(!shop.getLavePoint().equals(shopLavePoint)){
                     ShopPoint shopPoint = new ShopPoint();
                     shopPoint.setShopId(shop.getId());
-                    shopPoint.setType(4);
+                    shopPoint.setType(1);
                     shopPoint.setHistoricalPoint(shopLavePoint);
                     shopPoint.setVariablePoint(hxmd_point);
                     shopPoint.setBalance(shop.getLavePoint());
@@ -312,7 +348,18 @@
                     AppUser technicianAppUser = appUserClient.getAppUserById(technician.getAppUserId());
                     Integer lavePoint = technicianAppUser.getLavePoint();
                     if(js_point > 0){
+                        PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
+                        int earnPoint1 = 0;
+                        //计算可用积分比例
+                        if(null != pointSetting && 1 == pointSetting.getPersonPointOpen()){
+                            earnPoint1 = new BigDecimal(js_point).multiply(pointSetting.getPersonPoint().divide(new BigDecimal(100))).intValue();
+                        }
                         technicianAppUser.setLavePoint(technicianAppUser.getLavePoint() + js_point);
+                        technicianAppUser.setAvailablePoint(technicianAppUser.getAvailablePoint() + earnPoint1);
+                        technicianAppUser.setTotalAvailablePoint(technicianAppUser.getTotalAvailablePoint() + earnPoint1);
+                        if(null != pointSetting && 1 == pointSetting.getPersonPointGift()){
+                            technicianAppUser.setTransferablePoint(technicianAppUser.getTransferablePoint() + earnPoint1);
+                        }
                         technicianAppUser.setTotalPoint(technicianAppUser.getTotalPoint() + js_point);
                         technicianAppUser.setTotalPerformancePoint(technicianAppUser.getTotalPerformancePoint() + js_point);
                     }
@@ -329,6 +376,8 @@
                         userPoint.setObjectId(order.getId());
                         userPoint.setExtention(order.getOrderNumber());
                         userPointClient.saveUserPoint(userPoint);
+                        //变更等级
+                        appUserClient.vipUpgrade(technicianAppUser.getId());
                     }
                 }
             }
@@ -338,15 +387,10 @@
             if(null != shop1){
                 AppUser bdShopAppUser = appUserClient.getAppUserById(shop1.getAppUserId());
                 if(null != bdShopAppUser){
-                    BigDecimal balance = bdShopAppUser.getBalance();
                     BigDecimal shopBalance = shop1.getBalance();
                     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));
@@ -354,9 +398,20 @@
                         shop1.setBalance(shop1.getBalance().add(bdmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
                     }
                     if(bdmd_point > 0){
+                        PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
+                        int earnPoint1 = 0;
+                        //计算可用积分比例
+                        if(null != pointSetting && 1 == pointSetting.getShopSharePointOpen()){
+                            earnPoint1 = new BigDecimal(bdmd_point).multiply(pointSetting.getShopSharePoint().divide(new BigDecimal(100))).intValue();
+                        }
                         bdShopAppUser.setLavePoint(bdShopAppUser.getLavePoint() + bdmd_point);
+                        bdShopAppUser.setAvailablePoint(bdShopAppUser.getAvailablePoint() + earnPoint1);
+                        bdShopAppUser.setTotalAvailablePoint(bdShopAppUser.getTotalAvailablePoint() + 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);
@@ -365,23 +420,10 @@
                     appUserClient.editAppUserById(bdShopAppUser);
                     shopClient.updateShop(shop1);
                     //添加明细记录
-                    if(!bdShopAppUser.getBalance().equals(balance)){
-                        BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord();
-                        balanceChangeRecord.setAppUserId(bdShopAppUser.getId());
-                        balanceChangeRecord.setOrderId(order.getId());
-                        balanceChangeRecord.setChangeType(4);
-                        balanceChangeRecord.setBeforeAmount(balance);
-                        balanceChangeRecord.setChangeAmount(bdmd_price);
-                        balanceChangeRecord.setAfterAmount(bdShopAppUser.getBalance());
-                        balanceChangeRecord.setDelFlag(0);
-                        balanceChangeRecord.setCreateTime(LocalDateTime.now());
-                        balanceChangeRecordClient.saveBalanceChangeRecord(balanceChangeRecord);
-                    }
-        
                     if(!shop1.getBalance().equals(shopBalance)){
                         ShopBalanceStatement shopBalanceStatement = new ShopBalanceStatement();
                         shopBalanceStatement.setShopId(shop1.getId());
-                        shopBalanceStatement.setType(4);
+                        shopBalanceStatement.setType(1);
                         shopBalanceStatement.setHistoricalBalance(shopBalance);
                         shopBalanceStatement.setVariableAmount(bdmd_price);
                         shopBalanceStatement.setBalance(shop1.getBalance());
@@ -403,6 +445,8 @@
                         userPoint.setObjectId(order.getId());
                         userPoint.setExtention(order.getOrderNumber());
                         userPointClient.saveUserPoint(userPoint);
+                        //变更等级
+                        appUserClient.vipUpgrade(bdShopAppUser.getId());
                     }
         
                     if(!shop1.getLavePoint().equals(shopLavePoint)){
@@ -422,97 +466,93 @@
             }
     
             //上级门店分佣
-            Integer pid = shopClient.getShopById(order.getShopId()).getData().getPid();
-            Shop shop2 = shopClient.getShopById(pid).getData();
-            if(null != shop2){
-                AppUser sjShopAppUser = appUserClient.getAppUserById(shop2.getAppUserId());
-                if(null != sjShopAppUser){
-                    BigDecimal balance = sjShopAppUser.getBalance();
-                    BigDecimal shopBalance = shop2.getBalance();
-                    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));
-                        shop2.setCanWithdrawMoney(shop2.getCanWithdrawMoney().add(bdmdsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
-                        shop2.setBalance(shop2.getBalance().add(bdmdsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
-                    }
-                    if(bdmdsj_point > 0){
-                        sjShopAppUser.setLavePoint(sjShopAppUser.getLavePoint() + bdmdsj_point);
-                        sjShopAppUser.setTotalPoint(sjShopAppUser.getTotalPoint() + bdmdsj_point);
-                        sjShopAppUser.setShopSharePoint(sjShopAppUser.getShopSharePoint() + bdmdsj_point);
-                        //门店返佣
-                        shop2.setShopAllPoint(shop2.getShopAllPoint() + bdmdsj_point);
-                        shop2.setSharePoint(shop2.getSharePoint() + bdmdsj_point);
-                        shop2.setLavePoint(shop2.getLavePoint() + bdmdsj_point);
-                    }
-                    appUserClient.editAppUserById(sjShopAppUser);
-                    shopClient.updateShop(shop2);
-                    //添加明细记录
-                    if(!sjShopAppUser.getBalance().equals(balance)){
-                        BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord();
-                        balanceChangeRecord.setAppUserId(sjShopAppUser.getId());
-                        balanceChangeRecord.setOrderId(order.getId());
-                        balanceChangeRecord.setChangeType(4);
-                        balanceChangeRecord.setBeforeAmount(balance);
-                        balanceChangeRecord.setChangeAmount(bdmdsj_price);
-                        balanceChangeRecord.setAfterAmount(sjShopAppUser.getBalance());
-                        balanceChangeRecord.setDelFlag(0);
-                        balanceChangeRecord.setCreateTime(LocalDateTime.now());
-                        balanceChangeRecordClient.saveBalanceChangeRecord(balanceChangeRecord);
-                    }
-        
-                    if(!shop2.getBalance().equals(shopBalance)){
-                        ShopBalanceStatement shopBalanceStatement = new ShopBalanceStatement();
-                        shopBalanceStatement.setShopId(shop2.getId());
-                        shopBalanceStatement.setType(2);
-                        shopBalanceStatement.setHistoricalBalance(shopBalance);
-                        shopBalanceStatement.setVariableAmount(bdmdsj_price);
-                        shopBalanceStatement.setBalance(shop2.getBalance());
-                        shopBalanceStatement.setCreateTime(LocalDateTime.now());
-                        shopBalanceStatement.setCreateUserId(order.getAppUserId());
-                        shopBalanceStatement.setObjectId(order.getId());
-                        shopBalanceStatement.setExtension(order.getOrderNumber());
-                        shopBalanceStatementClient.saveShopBalanceStatement(shopBalanceStatement);
-                    }
-                    //添加积分明细
-                    if(!sjShopAppUser.getLavePoint().equals(lavePoint)){
-                        UserPoint userPoint = new UserPoint();
-                        userPoint.setType(14);
-                        userPoint.setHistoricalPoint(lavePoint);
-                        userPoint.setVariablePoint(bdmdsj_point);
-                        userPoint.setBalance(sjShopAppUser.getLavePoint());
-                        userPoint.setCreateTime(LocalDateTime.now());
-                        userPoint.setAppUserId(sjShopAppUser.getId());
-                        userPoint.setObjectId(order.getId());
-                        userPoint.setExtention(order.getOrderNumber());
-                        userPointClient.saveUserPoint(userPoint);
-                    }
-        
-                    if(!shop2.getLavePoint().equals(shopLavePoint)){
-                        ShopPoint shopPoint = new ShopPoint();
-                        shopPoint.setShopId(shop2.getId());
-                        shopPoint.setType(3);
-                        shopPoint.setHistoricalPoint(shopLavePoint);
-                        shopPoint.setVariablePoint(bdmdsj_point);
-                        shopPoint.setBalance(shop2.getLavePoint());
-                        shopPoint.setCreateTime(LocalDateTime.now());
-                        shopPoint.setCreateUserId(order.getAppUserId());
-                        shopPoint.setObjectId(order.getId());
-                        shopPoint.setOrderNum(order.getOrderNumber());
-                        shopPointClient.saveShopPoint(shopPoint);
+            if(null != shop1){
+                Integer pid = shop1.getPid();
+                Shop shop2 = shopClient.getShopById(pid).getData();
+                if(null != shop2){
+                    AppUser sjShopAppUser = appUserClient.getAppUserById(shop2.getAppUserId());
+                    if(null != sjShopAppUser){
+                        BigDecimal shopBalance = shop2.getBalance();
+                        Integer lavePoint = sjShopAppUser.getLavePoint();
+                        Integer shopLavePoint = shop2.getLavePoint();
+                        if(bdmdsj_price.compareTo(BigDecimal.ZERO) > 0){
+                            //门店返佣
+                            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));
+                            shop2.setCanWithdrawMoney(shop2.getCanWithdrawMoney().add(bdmdsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+                            shop2.setBalance(shop2.getBalance().add(bdmdsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+                        }
+                        if(bdmdsj_point > 0){
+                            PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
+                            int earnPoint1 = 0;
+                            //计算可用积分比例
+                            if(null != pointSetting && 1 == pointSetting.getShopSharePointOpen()){
+                                earnPoint1 = new BigDecimal(bdmdsj_point).multiply(pointSetting.getShopSharePoint().divide(new BigDecimal(100))).intValue();
+                            }
+                            sjShopAppUser.setLavePoint(sjShopAppUser.getLavePoint() + bdmdsj_point);
+                            sjShopAppUser.setAvailablePoint(sjShopAppUser.getAvailablePoint() + earnPoint1);
+                            sjShopAppUser.setTotalAvailablePoint(sjShopAppUser.getTotalAvailablePoint() + earnPoint1);
+                            if(null != pointSetting && 1 == pointSetting.getShopSharePointGift()){
+                                sjShopAppUser.setTransferablePoint(sjShopAppUser.getTransferablePoint() + earnPoint1);
+                            }
+                            sjShopAppUser.setTotalPoint(sjShopAppUser.getTotalPoint() + bdmdsj_point);
+                            sjShopAppUser.setLowerLevelSharePoint(sjShopAppUser.getLowerLevelSharePoint() + bdmdsj_point);
+                            //门店返佣
+                            shop2.setShopAllPoint(shop2.getShopAllPoint() + bdmdsj_point);
+                            shop2.setLowerLevelSharePoint(shop2.getLowerLevelSharePoint() + bdmdsj_point);
+                            shop2.setLavePoint(shop2.getLavePoint() + bdmdsj_point);
+                        }
+                        appUserClient.editAppUserById(sjShopAppUser);
+                        shopClient.updateShop(shop2);
+                        //添加明细记录
+                        if(!shop2.getBalance().equals(shopBalance)){
+                            ShopBalanceStatement shopBalanceStatement = new ShopBalanceStatement();
+                            shopBalanceStatement.setShopId(shop2.getId());
+                            shopBalanceStatement.setType(2);
+                            shopBalanceStatement.setHistoricalBalance(shopBalance);
+                            shopBalanceStatement.setVariableAmount(bdmdsj_price);
+                            shopBalanceStatement.setBalance(shop2.getBalance());
+                            shopBalanceStatement.setCreateTime(LocalDateTime.now());
+                            shopBalanceStatement.setCreateUserId(order.getAppUserId());
+                            shopBalanceStatement.setObjectId(order.getId());
+                            shopBalanceStatement.setExtension(order.getOrderNumber());
+                            shopBalanceStatementClient.saveShopBalanceStatement(shopBalanceStatement);
+                        }
+                        //添加积分明细
+                        if(!sjShopAppUser.getLavePoint().equals(lavePoint)){
+                            UserPoint userPoint = new UserPoint();
+                            userPoint.setType(14);
+                            userPoint.setHistoricalPoint(lavePoint);
+                            userPoint.setVariablePoint(bdmdsj_point);
+                            userPoint.setBalance(sjShopAppUser.getLavePoint());
+                            userPoint.setCreateTime(LocalDateTime.now());
+                            userPoint.setAppUserId(sjShopAppUser.getId());
+                            userPoint.setObjectId(order.getId());
+                            userPoint.setExtention(order.getOrderNumber());
+                            userPointClient.saveUserPoint(userPoint);
+                            //变更等级
+                            appUserClient.vipUpgrade(sjShopAppUser.getId());
+                        }
+
+                        if(!shop2.getLavePoint().equals(shopLavePoint)){
+                            ShopPoint shopPoint = new ShopPoint();
+                            shopPoint.setShopId(shop2.getId());
+                            shopPoint.setType(3);
+                            shopPoint.setHistoricalPoint(shopLavePoint);
+                            shopPoint.setVariablePoint(bdmdsj_point);
+                            shopPoint.setBalance(shop2.getLavePoint());
+                            shopPoint.setCreateTime(LocalDateTime.now());
+                            shopPoint.setCreateUserId(order.getAppUserId());
+                            shopPoint.setObjectId(order.getId());
+                            shopPoint.setOrderNum(order.getOrderNumber());
+                            shopPointClient.saveShopPoint(shopPoint);
+                        }
                     }
                 }
             }
+
             order.setIsCommission(1);
             orderService.updateById(order);
         }
-        
-
-
     }
 }

--
Gitblit v1.7.1