فهرست منبع

营业状态管理

shish 7 ماه پیش
والد
کامیت
e972977dfb
3فایلهای تغییر یافته به همراه37 افزوده شده و 15 حذف شده
  1. 10 14
      app-mall/controllers/OrderController.php
  2. 23 0
      biz-hd/shop/classes/ShopClass.php
  3. 4 1
      biz-mall/hd/classes/HdClass.php

+ 10 - 14
app-mall/controllers/OrderController.php

@@ -174,20 +174,10 @@ class OrderController extends BaseController
         $userId = $this->userId;
         util::checkRepeatCommit($userId, 3);
 
-        // 判断是否在营业时间窗口
-        $openTime = $this->shop->openStartTime;
-        $closeTime = $this->shop->openEndTime;
-        if ($openTime != '' && $closeTime != '') {
-            $openHourMinute = explode(':', $openTime);
-            $closeHourMinute = explode(':', $closeTime);
-            $currentHour = date('H');
-            $currentMinute = date('i');
-            if ($currentHour < intval($openHourMinute[0]) || ($currentHour == intval($openHourMinute[0]) && $currentMinute < intval($openHourMinute[1]))) {
-                util::fail('不在营业时间窗口');
-            }
-            if ($currentHour > intval($closeHourMinute[0]) || ($currentHour == intval($closeHourMinute[0]) && $currentMinute > intval($closeHourMinute[1]))) {
-                util::fail('不在营业时间窗口');
-            }
+        $shop = $this->shop;
+        $openShop = \bizHd\shop\classes\ShopClass::getOpenShop($shop);
+        if ($openShop == 0) {
+            util::fail('已休店');
         }
 
         //普莲花艺、叶上花、丰行、小武鲜花、九江云朵、源花汇、紫荆不能在花卉宝下单,多处要同步修改,关键词ls_mall_not_open
@@ -460,6 +450,12 @@ class OrderController extends BaseController
         $userId = $this->userId;
         util::checkRepeatCommit($userId, 3);
 
+        $shop = $this->shop;
+        $openShop = \bizHd\shop\classes\ShopClass::getOpenShop($shop);
+        if ($openShop == 0) {
+            util::fail('已休店');
+        }
+
         // 判断是否在营业时间窗口
         $openTime = $this->shop->openStartTime; // 示例:09:10
         $closeTime = $this->shop->openEndTime; // 示例:18:30

+ 23 - 0
biz-hd/shop/classes/ShopClass.php

@@ -22,6 +22,29 @@ class ShopClass extends BaseClass
 
     public static $baseFile = '\bizHd\shop\models\Shop';
 
+    //是否营业状态 ssh 20251219
+    public static function getOpenShop($shop)
+    {
+        $openShop = 1;
+        if ($shop['open'] == 0) {
+            $openShop = 0;
+        } else {
+            $openStartTime = $shop['openStartTime'] ?? '';
+            $openEndTime = $shop['openEndTime'] ?? '';
+            if (!empty($openStartTime) && !empty($openEndTime)) {
+                $start = date('Y-m-d') . ' ' . $openStartTime;
+                $startTime = strtotime($start);
+                $end = date('Y-m-d') . ' ' . $openEndTime;
+                $endTime = strtotime($end);
+                $currentTime = time();
+                if ($currentTime < $startTime || $currentTime > $endTime) {
+                    $openShop = 0;
+                }
+            }
+        }
+        return $openShop;
+    }
+
     //需要算上包装费
     public static function needAddPackCost($ghsShop, $customId, $orderAmount = 0)
     {

+ 4 - 1
biz-mall/hd/classes/HdClass.php

@@ -25,7 +25,7 @@ class HdClass extends BaseClass
             return $list;
         }
         $ids = array_column($list, 'shopId');
-        $shopList = ShopClass::getAllByCondition(['id' => ['in', $ids]], null, 'id,shopName,rechargeWeal', 'id');
+        $shopList = ShopClass::getAllByCondition(['id' => ['in', $ids]], null, 'id,shopName,rechargeWeal,open,openStartTime,openEndTime', 'id');
         foreach ($list as $key => $val) {
             $shortAvatar = $val['avatar'] ?? '';
             $smallAvatar = imgUtil::groupImg($shortAvatar) . "?x-oss-process=image/resize,m_fill,h_130,w_130";
@@ -38,6 +38,9 @@ class HdClass extends BaseClass
             //是否设置了充值福利 ssh 2025031
             $rechargeWeal = $currentShop['rechargeWeal'] ?? 0;
             $list[$key]['rechargeWeal'] = $rechargeWeal;
+            //是否营业状态
+            $openShop = ShopClass::getOpenShop($currentShop);
+            $list[$key]['openShop'] = $openShop;
         }
         return $list;
     }