From e1e2fe5710a5b5cd9c19bd3aa99c998a1a613ca8 Mon Sep 17 00:00:00 2001
From: quanwei <419654421@qq.com>
Date: Sat, 17 Jan 2026 17:58:01 +0800
Subject: [PATCH] 团购组件增加筛选

---
 admin/app/common/model/user/User.php |   57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 56 insertions(+), 1 deletions(-)

diff --git a/admin/app/common/model/user/User.php b/admin/app/common/model/user/User.php
index 52c026e..4dc130e 100644
--- a/admin/app/common/model/user/User.php
+++ b/admin/app/common/model/user/User.php
@@ -3,15 +3,20 @@
 
 namespace app\common\model\user;
 
+use app\common\model\plus\team\Referee as TeamRefereeModel;
 use app\common\library\helper;
 use app\common\model\BaseModel;
 use app\common\model\plus\bonus\Setting as bonusSettingModel;
+use app\common\model\plus\team\User as TeamUserModel;
 use app\common\model\user\Grade as GradeModel;
 use app\common\model\user\PointsLog as PointsLogModel;
 use app\common\model\supplier\User as SupplierUserModel;
 use app\common\model\store\Clerk as StoreClerkModel;
+use app\common\model\user\User as RealUserModel;
 use app\common\model\user\User as UserModel;
 use app\common\model\settings\Setting as SettingModel;
+use app\common\model\plus\agent\Referee as RefereeModel;
+use app\shop\model\plus\agent\User as AgentUserModel;
 use think\facade\Db; // by lyzflash
 use app\common\model\plus\bonus\User as BonusUserModel;
 use app\common\model\user\ConsumptionLog as ConsumptionLogModel;
@@ -22,6 +27,15 @@
 {
     protected $pk = 'user_id';
     protected $name = 'user';
+
+    public static function getOperatingSubsidy($referee_id, $setting)
+    {
+        $count=self::where('referee_id',$referee_id)->where('grade_id','in',$setting['referee_grade_ids'])->count();
+        if ($count>=$setting['referee_grade_count']){
+            return true;
+        }
+        return false;
+    }
 
     /**
      * 修改器
@@ -45,6 +59,13 @@
     public function grade()
     {
         return $this->belongsTo('app\\common\\model\\user\\Grade', 'grade_id', 'grade_id');
+    }
+    /**
+     * 关联分会表
+     */
+    public function branch()
+    {
+        return $this->hasOne('app\\common\\model\\branch\\Branch', 'branch_id', 'branch_id');
     }
 
     /**
@@ -357,7 +378,7 @@
         $quantity=0;
         foreach ($product as $item){
             // 检查商品是否是指定的分红商品
-            if (in_array($item['product_id'], $config['become__buy_product_ids'])) {
+            if (in_array($item['product_id'], $config['become__buy_product_ids'])||$item['is_vip']==1) {
                 // 获取商品数量
                 $quantity+= $item['total_num'];
             }
@@ -390,4 +411,38 @@
         return $this->where('referee_id', 'in', $user_id)->where('grade_id', 'in', $referee_grade_ids)->count();
     }
 
+    public function editReferee($data)
+    {
+        // 开启事务
+        $this->startTrans();
+        try {
+            // 删除原推荐人关系
+            (new AgentUserModel)->onDeleteReferee($this['user_id']);
+            //更新推荐人的数量 by yj
+            (new RealUserModel())->setOnInvite($this['user_id'],$data['referee_id']);
+            // 修改用户推荐人
+            (new RealUserModel())->where('user_id', '=', $this['user_id'])->update([
+                'referee_id' => $data['referee_id']
+            ]);
+            // 修改团队的推荐人 by yj
+            (new TeamUserModel())->where('user_id', '=', $this['user_id'])->update([
+                'referee_id' => $data['referee_id']
+            ]);
+
+            // 记录推荐人关系,
+            $data['referee_id'] > 0 && RefereeModel::updateRelation($this['user_id'], $data['referee_id']);
+
+            //处理变动用户底下的团队推荐人信息  by yj
+            (new AgentUserModel)->onTeamReferee($this['user_id']);
+
+            // 重建团队分红关系  by yj
+            $data['referee_id'] > 0 && TeamRefereeModel::createTeam($data['referee_id']);
+            $this->commit();
+            return true;
+        } catch (\Exception $e) {
+            $this->error = $e->getMessage();
+            $this->rollback();
+            return false;
+        }
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.2