From b8961f178740f99ce54cfcbfd88235eaf8b79872 Mon Sep 17 00:00:00 2001
From: quanwei <419654421@qq.com>
Date: Fri, 12 Dec 2025 18:59:02 +0800
Subject: [PATCH] 保证金和年卡放同一个页面

---
 admin/app/common/model/plus/vip/Order.php |   28 +++++++++++++++++++++-------
 1 files changed, 21 insertions(+), 7 deletions(-)

diff --git a/admin/app/common/model/plus/vip/Order.php b/admin/app/common/model/plus/vip/Order.php
index 6514c70..1268b63 100644
--- a/admin/app/common/model/plus/vip/Order.php
+++ b/admin/app/common/model/plus/vip/Order.php
@@ -248,6 +248,9 @@
 
     /**
      * 创建VIP专区订单记录
+     * @param array $order 订单信息数组
+     * @param int $order_type 订单类型,默认为OrderTypeEnum::MASTER
+     * @return bool|\think\Collection 是否成功创建订单
      */
     public static function createOrder($order, $order_type = OrderTypeEnum::MASTER)
     {
@@ -265,6 +268,7 @@
                 'order_id' => $order['order_id'],
                 'order_type' => $order_type,
                 'order_price' => $order['pay_price'],
+                'settlement_price' => $order['settlement_price'],
                 'vip_area_user_id' => 0,
                 'referee_id' => 0,
                 'vip_area_money' => 0,
@@ -275,7 +279,8 @@
             ];
             $list=[];
             // 计算佣金金额
-            $orderPrice = bcsub($order['pay_price'], $order['express_price'], 2);
+            $orderPrice = bcsub(bcsub($order['pay_price'], $order['express_price'], 2), $order['settlement_price'], 2);
+            $viewpoint_money=0;
             // 获取当前买家的推荐人信息
             $userModel = UserModel::detail($order['user_id']);
             if (!empty($userModel) && !empty($userModel['referee_id'])) {
@@ -291,7 +296,10 @@
                         if (!empty($config['become__buy_product_ids'])) {
                             $purchase_count=(new self())->getPurchaseCount($order['user_id']);
                             foreach ($order['product'] as $product){
-                                if (in_array($product['product_id'], $config['become__buy_product_ids'])) {
+                                if ($product['is_repurchase']==1){
+                                    $viewpoint_money=bcadd($viewpoint_money,($product['is_viewpoint_money']?$product['viewpoint_money']:$vipGrade['viewpoint_money']),2);
+                                }
+                                if (in_array($product['product_id'], $config['become__buy_product_ids'])||$product['is_vip']) {
                                     // 获取商品数量
                                     $quantity = $product['total_num'];
                                     // 为每个商品生成分红订单
@@ -309,14 +317,20 @@
                                 }
                             }
                         }
+
+                        // 检查并处理直推佣金
                         $directReferralsCount=0;
                         $user=UserModel::detail($order['user_id']);
+                        //见点奖
                         if (!empty($user['referee_id'])){
                             // 检查推荐人是否满足直推条件(直推用户数量)
                             $directReferralsCount = UserModel::where('referee_id', '=', $user['referee_id'])->count();
+                            if ($viewpoint_money>0&&(new User())->getViewpointMoneyQualification($user['referee_id'],$setting)){
+                                $list[]=array_merge($data,['vip_area_type'=>60,'vip_area_money'=>$viewpoint_money]);
+                            }
                         }
                         $requiredReferralCount = $setting['referee_buy_count'] ?? 0;
-                        if ($vipGrade['commission']>0 && $directReferralsCount >= $requiredReferralCount){
+                        if ($vipGrade['commission']>0 && $directReferralsCount >= $requiredReferralCount&&$orderPrice>0){
                             // 计算平台直推佣金金额
                             $commissionAmount = bcmul($orderPrice, bcdiv($vipGrade['commission'], '100', 4), 2);
                             $list[]=array_merge($data,['vip_area_type'=>40,'vip_area_money'=>$commissionAmount]);
@@ -324,19 +338,19 @@
                     }
                 }
             }
-            log_write($order['supplier']->toArray());
-            if( $order['supplier']['referee_id']!=0){
+            // 处理供应商推荐人佣金
+            if($order['supplier']['referee_id']!=0){
                 $supplierReferee=VipUserModel::detail($order['supplier']['referee_id']);
-                log_write('供应商推荐人:'.$supplierReferee['user_id']);
                 if ($supplierReferee){
                     $vipGradeSupplier=Grade::detail($supplierReferee['grade_id']);
-                    if ($vipGradeSupplier['supplier_money']>0){
+                    if ($vipGradeSupplier['supplier_money']>0&&$orderPrice>0){
                         // 计算直推店铺交易额佣金金额
                         $supplier_money = bcmul($orderPrice, bcdiv($vipGrade['supplier_money'], '100', 4), 2);
                         $list[]=array_merge($data,['vip_area_type'=>50,'vip_area_money'=>$supplier_money,'vip_area_user_id'=>$supplierReferee['user_id'],'referee_id'=>$supplierReferee['referee_id']]);
                     }
                 }
             }
+            log_write($list);
             if (empty($list)){
                 return true;
             }

--
Gitblit v1.9.2