Browse Source

优惠券

gorden 6 months ago
parent
commit
39de71f932
1 changed files with 5 additions and 5 deletions
  1. 5 5
      app/admin/service/order/OrderService.php

+ 5 - 5
app/admin/service/order/OrderService.php

@@ -541,11 +541,11 @@ class OrderService
                     }
                     Redis::sAdd($cacheKey, $goodsId);
                     if ($couponDetail->coupon_category == 'PIECE' || ($couponDetail->coupon_category == 'NORMAL' && $countAndAmount['amount'] >= $couponDetail->coupon_minimum_limit)) {
-                        $payAmount = $payAmount - ($money * $couponDetail->coupon_value / 100);
+                        $payAmount = $payAmount - ($money * (100 - $couponDetail->coupon_value) / 100);
                         if (!empty($discountData[$couponId]['coupon_value'])) {
-                            $zhekouAmount = $discountData[$couponId]['coupon_value'] + ($money * $couponDetail->coupon_value / 100);
+                            $zhekouAmount = $discountData[$couponId]['coupon_value'] + ($money * (100 - $couponDetail->coupon_value) / 100);
                         } else {
-                            $zhekouAmount = $money * $couponDetail->coupon_value / 100;
+                            $zhekouAmount = $money * (100 - $couponDetail->coupon_value) / 100;
                         }
                         // json记录
                         $discountData[$couponId] = [
@@ -561,7 +561,6 @@ class OrderService
                     if (Redis::sIsMember($cacheKey, $goodsId)) {
                         continue;
                     }
-                    Redis::sAdd($cacheKey, $goodsId);
                     if ($couponDetail->coupon_category == 'PIECE' || ($couponDetail->coupon_category == 'NORMAL' && $countAndAmount['amount'] >= $couponDetail->coupon_minimum_limit)) {
                         $diyongCouponDetailIds = CouponDetail::leftJoin('coupon_goods', 'coupon_goods.join_goods_coupon_id', '=', 'coupon_detail.join_detail_coupon_id')
                             ->where('join_detail_coupon_id', $couponId)
@@ -593,6 +592,7 @@ class OrderService
                             if (!Redis::sIsMember($cacheKey, $detailId)) {
                                 $useDetailIds[] = $detailId;
                                 Redis::sAdd($cacheKey, $detailId);
+                                Redis::sAdd($cacheKey, $goodsId);
                                 CouponDetail::where('coupon_detail_id', $detailId)->update(['coupon_detail_status' => 'USED']);
                                 if ($good['nbr'] > 1) {
                                     $payAmount = $payAmount - $good['goods_sales_price'];
@@ -751,7 +751,7 @@ class OrderService
                     }
                     Redis::sAdd($cacheKey, $goodsId);
                     if ($couponDetail->coupon_category == 'PIECE' || ($couponDetail->coupon_category == 'NORMAL' && $countAndAmount['amount'] >= $couponDetail->coupon_minimum_limit)) {
-                        $payAmount = $payAmount - ($money * $couponDetail->coupon_value / 100);
+                        $payAmount = $payAmount - ($money * (100 - $couponDetail->coupon_value) / 100);
                     }
                 } elseif (in_array($couponDetail->coupon_classify, ['抵用券', '赠品券'])) {
                     if (Redis::sIsMember($cacheKey, $goodsId)) {