gorden 4 mēneši atpakaļ
vecāks
revīzija
a032dffbdc

+ 19 - 1
app/admin/controller/coupon/CouponController.php

@@ -182,8 +182,26 @@ class CouponController extends Curd
      */
     public function statistics(Request $request)
     {
+        $params = $request->get();
         $coupons = Coupon::selectRaw('coupon_classify,count(coupon_id) as total')
-            ->where('coupon_status', 'ACTIVED')
+//            ->where('coupon_status', 'ACTIVED')
+            ->when(!empty($params['coupon_classify']), function ($query) use ($params) {
+                $query->where('coupon_classify', $params['coupon_classify']);
+            })
+            ->when(!empty($params['join_coupon_category_id']), function ($query) use ($params) {
+                $query->whereIn('join_coupon_category_id', $params['join_coupon_category_id']);
+            })
+            ->when(!empty($params['coupon_id']), function ($query) use ($params) {
+                $query->where('coupon_id', 'like', '%' . trim($params['coupon_id']) . '%');
+            })
+            ->when(!empty($params['couponName']), function ($query) use ($params) {
+                $query->where('coupon_name', 'like', '%' . trim($params['couponName']) . '%');
+            })
+            ->when(!empty($params['coupon_addtimes']), function ($query) use ($params) {
+                $params['coupon_addtimes'][0] = strtotime($params['coupon_addtimes'][0]);
+                $params['coupon_addtimes'][1] = strtotime($params['coupon_addtimes'][1]);
+                $query->whereBetween('coupon_addtimes', $params['coupon_addtimes']);
+            })
             ->groupBy('coupon_classify')
             ->get()
             ->toArray();

+ 40 - 8
app/admin/controller/coupon/CouponDetailController.php

@@ -164,13 +164,45 @@ class CouponDetailController extends Curd
      */
     public function statistics(Request $request)
     {
-        $total = CouponDetail::count('coupon_detail_id');
-        $unUsedTotal = CouponDetail::whereIn('coupon_detail_status', ['ACTIVED'])->count('coupon_detail_id');
-        $waitingTotal = CouponDetail::where('coupon_detail_status', 'WAITING')->count('coupon_detail_id');
-        $usedTotal = CouponDetail::where('coupon_detail_status', 'USED')->count('coupon_detail_id');
-        $disabledTotal = CouponDetail::whereIn('coupon_detail_status', ['DISABLED'])->count('coupon_detail_id');
-        $expiredTotal = CouponDetail::whereIn('coupon_detail_status', ['EXPIRED'])->count('coupon_detail_id');
-        $pendingTotal = CouponDetail::whereIn('coupon_detail_status', ['INIT','PENDING'])->count('coupon_detail_id');
+        $params = $request->get();
+
+        $couponDetailModel = CouponDetail::leftJoin('coupon', 'coupon.coupon_id', '=', 'coupon_detail.join_detail_coupon_id')
+            ->when(!empty($params['coupon_classify']), function ($query) use ($params) {
+                $query->where('coupon.coupon_classify', $params['coupon_classify']);
+            })->when(!empty($params['coupon_detail_status']), function ($query) use ($params) {
+                $query->where('coupon_detail_status', $params['coupon_detail_status']);
+            })->when(!empty($params['get_type']), function ($query) use ($params) {
+                if ($params['get_type'] == 'SEND') {
+                    $query->where(function ($query2) {
+                        $query2->whereJsonContains('coupon_detail_extend_json->gettype', 'SEND')
+                            ->orWhereJsonContains('coupon_detail_extend_json->gettype', 'SYSTEN');
+                    });
+                } else {
+                    $query->whereJsonContains('coupon_detail_extend_json->gettype', $params['get_type']);
+                }
+            })->when(!empty($params['coupon_name']), function ($query) use ($params) {
+                $query->where('coupon_name', 'like', '%' . trim($params['coupon_name']) . '%');
+            })->when(!empty($params['join_coupon_detail_member_id']), function ($query) use ($params) {
+                $query->where('join_coupon_detail_member_id', $params['join_coupon_detail_member_id']);
+            })->when(!empty($params['coupon_detail_addtimes']), function ($query) use ($params) {
+                $params['coupon_detail_addtimes'][0] = strtotime($params['coupon_detail_addtimes'][0]);
+                $params['coupon_detail_addtimes'][1] = strtotime($params['coupon_detail_addtimes'][1]);
+                $query->whereBetween('coupon_detail_addtimes', $params['coupon_detail_addtimes']);
+            });
+        $totalModel = clone $couponDetailModel;
+        $total = $totalModel->count('coupon_detail_id');
+        $unUsedTotalModel = clone $couponDetailModel;
+        $unUsedTotal = $unUsedTotalModel->whereIn('coupon_detail_status', ['ACTIVED'])->count('coupon_detail_id');
+        $waitingTotalModel = clone $couponDetailModel;
+        $waitingTotal = $waitingTotalModel->whereIn('coupon_detail_status', ['WAITING'])->count('coupon_detail_id');
+        $usedTotalModel = clone $couponDetailModel;
+        $usedTotal = $usedTotalModel->whereIn('coupon_detail_status', ['USED'])->count('coupon_detail_id');
+        $disabledTotalModel = clone $couponDetailModel;
+        $disabledTotal = $disabledTotalModel->whereIn('coupon_detail_status', ['DISABLED'])->count('coupon_detail_id');
+        $expiredTotalModel = clone $couponDetailModel;
+        $expiredTotal = $expiredTotalModel->whereIn('coupon_detail_status', ['EXPIRED'])->count('coupon_detail_id');
+        $pendingTotalModel = clone $couponDetailModel;
+        $pendingTotal = $pendingTotalModel->whereIn('coupon_detail_status', ['INIT', 'PENDING'])->count('coupon_detail_id');
 
         return json_success('success', [
             'total' => $total,
@@ -350,7 +382,7 @@ class CouponDetailController extends Curd
                     $moneyGoodsIds[] = $couponGood['join_coupon_goods_id'];
                 }
             }
-            if ($money <= 0){
+            if ($money <= 0) {
                 continue;
             }
             $promotionCoupon = Coupon::where('coupon_id', $coupon['coupon_id'])