From 04102f7237efefa744090ed7c25f7b5d0807b679 Mon Sep 17 00:00:00 2001
From: quanwei <419654421@qq.com>
Date: Thu, 05 Feb 2026 18:11:57 +0800
Subject: [PATCH] 完成运营中心提现和运营中心权限管理

---
 admin/app/job/event/VipUserGrade.php |   40 ++++++++++++++++++++++++++++++----------
 1 files changed, 30 insertions(+), 10 deletions(-)

diff --git a/admin/app/job/event/VipUserGrade.php b/admin/app/job/event/VipUserGrade.php
index b114091..17d9511 100644
--- a/admin/app/job/event/VipUserGrade.php
+++ b/admin/app/job/event/VipUserGrade.php
@@ -4,9 +4,10 @@
 
 use app\common\model\plus\vip\Grade as GradeModel;
 use app\common\model\plus\vip\User as vipUserModel;
-use app\common\model\plus\vip\Order as OrderModel;
+use app\common\model\plus\vip\Order as vipOrderModel;
 use app\common\model\supplier\Supplier;
 use app\job\model\user\User as UserModel;
+use app\common\model\order\Order as OrderModel;
 /**
  * VIP用户等级事件管理
  */
@@ -33,6 +34,9 @@
         log_write('VIP用户升级$user_id='.$userId);
         // 用户模型
         $user = vipUserModel::detail($userId);
+        if (empty($user)) {
+            return false;
+        }
         // 获取所有等级
         $list = GradeModel::getUsableList($user['app_id']);
         if ($list->isEmpty()) {
@@ -80,24 +84,40 @@
             $purchase_count = true;
         }
         $supplier_count = false;
-        $referee_supplier_count = (new Supplier())->where('referee_id', $user['user_id'])->count();
         // 直推供应商多少人
-        if($grade['is_supplier_count'] == 1 && $referee_supplier_count >= $grade['supplier_count']){
-            $supplier_count = true;
+        if($grade['is_supplier_count'] == 1 ){
+            $referee_supplier_count = (new Supplier())->where('referee_id', $user['user_id'])->count();
+            if ($referee_supplier_count >= $grade['supplier_count']){
+                $supplier_count = true;
+            }
+
         }
-        // 推荐人等级
-        $user_referee_grade_count = (new UserModel())->getRefereeGradeCount($user['user_id'], $grade['referee_grade_ids']);
         $referee_grade_count=false;
-        if($grade['is_referee_grade'] == 1 && $user_referee_grade_count >= $grade['referee_grade_count']){
-            $referee_grade_count = true;
+        if($grade['is_referee_grade'] == 1){
+            // 推荐人等级
+            $user_referee_grade_count = (new UserModel())->getRefereeGradeCount([$user['user_id']], $grade['referee_grade_ids']);
+            if ($user_referee_grade_count >= $grade['referee_grade_count']){
+                $referee_grade_count = true;
+            }
+
+        }
+        $buy_product = false;
+        if ($grade['open_buy_product'] == 1&& OrderModel::getOrderProductIds($user['user_id'],$grade['product_ids'],true)){
+            $buy_product= true;
         }
         if($grade['condition_type'] == 'and'){
             $grade['is_purchase_count']!=1 && $purchase_count=true;
             $grade['is_supplier_count']!=1 && $supplier_count=true;
             $grade['is_referee_grade']!=1 && $referee_grade_count=true;
-            return $purchase_count && $supplier_count && $referee_grade_count;
+            $grade['is_buy_product']!=1 && $buy_product=true;
+            if ($grade['open_type_product']){
+                return ($purchase_count && $supplier_count && $referee_grade_count) || $buy_product;
+            }else{
+                return $purchase_count && $supplier_count && $referee_grade_count && $buy_product;
+            }
+
         }else{
-            return $purchase_count || $supplier_count || $referee_grade_count;
+            return $purchase_count || $supplier_count || $referee_grade_count || $buy_product;
         }
     }
 

--
Gitblit v1.9.2