|
@@ -441,36 +441,39 @@ class OrderService
|
|
|
*/
|
|
|
public static function payUseCoupon($memberId, $goods, $coupon, $payAmount)
|
|
|
{
|
|
|
- dump("进到payUseCoupon");
|
|
|
- foreach ($coupon as $item) {
|
|
|
- if (!in_array(substr($item, 0, 2), ['CU', 'CO'])) {
|
|
|
- return [];
|
|
|
+ try {
|
|
|
+ foreach ($coupon as $item) {
|
|
|
+ if (!in_array(substr($item, 0, 2), ['CU', 'CO'])) {
|
|
|
+ return [];
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- $amountBalance = [
|
|
|
- 'pay_amount' => $payAmount,
|
|
|
- 'welfare_balance' => 0,
|
|
|
- 'cut_balance' => 0,
|
|
|
- ];
|
|
|
- foreach ($goods as $good) {
|
|
|
- $result = OrderService::useCoupon($memberId, $goods, $good, $coupon, $amountBalance);
|
|
|
$amountBalance = [
|
|
|
- 'pay_amount' => $result['pay_amount'],
|
|
|
- 'welfare_balance' => $result['welfare_balance'],
|
|
|
- 'cut_balance' => $result['cut_balance'],
|
|
|
+ 'pay_amount' => $payAmount,
|
|
|
+ 'welfare_balance' => 0,
|
|
|
+ 'cut_balance' => 0,
|
|
|
];
|
|
|
- }
|
|
|
+ foreach ($goods as $good) {
|
|
|
+ $result = OrderService::useCoupon($memberId, $goods, $good, $coupon, $amountBalance);
|
|
|
+ $amountBalance = [
|
|
|
+ 'pay_amount' => $result['pay_amount'],
|
|
|
+ 'welfare_balance' => $result['welfare_balance'],
|
|
|
+ 'cut_balance' => $result['cut_balance'],
|
|
|
+ ];
|
|
|
+ }
|
|
|
|
|
|
- $couponDetailsIds = Redis::sMembers("ORDER:USE:COUPON:" . $memberId);
|
|
|
- Redis::del("ORDER:USE:COUPON:" . $memberId);
|
|
|
- $useCouponJson = Redis::get("ORDER:USE:COUPON:DISCOUNT:" . $memberId);
|
|
|
- Redis::del("ORDER:USE:COUPON:DISCOUNT:" . $memberId);
|
|
|
+ $couponDetailsIds = Redis::sMembers("ORDER:USE:COUPON:" . $memberId);
|
|
|
+ Redis::del("ORDER:USE:COUPON:" . $memberId);
|
|
|
+ $useCouponJson = Redis::get("ORDER:USE:COUPON:DISCOUNT:" . $memberId);
|
|
|
+ Redis::del("ORDER:USE:COUPON:DISCOUNT:" . $memberId);
|
|
|
|
|
|
- return [
|
|
|
- 'pay_amount' => $amountBalance['pay_amount'],
|
|
|
- 'detail_ids' => $couponDetailsIds,
|
|
|
- 'use_coupon_json' => $useCouponJson ?? []
|
|
|
- ];
|
|
|
+ return [
|
|
|
+ 'pay_amount' => $amountBalance['pay_amount'],
|
|
|
+ 'detail_ids' => $couponDetailsIds,
|
|
|
+ 'use_coupon_json' => $useCouponJson ?? []
|
|
|
+ ];
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ dump($e->getTrace());
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
public static function useCoupon($memberId, $goods, $good, $coupon, $amountBalance)
|
|
@@ -524,7 +527,7 @@ class OrderService
|
|
|
'coupon_detail_id' => [$couponDetail->coupon_detail_id]
|
|
|
];
|
|
|
Redis::set($cacheDiscountKey, json_encode($discountData, JSON_UNESCAPED_UNICODE));
|
|
|
- CouponDetail::where('coupon_detail_id', $couponDetail->coupon_detail_id)->update(['coupon_detail_status' => 'USED','coupon_detail_used_datetime'=>date('Y-m-d H:i:s')]);
|
|
|
+ CouponDetail::where('coupon_detail_id', $couponDetail->coupon_detail_id)->update(['coupon_detail_status' => 'USED', 'coupon_detail_used_datetime' => date('Y-m-d H:i:s')]);
|
|
|
}
|
|
|
} elseif ($couponDetail->coupon_classify == '折扣券') {
|
|
|
if (Redis::sIsMember($cacheKey, $couponId)) {
|
|
@@ -542,14 +545,14 @@ class OrderService
|
|
|
'coupon_detail_id' => [$couponDetail->coupon_detail_id]
|
|
|
];
|
|
|
Redis::set($cacheDiscountKey, json_encode($discountData, JSON_UNESCAPED_UNICODE));
|
|
|
- CouponDetail::where('coupon_detail_id', $couponDetail->coupon_detail_id)->update(['coupon_detail_status' => 'USED','coupon_detail_used_datetime'=>date('Y-m-d H:i:s')]);
|
|
|
+ CouponDetail::where('coupon_detail_id', $couponDetail->coupon_detail_id)->update(['coupon_detail_status' => 'USED', 'coupon_detail_used_datetime' => date('Y-m-d H:i:s')]);
|
|
|
}
|
|
|
} elseif (in_array($couponDetail->coupon_classify, ['抵用券', '赠品券'])) {
|
|
|
if (Redis::sIsMember($cacheKey, $couponId)) {
|
|
|
continue;
|
|
|
}
|
|
|
Redis::sAdd($cacheKey, $couponId);
|
|
|
- CouponDetail::where('coupon_detail_id', $couponDetail->coupon_detail_id)->update(['coupon_detail_status' => 'USED','coupon_detail_used_datetime'=>date('Y-m-d H:i:s')]);
|
|
|
+ CouponDetail::where('coupon_detail_id', $couponDetail->coupon_detail_id)->update(['coupon_detail_status' => 'USED', 'coupon_detail_used_datetime' => date('Y-m-d H:i:s')]);
|
|
|
if ($good['nbr'] > 1) {
|
|
|
$diyongAmount = $good['goods_sales_price'];
|
|
|
$payAmount = $payAmount - $diyongAmount;
|
|
@@ -570,7 +573,7 @@ class OrderService
|
|
|
continue;
|
|
|
}
|
|
|
Redis::sAdd($cacheKey, $couponId);
|
|
|
- CouponDetail::where('coupon_detail_id', $couponDetail->coupon_detail_id)->update(['coupon_detail_status' => 'USED','coupon_detail_used_datetime'=>date('Y-m-d H:i:s')]);
|
|
|
+ CouponDetail::where('coupon_detail_id', $couponDetail->coupon_detail_id)->update(['coupon_detail_status' => 'USED', 'coupon_detail_used_datetime' => date('Y-m-d H:i:s')]);
|
|
|
$fuliAmount = 0;
|
|
|
if (!empty($couponDetail->coupon_value)) {
|
|
|
$fuliAmount = $couponDetail->coupon_value;
|
|
@@ -578,7 +581,7 @@ class OrderService
|
|
|
|
|
|
if ($fuliAmount >= $countAndAmount['amount']) {
|
|
|
$preferentialAmount = $countAndAmount['amount'];
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
$preferentialAmount = $fuliAmount;
|
|
|
}
|
|
|
$payAmount = $payAmount - $preferentialAmount;
|
|
@@ -716,7 +719,7 @@ class OrderService
|
|
|
}
|
|
|
if ($fuliAmount >= $countAndAmount['amount']) {
|
|
|
$preferentialAmount = $countAndAmount['amount'];
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
$preferentialAmount = $fuliAmount;
|
|
|
}
|
|
|
$payAmount = $payAmount - $preferentialAmount;
|