Bläddra i källkod

Merge branch 'newsh' into dev

shish 1 dag sedan
förälder
incheckning
f902fec109

+ 5 - 0
app-ghs/controllers/CustomController.php

@@ -1117,6 +1117,11 @@ class CustomController extends BaseController
         if (empty($ghs)) {
             util::fail('没有找到供货商');
         }
+        if (isset($get['home'])) {
+            $home = (int)$get['home'];
+            $custom->home = $home;
+            $ghs->home = $home;
+        }
         $custom->homeAmount = $homeAmount;
         $custom->homeNum = $homeNum;
         $custom->homeUnMeet = $homeUnMeet;

+ 1 - 1
app-ghs/controllers/ShMethodController.php

@@ -67,7 +67,7 @@ class ShMethodController extends BaseController
      * - sort: 排序
      * - minAmount: 最低消费金额
      * - minNum: 最低消费数量
-     * - unMeet: 不满条件处理方式 (0: 收运费, 1: 不能下单, 2: 收包装费)
+     * - unMeet: 不满条件处理方式 (0: 收运费, 1: 收包装费, 2: 不能下单)
      * - unMeetFee: 运费/包装费金额
      * - startKm: 起步公里数
      * - startPrice: 起步价格

+ 1 - 1
app-hd/controllers/ShMethodController.php

@@ -65,7 +65,7 @@ class ShMethodController extends BaseController
                         $config['minAmount'] = 0;
                         $config['minNum'] = 0;
                         $config['unMeetFee'] = 0;
-                    } elseif ($unMeet === 2 && $hasPaidPackCost) {
+                    } elseif ($unMeet === 1 && $hasPaidPackCost) {
                         $config['minAmount'] = 0;
                         $config['minNum'] = 0;
                         $config['unMeetFee'] = 0;

+ 8 - 8
biz-ghs/order/classes/ShMethodClass.php

@@ -254,7 +254,7 @@ class ShMethodClass extends BaseClass
         $unMeetFee = isset($config['unMeetFee']) ? (float)$config['unMeetFee'] : 0;
 
         // 不满最低消费且不允许下单
-        if ($unMeet === 1) {
+        if ($unMeet === 2) {
             if ($minAmount > 0 && (float)$actPrice < $minAmount) {
                 return "满{$minAmount}元 可{$methodName}";
             }
@@ -265,12 +265,12 @@ class ShMethodClass extends BaseClass
         }
 
         // 不满最低消费但允许加收费用时,校验包装费/运费是否已写入采购单,防止前端绕过
-        if (($unMeet === 0 || $unMeet === 2) && $unMeetFee > 0) {
-            // unMeet === 0 加收运费, unMeet === 2 加收包装费
-            $feeToCheck = $unMeet === 2 ? $packCost : $sendCost;
+        if (($unMeet === 0 || $unMeet === 1) && $unMeetFee > 0) {
+            // unMeet === 0 加收运费, unMeet === 1 加收包装费
+            $feeToCheck = $unMeet === 1 ? $packCost : $sendCost;
             
             // 如果今天已经收过对应的附加费用,则直接通过校验
-            if ($unMeet === 2 && self::isPackPaidToday($customId, $style)) {
+            if ($unMeet === 1 && self::isPackPaidToday($customId, $style)) {
                 return '';
             }
             if ($unMeet === 0 && self::isSendCostPaidToday($customId, $style)) {
@@ -278,7 +278,7 @@ class ShMethodClass extends BaseClass
             }
             
             if (bccomp((string)$feeToCheck, (string)$unMeetFee, 2) < 0) {
-                $feeLabel = $unMeet === 2 ? '包装费' : '运费';
+                $feeLabel = $unMeet === 1 ? '包装费' : '运费';
                 return "未达最低消费,需加收{$feeLabel}{$unMeetFee}元";
             }
         }
@@ -378,12 +378,12 @@ class ShMethodClass extends BaseClass
         $unMeetFee = isset($config['unMeetFee']) ? (float)$config['unMeetFee'] : 0;
         
         if ($unMeetFee > 0) {
-            // unMeet: 0 加收运费(默认),2 加收包装费
+            // unMeet: 0 加收运费(默认),1 加收包装费,2 不能下单
             if ($unMeet === 0) {
                 if (!self::isSendCostPaidToday($customId, $style)) {
                     $costs['sendCost'] = $unMeetFee;
                 }
-            } elseif ($unMeet === 2) {
+            } elseif ($unMeet === 1) {
                 if (!self::isPackPaidToday($customId, $style)) {
                     $costs['packCost'] = $unMeetFee;
                 }

+ 3 - 1
common/components/delivery/util/DeliveryQuoteUtil.php

@@ -167,7 +167,9 @@ class DeliveryQuoteUtil
         $shConfig = $params['shConfig'] ?? [];
         $sendCost = $params['sendCost'] ?? 0;
         $sendDistance = $params['sendDistance'] ?? 0;
+        $sendDistanceKm = bcdiv($sendDistance, 1000, 2);
         $freightType = $params['freightType'] ?? 0;
+        //0 花束 1 花材
         $property = $params['property'] ?? 1;
         $totalPrice = $params['totalPrice'] ?? 0;
         $totalNum = $params['totalNum'] ?? 0;
@@ -185,7 +187,7 @@ class DeliveryQuoteUtil
                 $freeKm = (float)($rule['freeKm'] ?? 0);
 
                 // 校验规则:金额满 meetAmount 且 数量满 meetNum 且 距离在 freeKm 以内
-                if ($totalPrice >= $meetAmount && $totalNum >= $meetNum && $sendDistance <= $freeKm) {
+                if ($totalPrice >= $meetAmount && $totalNum >= $meetNum && $sendDistanceKm <= $freeKm) {
                     return ['sendCost' => 0];
                 }
             }