gorden 5 kuukautta sitten
vanhempi
säilyke
153d5980d5
1 muutettua tiedostoa jossa 30 lisäystä ja 3 poistoa
  1. 30 3
      app/admin/service/order/OrderService.php

+ 30 - 3
app/admin/service/order/OrderService.php

@@ -796,7 +796,7 @@ class OrderService
                 if ($couponDetail->coupon_category == 'PIECE' && $countAndAmount['count'] < $couponDetail->coupon_minimum_limit) {
                     continue;
                 }
-                if (in_array($couponDetail->coupon_classify, ['立减券', '满减券'])) {
+                if (in_array($couponDetail->coupon_classify, ['立减券','满减券'])) {
                     if (Redis::sIsMember($cacheKey, $couponId)) {
                         continue;
                     }
@@ -804,7 +804,34 @@ class OrderService
                     if ($couponDetail->coupon_category == 'PIECE' || ($couponDetail->coupon_category == 'NORMAL' && $countAndAmount['amount'] >= $couponDetail->coupon_minimum_limit)) {
                         $payAmount = $payAmount - $couponDetail->coupon_value;
                     }
-                } elseif ($couponDetail->coupon_classify == '折扣券') {
+                }
+//                elseif ($couponDetail->coupon_classify == '满减券') {
+//                    if (Redis::sIsMember($cacheKey, $couponId)) {
+//                        continue;
+//                    }
+//                    Redis::sAdd($cacheKey, $couponId);
+//                    // 计件
+//                    if ($couponDetail->coupon_category == 'PIECE' && $countAndAmount['count'] >= $couponDetail->coupon_minimum_limit) {
+//                        $goodsIds = array_splice($countAndAmount['goodsIds'], 0, $couponDetail->coupon_value);
+//                        $amount = 0;
+//                        $goodsNbr = 0;
+//                        foreach ($goods as $countAndAmountGood) {
+//                            if (in_array($countAndAmountGood['goods_id'], $goodsIds) && $goodsNbr < $couponDetail->coupon_value) {
+//                                if ($goodsNbr + $countAndAmountGood['nbr'] <= $couponDetail->coupon_value) {
+//                                    $amount = $amount + round($countAndAmountGood['goods_sales_price'] * $countAndAmountGood['nbr'], 2);
+//                                    $goodsNbr += $countAndAmountGood['nbr'];
+//                                } elseif ($goodsNbr + $countAndAmountGood['nbr'] > $couponDetail->coupon_value) {
+//                                    $amount = $amount + round($countAndAmountGood['goods_sales_price'] * ($couponDetail->coupon_value - $goodsNbr), 2);
+//                                    $goodsNbr = $couponDetail->coupon_value - $goodsNbr;
+//                                }
+//                            }
+//                        }
+//                        $payAmount = $payAmount - $amount;
+//                    }else if ($couponDetail->coupon_category == 'NORMAL' && $countAndAmount['amount'] >= $couponDetail->coupon_minimum_limit) { // 金额
+//                        $payAmount = $payAmount - $couponDetail->coupon_value;
+//                    }
+//                }
+                elseif ($couponDetail->coupon_classify == '折扣券') {
                     if (Redis::sIsMember($cacheKey, $couponId)) {
                         continue;
                     }
@@ -894,7 +921,7 @@ class OrderService
                 }
             }
 
-            return compact('count', 'amount','goodsIds');
+            return compact('count', 'amount', 'goodsIds');
         } catch (\Exception $e) {
             dump($e->getTrace());
         }