|
@@ -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'])
|