Procházet zdrojové kódy

app-hd(零售)支持满减与折扣

shizhongqi před 3 měsíci
rodič
revize
ab3f4c3004

+ 5 - 9
app-hd/controllers/ShopController.php

@@ -149,10 +149,13 @@ class ShopController extends BaseController
         $data['sjId'] = $this->sjId;
         $id = isset($data['id']) ? $data['id'] : 0;
         unset($data['id']);
+        $data['meetNum'] = isset($data['meetNum']) ? intval($data['meetNum']) : 0;
+        $data['meetAmount'] = isset($data['meetAmount']) ? floatval($data['meetAmount']) : 0;
+        $data['cutAmount'] = isset($data['cutAmount']) ? floatval($data['cutAmount']) : 0;
+
         $shop = ShopService::getById($id);
-        ShopService::valid($shop, $this->sjId);
+        ShopClass::valid($shop, $this->sjId);
         $data['img'] = isset($data['img']) && is_array($data['img']) ? json_encode($data['img']) : '';
-        $mobile = $data['mobile'];
         //手机号具有唯一性,暂时不允许修改 --- 同批发端 app-ghs/controllers/ShopController.php 保持一致
         unset($data['mobile']);
 
@@ -161,13 +164,6 @@ class ShopController extends BaseController
         $transaction = $connection->beginTransaction();
         try {
             ShopClass::updateShop($shop, $data);
-
-            // 找出附近批发店,之后自动给建立关系,然后补充二个店之间的距离(计算距离使用高德接口)
-            // if(isset($data['openLocation']) && $data['openLocation'] == 1){
-            //     $toLat = $data['lat'] ?? null;
-            //     $toLnt = $data['long'] ?? null;
-            //     \biz\ghs\classes\GhsClass::buildNearbyGhsRelations($id, $this->shop->pfShopId, $toLat, $toLnt);
-            // }
             $transaction->commit();
             util::complete();
         } catch (\Exception $exception) {

+ 1 - 0
app-mall/controllers/OrderController.php

@@ -448,6 +448,7 @@ class OrderController extends BaseController
                 }
             }
 
+            $post['bigNum'] = $totalNum;
             $post['modifyPrice'] = $modifyPrice;
             //多处调用这个方法,注意同步修改,搜索关键词 createHdNewOrder
             $return = \bizHd\order\services\OrderService::createHdOrder($post, $custom, $hasPay);

+ 30 - 0
biz-hd/order/classes/OrderClass.php

@@ -274,6 +274,36 @@ class OrderClass extends BaseClass
         }
         $data['reachTime'] = strtotime($data['reachDate'] . ' ' . $data['reachPeriod']);
 
+        // 客户自己下单才有整单满减
+        if (isset($data['fromType']) && $data['fromType'] == dict::getDict('fromType', 'mall')) {
+            $book = $data['book'] ?? 0;
+            if ($book == 0) {
+                $actPrice = $data['actPrice'];
+                $meetNum = $shop->meetNum ?? 0;
+                $meetAmount = $shop->meetAmount ?? 0;
+                $cutOption = $shop->cutAmount ?? 0;
+                $cutStyle = $shop->cutStyle ?? 0;
+
+                if ($cutStyle == 0) {
+                    $cutAmount = $cutOption;
+                } else {
+                    $miniOption = bcsub(1, $cutOption, 2);
+                    $cutAmount = bcmul($actPrice, $miniOption, 2);
+                }
+                if ($cutAmount > 0 && $meetNum > 0 && $meetAmount > 0) {
+                    if (isset($data['bigNum']) && $data['bigNum'] >= $meetNum && $data['actPrice'] >= $meetAmount) {
+                        if ($cutAmount < $actPrice) {
+                            $actPrice = bcsub($actPrice, $cutAmount, 2);
+                            $data['orderReachDiscountPrice'] = $cutAmount;
+                            $data['actPrice'] = $actPrice;
+                        } else {
+                            noticeUtil::push('订单金额不足满减金额,customId:' . $data['customId'], '15280215347');
+                        }
+                    }
+                }
+            }
+        }
+
         //将花店每月的总订单数作为编号
         $riseNum = StatOrderCountClass::addOrder($shop, $main);
         $data['sendNum'] = date("j") . $riseNum;