Browse Source

双十一活动

gorden 4 months ago
parent
commit
e6f580e763

+ 15 - 4
app/admin/controller/order/PackagesController.php

@@ -448,10 +448,10 @@ class PackagesController extends Curd
 
             $systemStatus = 'WAITING';  // 待使用
             // 立即结算
-            if ($params['settlement_now'] == 'Y' && $params['is_complete'] == 'Y') {
-                $params['order_is_complete'] = 'Y';
-                $systemStatus = "DONE";
-            }
+//            if ($params['settlement_now'] == 'Y' && $params['is_complete'] == 'Y') {
+//                $params['order_is_complete'] = 'Y';
+//                $systemStatus = "DONE";
+//            }
 
             if ($params['settlement_now'] == 'Y' && ($params['pay_category'] == 'OFFLINE' || $params['pay_category'] == 'MONEY')) {
                 if ($params['pay_category'] == 'OFFLINE' && !empty($params['pay_category_sub'])) {
@@ -1956,6 +1956,17 @@ class PackagesController extends Curd
             // 推荐人
             $params['order_extend_json']['referee'] = $params['referee'] ?? '';
             foreach ($params['goodsContentList'] as $goods) {
+                // 券的套包,买完就结束了
+                if ($params['order_status_system'] == 'WAITING') {
+                    $goodsModel = Goods::where('goods_id', $goods['goods_id'])->select('goods_attribute_json')->first();
+                    if (!empty($goodsModel) && !empty($goodsModel->goods_attribute_json)) {
+                        $goodsAttributeJson = json_decode($goodsModel->goods_attribute_json, true);
+                        if (!empty($goodsAttributeJson['coupon'])) {
+                            $params['order_is_complete'] = 'Y';
+                            $params['order_status_system'] = 'DONE';
+                        }
+                    }
+                }
                 $discountJson = [];
                 if (!empty($params['order_discount_json'])) {
                     $discountJson = json_decode($params['order_discount_json'], true);

+ 27 - 1
app/admin/controller/order/WholeController.php

@@ -339,6 +339,7 @@ class WholeController extends Curd
                 $premises = $express->order_express_company;
             }
             $sheetAmount = 0;
+            $coupons = [];
             foreach ($orderSheet as &$item) {
                 $sheetAmount += $item['order_sheet_amount'];
                 $item['goods']['goods_cover'] = getenv('STORAGE_DOMAIN') . $item['goods']['goods_cover'];
@@ -367,8 +368,32 @@ class WholeController extends Curd
                             ];
                         }
                     }
-
                     $item['goods']['components'] = $goodsArr;
+
+                    $goodsModel = Goods::where('goods_id', $item['goods']['goods_id'])->select('goods_attribute_json')->first();
+                    if (!empty($goodsModel) && !empty($goodsModel->goods_attribute_json)) {
+                        $goodsAttributeJson = json_decode($goodsModel->goods_attribute_json, true);
+                        if (!empty($goodsAttributeJson['coupon'])) {
+                            foreach ($goodsAttributeJson['coupon'] as $key => $coupon) {
+                                $couponCount = CouponDetail::where('join_detail_coupon_id', $key)
+                                    ->whereJsonContains('coupon_detail_extend_json->order_id', $item['join_sheet_order_id'])
+                                    ->count();
+                                $couponUsedCount = CouponDetail::where('join_detail_coupon_id', $key)
+                                    ->where('coupon_detail_status', 'USED')
+                                    ->whereJsonContains('coupon_detail_extend_json->order_id', $item['join_sheet_order_id'])
+                                    ->count();
+                                $couponUnUsedCount = CouponDetail::where('join_detail_coupon_id', $key)
+                                    ->whereIn('coupon_detail_status', ['ACTIVED', 'WAITING'])
+                                    ->whereJsonContains('coupon_detail_extend_json->order_id', $item['join_sheet_order_id'])
+                                    ->count();
+                                $coupon['total'] = $couponCount;
+                                $coupon['used'] = $couponUsedCount;
+                                $coupon['unused'] = $couponUnUsedCount;
+                                $coupon['invalid'] = $couponCount - $couponUsedCount - $couponUnUsedCount;
+                                $coupons[] = $coupon;
+                            }
+                        }
+                    }
                 }
                 if (!empty($item['sku'])) {
                     if (!empty($item['sku']['goods_sku_specs_json'])) {
@@ -575,6 +600,7 @@ class WholeController extends Curd
 
             $order->premises = $order->premises ?? $premises;
             $data = [
+                'coupons' => $coupons,
                 'order' => $order,
                 'refund' => json_decode(json_encode($refund)),
                 'sheet' => json_decode(json_encode($orderSheet)),