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/branch/Activity.php |   64 +++++++++++++++++++++++++++++++-
 1 files changed, 62 insertions(+), 2 deletions(-)

diff --git a/admin/app/common/model/branch/Activity.php b/admin/app/common/model/branch/Activity.php
index 7d246a2..9ea4106 100644
--- a/admin/app/common/model/branch/Activity.php
+++ b/admin/app/common/model/branch/Activity.php
@@ -20,6 +20,7 @@
         'register_time_text',
         'activity_time_text',
         'status_text',
+        'audit_status_text',
     ];
 
     /**
@@ -146,6 +147,22 @@
     }
 
     /**
+     * 审核状态文本
+     * @param $value
+     * @param $data
+     * @return string
+     */
+    public function getAuditStatusTextAttr($value, $data)
+    {
+        $status = isset($data['audit_status']) ? $data['audit_status'] : 0;
+        $text = [0=>'待审核',10=> '已通过', 20=> '已驳回'];
+        return [
+            'status' => $status,
+            'text' => $text[$status] ?? '待审核'
+        ];
+    }
+
+    /**
      * 活动详情
      */
     public static function detail($activity_id)
@@ -174,9 +191,10 @@
      * @param $data
      * @return bool
      */
-    public function onBatchUpdate($activityIds, $data)
+    public static function onBatchUpdate($activityIds, $data)
     {
-        return $this->where('activity_id', 'in', $activityIds)->save($data);
+        $model = new static();
+        return $model->where('activity_id', 'in', $activityIds)->save($data);
     }
 
     /**
@@ -219,4 +237,46 @@
             ->limit($limit)
             ->select();
     }
+
+    /**
+     * 检查走访企业30天内是否已被走访
+     * @param int $visit_supplier_id 被走访企业ID
+     * @param int $visit_supplier_name 被走访企业名称
+     * @param int $exclude_activity_id 排除的活动ID(编辑时使用)
+     * @return array|bool 返回剩余天数或false
+     */
+    public function checkVisitLimit($visit_supplier_id, $visit_supplier_name, $exclude_activity_id = 0)
+    {
+        // 查询30天内该分会是否走访过该企业
+        $thirtyDaysAgo = time() - (30 * 24 * 3600);
+        
+        $query = $this
+            ->where('is_delete', '=', 0)
+            ->where('create_time', '>', $thirtyDaysAgo);
+        if ($visit_supplier_id!=0){
+            $query = $query->where('visit_supplier_id', '=', $visit_supplier_id);
+        }elseif ($visit_supplier_name!=''){
+            $query = $query->where('visit_supplier_name', '=', $visit_supplier_name);
+        }
+        // 如果是编辑操作,排除当前活动
+        if ($exclude_activity_id > 0) {
+            $query =  $query->where('activity_id', '<>', $exclude_activity_id);
+        }
+        
+        $recentVisit = $query->order('create_time', 'desc')->find();
+        
+        if ($recentVisit) {
+            // 计算剩余天数
+            $daysSinceVisit = floor((time() - strtotime($recentVisit['create_time'])) / (24 * 3600));
+            $remainingDays = 30 - $daysSinceVisit;
+            return [
+                'visited' => true,
+                'remaining_days' => max(0, $remainingDays),
+                'last_visit_time' => $recentVisit['create_time'],
+                'activity_id' => $recentVisit['activity_id']
+            ];
+        }
+        
+        return false;
+    }
 }

--
Gitblit v1.9.2