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/plus/business/Business.php |   31 +++++++++++++++++++++++++------
 1 files changed, 25 insertions(+), 6 deletions(-)

diff --git a/admin/app/common/model/plus/business/Business.php b/admin/app/common/model/plus/business/Business.php
index 035f8be..67c2145 100644
--- a/admin/app/common/model/plus/business/Business.php
+++ b/admin/app/common/model/plus/business/Business.php
@@ -65,7 +65,7 @@
     public function logoImage()
     {
         $model = self::getCalledModule() ?: 'common';
-        return $this->hasOne("app\\$model\\model\\file\\UploadFile", 'file_id', 'logo')->bind(['file_path']);
+        return $this->hasOne("app\\$model\\model\\file\\UploadFile", 'file_id', 'logo');
     }
 
     /**
@@ -76,6 +76,11 @@
     {
         $model = self::getCalledModule() ?: 'common';
         return $this->hasOne("app\\$model\\model\\plus\\business\\Grade", 'grade_id', 'grade_id');
+    }
+    public function industry()
+    {
+        $model = self::getCalledModule() ?: 'common';
+        return $this->hasOne("app\\$model\\model\\plus\\business\\Industry", 'industry_id', 'industry_id');
     }
 
     /**
@@ -127,18 +132,32 @@
         !empty($paramr['province_id']) && $where['province_id'] = $paramr['province_id'];
         !empty($paramr['city_id']) && $where['city_id'] = $paramr['city_id'];
         !empty($paramr['region_id']) && $where['region_id'] = $paramr['region_id'];
+        // 检查置顶时间是否过期,如果过期则设置为非置顶
+        $this->checkTopExpire();
         if (!empty($paramr['sort'])) {
+            $order = ['is_top' => 'desc', 'top_time' => 'desc'];
             if ($paramr['sort'] == 'name') {
-                $order = ['name' => "asc"];
+                $order['name'] = "asc";
             } else if ($paramr['sort'] == 'time') {
-                $order = ['create_time' => "asc"];
+                $order['create_time'] = "asc";
             } else {
-                $order = ['unit' => "asc"];
+                $order['unit'] = "asc";
             }
         } else {
-            $order = ['is_default' => 'desc', 'create_time' => 'desc'];
+            // 按置顶状态和创建时间排序
+            $order = ['is_top' => 'desc', 'top_time' => 'desc', 'create_time' => 'desc'];
         }
         return $this->with(['user', 'image', 'logoImage', 'grade'])->order($order)->where($where)->paginate($paramr);
+    }
+
+    /**
+     * 检查并更新过期的置顶名片
+     */
+    private function checkTopExpire()
+    {
+        $this->where('is_top', 1)
+            ->where('top_time', '<', time())
+            ->update(['is_top' => 0]);
     }
 
     /**
@@ -149,6 +168,6 @@
      */
     public static function detail($business_card_id)
     {
-        return (new self())->with(['user', 'image', 'logoImage', 'grade'])->where(['business_card_id' => $business_card_id])->find();
+        return (new self())->with(['user', 'image', 'logoImage', 'grade', 'industry'])->where(['business_card_id' => $business_card_id])->find();
     }
 }
\ No newline at end of file

--
Gitblit v1.9.2