From 14c10d5021513463109aa800aeb3e8dbf479b05c Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期四, 28 八月 2025 10:58:11 +0800
Subject: [PATCH] update

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbOrderServiceImpl.java |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbOrderServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbOrderServiceImpl.java
index f3ff864..336f207 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbOrderServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbOrderServiceImpl.java
@@ -125,8 +125,8 @@
             order.setOutTradeNo(notifyResult.getOutTradeNo());
             order.setTransactionId(notifyResult.getTransactionId());
             TbCompany company = companyService.getById(order.getCompanyId());
-            // 生成记录  看是否分佣 金额 发布人
-            TbUser user = userService.getById(company.getUserId());
+            // 购买人  生成记录  看是否分佣 金额 发布人  如A用户售卖100元公司 C用户购买这个公司  B是C的上级 抽10%  平台抽成20%   那么A应得80  B得2  平台得18
+            TbUser user = userService.getById(order.getUserId());
             TbSystemConfig config = configService.getOne(new LambdaQueryWrapper<TbSystemConfig>().eq(TbSystemConfig::getType, 3));
             if(config!=null){
                 JSONObject jsonObject = JSONObject.parseObject(config.getContent());
@@ -134,13 +134,17 @@
                 BigDecimal userCommission = new BigDecimal(jsonObject.get("user").toString());
                 BigDecimal price = order.getPrice();
                 BigDecimal divide = platformCommission.divide(new BigDecimal("100"));
+                // 平台抽佣
                 BigDecimal platformCommissionMoney = divide.multiply(price).setScale(2, RoundingMode.HALF_UP);
 
                 // 购买人是否绑定了用户 且次数足够
                 if(StringUtils.isNotEmpty(user.getInviteId()) && user.getInviteNum()>0){
                     BigDecimal divide1 = userCommission.divide(new BigDecimal("100"));
-                    BigDecimal userCommissionMoney = divide1.multiply(price).setScale(2, RoundingMode.HALF_UP);
+                    BigDecimal userCommissionMoney = divide1.multiply(platformCommissionMoney).setScale(2, RoundingMode.HALF_UP);
                     order.setCommissionPrice(userCommissionMoney);
+
+                    platformCommissionMoney = platformCommissionMoney.subtract(userCommissionMoney);
+
                     if(userCommissionMoney.doubleValue()>0){
                         TbUser shareUser = userService.getById(user.getInviteId());
                         if(shareUser!=null){

--
Gitblit v1.7.1