orderid; $trade_no = $request->trade_no; $start = $request->start; $end = $request->end; $orderField = $request->orderField; $orderDirection = $request->orderDirection; $numPerPage = $request->numPerPage ?: 30; $payments = Payment::when($trade_no, function ($query) use ($trade_no) { $query->where('trade_no', 'like', "%{$trade_no}%"); })->when($orderid, function ($query) use ($orderid) { $query->whereHas('order', function ($query) use ($orderid) { $query->where('orderid', 'like', "%{$orderid}%"); }); })->when($start && $end, function ($query) use ($start, $end) { return $query->whereBetween('created_at', [$start, date('Y-m-d', strtotime("+1 days", strtotime($end)))]); })->when($start && !$end, function ($query) use ($start) { return $query->where('created_at', '>=', $start); })->when(!$start && $end, function ($query) use ($end) { return $query->where('created_at', '<=', date('Y-m-d', strtotime("+1 days", strtotime($end)))); })->when($orderField, function ($query) use ($orderField, $orderDirection) { $query->orderBy($orderField, $orderDirection); })->with(['order'])->latest()->paginate($numPerPage); return view('Admin::payments.index', compact('payments')); } public function vip(Request $request) { $user_id = $request->user_id; $nickname = $request->nickname; $trade_no = $request->trade_no; $start = $request->start; $end = $request->end; $pay_type = $request->pay_type; $orderField = $request->orderField; $orderDirection = $request->orderDirection; $numPerPage = $request->numPerPage ?: 30; $payments = VipPament::when($trade_no, function ($query) use ($trade_no) { $query->where('trade_no', 'like', "%{$trade_no}%"); })->when($user_id, function ($query) use($user_id){ return $query->where('user_id',$user_id); })->when($nickname, function ($query) use ($nickname) { $query->whereHas('user', function ($query) use ($nickname) { $query->whereHas('info', function ($query) use ($nickname) { $query->where('nickname', 'like', "%{$nickname}%"); }); }); })->when($pay_type, function ($query) use($pay_type){ return $query->where('type',$pay_type); })->when($start && $end, function ($query) use ($start, $end) { return $query->whereBetween('paid_at', [$start, date('Y-m-d', strtotime("+1 days", strtotime($end)))]); })->when($start && !$end, function ($query) use ($start) { return $query->where('paid_at', '>=', $start); })->when(!$start && $end, function ($query) use ($end) { return $query->where('paid_at', '<=', date('Y-m-d', strtotime("+1 days", strtotime($end)))); })->when($orderField, function ($query) use ($orderField, $orderDirection) { $query->orderBy($orderField, $orderDirection); })->where('state', 'SUCCESS')->latest()->paginate($numPerPage); return view('Admin::payments.vip', compact('payments')); } }