From df60073f4fb06ea2d16984635e0714bae8a1f8e9 Mon Sep 17 00:00:00 2001
From: quanwei <419654421@qq.com>
Date: Mon, 22 Dec 2025 18:03:35 +0800
Subject: [PATCH] 1.在总后台首页装修增加了活动专区和智能匹配 模块 2.目前活动专区获取的是发布需求最新的数据,智能匹配是用户没登录前也是获取发布需求最新数据,登录后会根据用户发布的需求,通过分类匹配到对应的数据 3.修复缴纳保证金报错 4.修复发布需求报错

---
 admin/app/shop/model/plus/shareholder/User.php |   56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 55 insertions(+), 1 deletions(-)

diff --git a/admin/app/shop/model/plus/shareholder/User.php b/admin/app/shop/model/plus/shareholder/User.php
index e7962af..218ed95 100644
--- a/admin/app/shop/model/plus/shareholder/User.php
+++ b/admin/app/shop/model/plus/shareholder/User.php
@@ -4,7 +4,8 @@
 
 use app\shop\model\plus\shareholder\Referee as RefereeModel;
 use app\common\model\plus\shareholder\User as UserModel;
-
+use app\shop\model\order\Order as OrderModel;
+use app\shop\model\order\OrderProduct as OrderProductModel;
 /**
  * 股东用户模型
  * Class User
@@ -12,6 +13,11 @@
  */
 class User extends UserModel
 {
+    public static function checkExistByGradeId($grade_id)
+    {
+        self::where('grade_id',$grade_id)->find();
+    }
+
     /**
      * 获取股东用户列表
      */
@@ -44,6 +50,54 @@
         }
         return $model->where('is_delete', '=', 0)->with(['grade'])->select();
     }
+    
+    /**
+     * 获取满足分红条件的股东列表
+     */
+    public static function getEligibleListAll($bonusData)
+    {
+        // 获取基础设置
+        $setting = Setting::getItem('basic');
+        
+        // 先获取所有股东
+        $model = new static;
+        $shareholders = $model->where('is_delete', '=', 0)->with(['grade'])->select();
+        // 如果没有设置分红条件,返回所有股东
+        if (empty($setting['consumption_amount']) && empty($setting['condition_purchase_count'])) {
+            return $shareholders;
+        }
+
+        // 过滤满足条件的股东
+        $eligibleShareholders = [];
+        foreach ($shareholders as $shareholder) {
+            $userId = $shareholder['user_id'];
+            $isEligible = true;
+
+            // 检查消费金额条件
+            if (!empty($setting['consumption_amount'])) {
+                $totalConsumption = (new OrderModel)->getUserTotalConsumption($userId,$bonusData);
+                if ($totalConsumption < $setting['consumption_amount']) {
+                    $isEligible = false;
+                }
+            }
+            
+            // 检查购买次数条件
+            if (!empty($setting['condition_purchase_count']) && $isEligible) {
+                $purchaseCount = (new OrderProductModel)::getPurchaseCount($userId,$bonusData);
+                if ($purchaseCount < $setting['condition_purchase_count']) {
+                    $isEligible = false;
+                }
+            }
+            
+            // 如果满足所有条件,添加到结果集中
+            if ($isEligible) {
+                $eligibleShareholders[] = $shareholder;
+            }
+        }
+        
+        // 转换为 Collection 对象以保持接口一致性
+        return collect($eligibleShareholders);
+    }
 
     /**
      * 新增记录

--
Gitblit v1.9.2