From a4b3ee325c7354579d495bc74a777e494e5ec38c Mon Sep 17 00:00:00 2001
From: quanwei <419654421@qq.com>
Date: Fri, 06 Feb 2026 18:18:44 +0800
Subject: [PATCH] 商品可以价格面议 选择走访时显示输入走访企业名 分会添加活动时要总会审核 分类添加人数限制,添加活动选择了填写人数限制的分类时活动名额下显示该分类人数限制为15 同一个企业30天内只能走访一次,在30天内走访同一个企业时提示该企业已被走访xx天后才可以从新走访

---
 admin/app/common/model/supplier/Supplier.php |   72 +++++++++++++++++++++++++++++++++--
 1 files changed, 67 insertions(+), 5 deletions(-)

diff --git a/admin/app/common/model/supplier/Supplier.php b/admin/app/common/model/supplier/Supplier.php
index 3cfe776..e93f2cc 100644
--- a/admin/app/common/model/supplier/Supplier.php
+++ b/admin/app/common/model/supplier/Supplier.php
@@ -3,11 +3,11 @@
 namespace app\common\model\supplier;
 
 use app\common\model\BaseModel;
-use app\shop\model\auth\User as AuthUserModel;
-use app\shop\model\auth\UserRole as UserRoleModel;
 use app\common\model\shop\Role as RoleModel;
+use app\common\model\supplier\member\Member as MemberModel;
 use app\common\model\supplier\PointsLog as PointsLogModel;
-
+use app\shop\model\auth\UserRole as UserRoleModel;
+use app\common\enum\supplier\SupplierType;
 /**
  * 商家供应商模型
  */
@@ -15,6 +15,8 @@
 {
     protected $name = 'supplier';
     protected $pk = 'shop_supplier_id';
+    protected $append = ['type_text','coordinate'];
+
 
 
     /**
@@ -60,6 +62,20 @@
     {
         return $this->hasOne('app\\common\\model\\supplier\\User', 'shop_supplier_id', 'shop_supplier_id')
             ->where('is_super','=', 1);
+    }
+        /**
+     * 供应商类型文本
+     */
+    public function getTypeTextAttr($value, $data)
+    {
+        return (new SupplierType())::getName(empty($data['supplier_type'])?0:$data['supplier_type']);
+    }
+    public function getCoordinateAttr($value, $data)
+    {
+        if (empty($data['latitude']) || empty($data['longitude'])) {
+            return '';
+        }
+        return $data['latitude'].','.$data['longitude'];
     }
     /**
      * 详情
@@ -145,8 +161,13 @@
     {
 
         $model = new static();
+        // 获取用户ID,兼容商户用户和区域代理用户
+        $user_id = isset($user['shop_user_id']) ? $user['shop_user_id'] : (isset($user['region_user_id']) ? $user['region_user_id'] : 0);
+        if (!$user_id) {
+            return [];
+        }
         //获取用户所有的角色
-        $user_role_ids = (new UserRoleModel())::getRoleIds($user['shop_user_id']);
+        $user_role_ids = (new UserRoleModel())::getRoleIds($user_id);
         if(!empty($user_role_ids)){
             //获取所有角色的权限
             $area_arr =RoleModel::getAreaIdsByRoleIds($user_role_ids);
@@ -176,12 +197,25 @@
     }
 
     /**
+     * 获取供应商当前有效的年卡
+     */
+    public function getCurrentMember()
+    {
+        return MemberModel::getCurrentMember($this['shop_supplier_id'], $this['app_id']);
+    }
+    
+    /**
      * 获取角色管理的区域
      */
     public static function getAreaIdsByUser($user)
     {
+        // 获取用户ID,兼容商户用户和区域代理用户
+        $user_id = isset($user['shop_user_id']) ? $user['shop_user_id'] : (isset($user['region_user_id']) ? $user['region_user_id'] : 0);
+        if (!$user_id) {
+            return [];
+        }
         //获取用户所有的角色
-        $user_role_ids = (new UserRoleModel())::getRoleIds($user['shop_user_id']);
+        $user_role_ids = (new UserRoleModel())::getRoleIds($user_id);
         if(!empty($user_role_ids)){
             //获取所有角色的权限
             $area_arr =RoleModel::getAreaIdsByRoleIds($user_role_ids);
@@ -237,6 +271,34 @@
             ->find();
         return empty($data['is_independent']) ? 0 : $data['is_independent'];
     }
+    /**
+     * 冻结用户资金
+     */
+    public function freezeMoney($money)
+    {
+        $this->save(['money' => $this['money'] - $money,'freeze_money'=>$this['freeze_money']+$money]);
+    }
+    /**
+     * 直推供应商多少人
+     */
+    public function refereeSupplierCount ($referee_id)
+    {
+        $count = $this->where('referee_id', '=', $referee_id)
+            ->where('is_delete', '=', 0)
+            ->count();
+        return $count;
+    }
 
+    /**
+     * 下级商户数量
+     * @param $user_id
+     * @return int
+     */
+    public function getSubordinateNum($user_id)
+    {
+        return (new static())->where('is_delete', '=', 0)
+            ->where('referee_id', 'in', $user_id)
+            ->count();
+    }
 
 }
\ No newline at end of file

--
Gitblit v1.9.2