From 73b874c72ad55eb9eef21c36160ac0de58f0189e Mon Sep 17 00:00:00 2001
From: quanwei <419654421@qq.com>
Date: Thu, 05 Feb 2026 10:30:43 +0800
Subject: [PATCH] 优化名片

---
 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