From abc7edc3c8ad59ff213c85413d0d6a10d7a0b6f7 Mon Sep 17 00:00:00 2001
From: quanwei <419654421@qq.com>
Date: Wed, 17 Dec 2025 18:03:09 +0800
Subject: [PATCH] 1. 发布供需消耗连盟币,连盟币数量在后台独立设置 2. 小程序供需个人中心可自由切换身份 3. 增加私信系统 4. 增加评论系统,用户可在发布者详情页进行评论操作,评论获得的连盟币可在后台设置 5. 增加发布者的等级,以好评个数为条件进行升级,小程序端会显示该等级的图标,如没有等级则不会显示图标 6. 增加设置消耗连盟币可以解锁、查看发布的信息,费用可在后台设置 7. 小程序供需大厅界面优化,以及增加了推荐栏目,该栏目按发布的分类相似进行匹配,比如A用户发布了 互联网 分类的需求,则会优先推荐匹配互联网分类的供应需求给他。
---
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