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/product/Category.php |  113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 112 insertions(+), 1 deletions(-)

diff --git a/admin/app/common/model/product/Category.php b/admin/app/common/model/product/Category.php
index e1419b9..3c6a6b7 100644
--- a/admin/app/common/model/product/Category.php
+++ b/admin/app/common/model/product/Category.php
@@ -42,7 +42,7 @@
     {
         $model = new static;
         if (!Cache::get('category_' . $model::$app_id)) {
-            $data = $model->with(['images'])->order(['sort' => 'asc', 'create_time' => 'asc'])->select();
+            $data = $model->with(['images'])->where(['shop_supplier_id'=>0])->order(['sort' => 'asc', 'create_time' => 'asc'])->select();
             $all = !empty($data) ? $data->toArray() : [];
             $tree = [];
             foreach ($all as $first) {
@@ -70,6 +70,40 @@
     }
 
     /**
+     * 所有分类
+     */
+    public static function getCategoryALL()
+    {
+        $model = new static;
+        if (!Cache::get('category_all_' . $model::$app_id)) {
+            $data = $model->with(['images'])->order(['sort' => 'asc', 'create_time' => 'asc'])->select();
+            $all = !empty($data) ? $data->toArray() : [];
+            $tree = [];
+            foreach ($all as $first) {
+                if ($first['parent_id'] != 0) continue;
+                $twoTree = [];
+                foreach ($all as $two) {
+                    if ($two['parent_id'] != $first['category_id']) continue;
+                    $threeTree = [];
+                    foreach ($all as $three)
+                        $three['parent_id'] == $two['category_id']
+                        && $threeTree[$three['category_id']] = $three;
+                    !empty($threeTree) && $two['child'] = $threeTree;
+                    array_push($twoTree, $two);
+                }
+                if (!empty($twoTree)) {
+                    $temp_two_tree = array_column($twoTree, 'sort');
+                    array_multisort($temp_two_tree, SORT_ASC, $twoTree);
+                    $first['child'] = $twoTree;
+                }
+                array_push($tree, $first);
+            }
+            Cache::tag('cache')->set('category_all_' . $model::$app_id, compact('all', 'tree'));
+        }
+        return Cache::get('category_all_' . $model::$app_id);
+    }
+
+    /**
      * 获取所有分类
      */
     public static function getCacheAll()
@@ -82,6 +116,13 @@
      */
     public static function getCacheTree()
     {
+        return self::getALL()['tree'];
+    }
+    public static function getCacheTreeShop($shop_supplier_id=0)
+    {
+        if ($shop_supplier_id){
+            return self::getSupplierCacheTree($shop_supplier_id);
+        }
         return self::getALL()['tree'];
     }
 
@@ -148,5 +189,75 @@
     {
         return $this->field(['category_id', 'name', 'parent_id'])->where('category_id', 'in', $ids)->select();
     }
+    /**
+     * 所有分类(商户)
+     */
+    public static function getSupplierALL($shop_supplier_id)
+    {
+        $model = new static;
+        if (!Cache::get('category_supplier_' . $shop_supplier_id)) {
+            $data = $model->with(['images'])
+                ->where('shop_supplier_id','in',[0,$shop_supplier_id])
+                ->order(['sort' => 'asc', 'create_time' => 'asc'])->select();
+            $all = !empty($data) ? $data->toArray() : [];
+            $tree = [];
+            foreach ($all as $first) {
+                if ($first['parent_id'] != 0) continue;
+                $twoTree = [];
+                foreach ($all as $two) {
+                    if ($two['parent_id'] != $first['category_id']) continue;
+                    $threeTree = [];
+                    foreach ($all as $three)
+                        $three['parent_id'] == $two['category_id']
+                        && $threeTree[$three['category_id']] = $three;
+                    !empty($threeTree) && $two['child'] = $threeTree;
+                    array_push($twoTree, $two);
+                }
+                if (!empty($twoTree)) {
+                    $temp_two_tree = array_column($twoTree, 'sort');
+                    array_multisort($temp_two_tree, SORT_ASC, $twoTree);
+                    $first['child'] = $twoTree;
+                }
+                array_push($tree, $first);
+            }
+            Cache::tag('cache')->set('category_supplier_' .$shop_supplier_id, compact('all', 'tree'));
+        }
+        return Cache::get('category_supplier_' . $shop_supplier_id);
+    }
+
+    /**
+     * 获取所有分类
+     */
+    public static function getSupplierCacheAll($shop_supplier_id)
+    {
+        return self::getSupplierALL($shop_supplier_id)['all'];
+    }
+
+    /**
+     * 获取所有分类(树状结构)
+     */
+    public static function getSupplierCacheTree($shop_supplier_id)
+    {
+        return self::getSupplierALL($shop_supplier_id)['tree'];
+    }
+
+    /**
+     * 获取所有分类(树状结构)
+     * @return string
+     */
+    public static function getSupplierCacheTreeJson($shop_supplier_id)
+    {
+        return json_encode(static::getSupplierCacheTree($shop_supplier_id));
+    }
+    /**
+     * 获取所有一级分类
+     */
+    public static function getSupplierFirstCategory($shop_supplier_id)
+    {
+        return (new static())->where('parent_id', '=', 0)
+            ->where('shop_supplier_id', '=', $shop_supplier_id)
+            ->order(['sort' => 'asc', 'create_time' => 'asc'])
+            ->select();
+    }
 
 }

--
Gitblit v1.9.2