when(isset($where['pay_type']) && $where['pay_type'] != -1 && $where['pay_type'] >= 0, function ($query) use ($where) { $query->where('pay_type', $where['pay_type']); }) ->when(isset($where['uid']) && $where['uid'] !== '', function ($query) use ($where) { $query->where('uid', $where['uid']); }) ->when(isset($where['status']) && $where['status'] !== '', function ($query) use ($where) { $query->whereIn('status', $where['status']); }) ->when(isset($where['order_sn']) && $where['order_sn'] !== '', function ($query) use ($where) { $query->where('order_sn', '=', $where['order_sn']); }) ->when(isset($where['order_id']) && $where['order_id'] !== '', function ($query) use ($where) { $query->where('order_id', '=', $where['order_id']); }) ->when(isset($where['paid']) && $where['paid'] !== '', function ($query) use ($where) { $query->where('paid', $where['paid']); }) ->when(isset($where['relation_id']) && $where['relation_id'] !== '', function ($query) use ($where) { $query->where('relation_id', $where['relation_id']); }) ->when(isset($where['sched_sign']) && $where['sched_sign'] !== '', function ($query) use ($where) { $query->where('sched_sign', $where['sched_sign']); }); } public function orderPrice($date, $paid = null, $merId = null) { return MovieOrder::getDB()->when($paid, function ($query, $paid) { $query->where('paid', $paid); })->when($merId, function ($query, $merId) { $query->where('mer_id', $merId); })->when($date, function ($query, $date) { getModelTime($query, $date, 'pay_time'); })->sum('pay_price'); } }