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/api/controller/supplier/Index.php |  156 +++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 123 insertions(+), 33 deletions(-)

diff --git a/admin/app/api/controller/supplier/Index.php b/admin/app/api/controller/supplier/Index.php
index 71efd2e..9e4b673 100644
--- a/admin/app/api/controller/supplier/Index.php
+++ b/admin/app/api/controller/supplier/Index.php
@@ -5,27 +5,39 @@
 use app\api\controller\Controller;
 use app\api\model\supplier\DepositOrder as DepositOrderModel;
 use app\api\model\supplier\DepositRefund as DepositRefundModel;
+use app\api\model\supplier\member\Order as MemberOrderModel;
+use app\api\model\supplier\member\Plan as MemberPlanModel;
 use app\api\model\supplier\Supplier as SupplierModel;
 use app\api\model\plus\coupon\Coupon as CouponModel;
 use app\api\model\page\Ad as AdModel;
 use app\api\model\order\Order as OrderModel;
 use app\api\model\user\Visit as VisitModel;
 use app\common\service\statistics\OrderService;
+use app\common\service\supplier\MemberService;
 use app\supplier\service\statistics\UserService;
 use app\supplier\model\order\OrderSettled as OrderSettledModel;
 use app\api\model\settings\Setting as SettingModel;
 use app\api\model\plus\live\Room as RoomModel;
 use app\common\model\supplier\Service as ServiceModel;
 use app\api\model\plus\chat\Chat as ChatModel;
-use app\api\model\supplier\Category as CategoryModel; // 主营分类 by lyzflash
-use app\api\model\user\Card as CardrModel; // 会员卡 by lyzflash
-use app\api\model\supplier\User as UserModel; // by lyzflash
+use app\api\model\supplier\Category as CategoryModel;
+
+// 主营分类 by lyzflash
+use app\api\model\user\Card as CardrModel;
+
+// 会员卡 by lyzflash
+use app\api\model\supplier\User as UserModel;
+
+// by lyzflash
 use app\api\model\plus\work\Setting as PlusSettingModel;
-use app\api\model\supplier\Group as GroupModel; // by yj
+use app\api\model\supplier\Group as GroupModel;
+
+// by yj
 use app\common\model\app\App as AppModel;
 use app\common\enum\order\OrderTypeEnum;
 use app\api\model\store\Store as StoreModel;
 use app\api\model\supplier\member\Member as MemberModel;
+
 /**
  * 供应商
  */
@@ -40,7 +52,7 @@
         $list = $SupplierModel->supplierList($param);
 
         $store_open = SettingModel::getStoreOpen();
-        return $this->renderSuccess('', compact('list','store_open'));
+        return $this->renderSuccess('', compact('list', 'store_open'));
     }
 
     //店铺列表
@@ -50,46 +62,111 @@
         $is_add = 0;//默认未添加群
         // 当前用户信息
         $user = $this->getUser();
-        if(!empty($param["source"]) && $param["source"] == 1){
+        if (!empty($param["source"]) && $param["source"] == 1) {
             //来自于点击企业微信客服的链接
-            $save_data=[
-                "shop_supplier_id"=>$param["shop_supplier_id"],
-                "user_id"=>$user["user_id"],
-                "app_id"=>$user["app_id"],
+            $save_data = [
+                "shop_supplier_id" => $param["shop_supplier_id"],
+                "user_id" => $user["user_id"],
+                "app_id" => $user["app_id"],
             ];
             $model = new GroupModel;
             $user_group = $model->add($save_data);
-            if($user_group){
+            if ($user_group) {
                 $is_add = 1;
             }
-        }else{
+        } else {
             //来自于扫码
-            $where=[
-                "shop_supplier_id"=>$param["shop_supplier_id"],
-                "user_id"=>$user["user_id"]
+            $where = [
+                "shop_supplier_id" => $param["shop_supplier_id"],
+                "user_id" => $user["user_id"]
             ];
             $user_group = GroupModel::detailByCondition($where);
-            if(!empty($user_group)){
+            if (!empty($user_group)) {
                 $is_add = 1;
             }
         }
 
         $SupplierModel = new SupplierModel;
         $result = $SupplierModel->getLists($param["shop_supplier_id"]);
-        $list=$result["list"];
-        $index=$result["index"];
+        $list = $result["list"];
+        $index = $result["index"];
 
         $data = PlusSettingModel::getItem('basic');
 
-        return $this->renderSuccess('', compact('list','index','data','is_add'));
+        return $this->renderSuccess('', compact('list', 'index', 'data', 'is_add'));
     }
 
     //店铺列表
     public function category()
     {
-        $category = CategoryModel::getALL()->toArray();
+        $param = request()->param();
+        $category = CategoryModel::getALL($param)->toArray();
         $category = array_merge([['category_id' => 0, 'name' => '全部']], $category);
         return $this->renderSuccess('', compact('category'));
+    }
+
+    public function getGroupBuyList()
+    {
+        $param = request()->param();
+        $model = new SupplierModel();
+        $param['product_num'] = isset($param['product_num']) ? $param['product_num'] : 3;
+
+        // 获取用户位置信息
+        $param['longitude'] = isset($param['longitude']) ? $param['longitude'] : 0;
+        $param['latitude'] = isset($param['latitude']) ? $param['latitude'] : 0;
+
+        // 处理筛选参数
+        if (isset($param['sortType'])) {
+            $sortMap = [
+                'smart' => 'all',
+                'distance' => 'distance',
+                'score' => 'score',
+                'price_low' => 'price_asc',
+                'price_high' => 'price_desc'
+            ];
+            if (isset($sortMap[$param['sortType']])) {
+                $param['sortType'] = $sortMap[$param['sortType']];
+            }
+        }
+
+        $list = $model->getGroupBuyList($param);
+        return $this->renderSuccess('', compact('list'));
+    }
+
+    public function getGroupBuyCondition()
+    {
+        $sortOptions = [
+            ['text' => '智能排序', 'value' => 'smart'],
+            ['text' => '距离最近', 'value' => 'distance'],
+            ['text' => '评分最高', 'value' => 'score'],
+            ['text' => '价格最低', 'value' => 'price_low'],
+            ['text' => '价格最高', 'value' => 'price_high']
+        ];
+
+        $distanceOptions = [
+            ['label' => '不限', 'value' => -1],
+            ['label' => '500m以内', 'value' => 0.5],
+            ['label' => '1km以内', 'value' => 1],
+            ['label' => '2km以内', 'value' => 2],
+            ['label' => '3km以内', 'value' => 3],
+            ['label' => '5km以内', 'value' => 5]
+        ];
+        $priceOptions = [
+            ['label' => '不限', 'value' => -1],
+            ['label' => '50元以下', 'value' => ['min' => 0, 'max' => 50]],
+            ['label' => '50-100元', 'value' => ['min' => 50, 'max' => 100]],
+            ['label' => '100-200元', 'value' => ['min' => 100, 'max' => 200]],
+            ['label' => '200元以上', 'value' => ['min' => 200, 'max' => -1]]
+        ];
+        $scoreOptions = [
+            ['label' => '不限', 'value' => -1],
+            ['label' => '4.0分以上', 'value' => 4.0],
+            ['label' => '4.5分以上', 'value' => 4.5],
+            ['label' => '4.8分以上', 'value' => 4.8]
+        ];
+        $category = CategoryModel::getALL(['category_type'=>20])->toArray();
+        $category = array_merge([['category_id' => 0, 'name' => '全部']], $category);
+        return $this->renderSuccess('', compact('sortOptions', 'distanceOptions', 'priceOptions', 'scoreOptions','category'));
     }
 
     /**
@@ -129,8 +206,8 @@
         $store_setting = SettingModel::getItem("store");
         $store_id = '';
         //展示门店的信息
-        if(!empty($store_setting) &&!empty($store_setting["store_type"]) && $store_setting["store_type"] == 1){
-           $store_id = storeModel::getStoreIdBySupplierId($data['shop_supplier_id']);
+        if (!empty($store_setting) && !empty($store_setting["store_type"]) && $store_setting["store_type"] == 1) {
+            $store_id = storeModel::getStoreIdBySupplierId($data['shop_supplier_id']);
         }
 
         return $this->renderSuccess('', compact('detail', 'couponList', 'adList', 'liveList', 'liv_status', 'service_open', 'mp_service', 'card_num', 'store_id'));
@@ -154,11 +231,11 @@
         $supplier = SupplierModel::detail($data['shop_supplier_id']);
         // 客服消息
         $msg_count = ChatModel::getNoReadCount($this->getSupplierUser($user)['supplier_user_id']);
-        $member=MemberModel::supplierDetail([
-            'shop_supplier_id'=>$data['shop_supplier_id'],
-            'is_expire'=>0
+        $member = MemberModel::supplierDetail([
+            'shop_supplier_id' => $data['shop_supplier_id'],
+            'is_expire' => 0
         ]);
-        return $this->renderSuccess('', compact('totalCount', 'todayCount', 'supplier', 'is_open', 'msg_count','member'));
+        return $this->renderSuccess('', compact('totalCount', 'todayCount', 'supplier', 'is_open', 'msg_count', 'member'));
     }
 
     /**
@@ -176,10 +253,22 @@
             return $this->renderSuccess('', compact('category'));
         }
         $params = $this->request->param();
+        $result = ['data' => ['order_id' => 0]];
+       if (!empty($params['plan_id'])){
+           $plans = (new MemberPlanModel())->detail($params['plan_id']);
+           if ($plans['price'] > 0) {
+               $memberService = new MemberService();
+               $result = $memberService->createOrder($supplier['shop_supplier_id'], $params['plan_id'], $user);
+               if (!$result['status']) {
+                   return $this->renderError($result['msg'] ?: '创建订单失败');
+               }
+           }
+       }
 
         // 生成订单
         $model = new DepositOrderModel;
-        $order_id = $model->createOrder($user, $supplier);
+        $order_id = $model->createOrder($user, $supplier, $result);
+
         if (!$order_id) {
             return $this->renderError($model->getError() ?: '创建订单失败');
         }
@@ -267,21 +356,22 @@
             return $this->renderError($model->getError() ?: '修改失败');
         }
     }
+
     public function refundDeposit()
     {
         $data = $this->postData();
         $model = new DepositRefundModel;
-        $shop_supplier=SupplierModel::detail($data['shop_supplier_id']);
-        if(!$shop_supplier){
+        $shop_supplier = SupplierModel::detail($data['shop_supplier_id']);
+        if (!$shop_supplier) {
             return $this->renderError('店铺不存在');
         }
-        if ($shop_supplier['status']==10){
+        if ($shop_supplier['status'] == 10) {
             return $this->renderError('退还押金申请中,不能重复申请');
         }
-        $data['deposit_money']=$shop_supplier['deposit_money'];
-        if($model->add($data)){
+        $data['deposit_money'] = $shop_supplier['deposit_money'];
+        if ($model->add($data)) {
             return $this->renderSuccess('提交成功');
-        }else{
+        } else {
             return $this->renderError($model->getError() ?: '提交失败');
         }
     }

--
Gitblit v1.9.2