From 33f004d1196d056b99a3886de070d429315bac39 Mon Sep 17 00:00:00 2001
From: quanwei <419654421@qq.com>
Date: Thu, 11 Dec 2025 18:12:38 +0800
Subject: [PATCH] 将分类改为多选 修复活动报名 实现成为vip会员时根据活动报名信息绑定下级
---
admin/app/common/model/product/Category.php | 79 +++++++++++++++++++++++++++++++++++++++
1 files changed, 78 insertions(+), 1 deletions(-)
diff --git a/admin/app/common/model/product/Category.php b/admin/app/common/model/product/Category.php
index e1419b9..d15b711 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) {
@@ -82,6 +82,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 +155,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