whereIn('advertiser_id', $advertiserIds) ->where(function ($query) use ($startTime, $endTime) { if($startTime) $query->where('star_release_time', '>=', $startTime); if($endTime) $query->where('star_release_time', '<=', $endTime); }) ->where('enable', 1)->whereIn('task_id', $taskIds)->get(); } /** * 根据订单id获取对应的任务id * @param $advertiserIds array 广告账号id集合 * @param $orderId string 星视频任务id * */ public static function getTaskIdByOrderId($advertiserIds, $orderId) { return self::where('order_id', $orderId)->whereIn('advertiser_id', $advertiserIds) ->where('enable', 1)->value('task_id'); } /** * 根据订单id获取对应的任务id * @param $advertiserIds array 广告账号id集合 * @param $orderId string 星视频任务id集合 * */ public static function getTaskIdByStarName($advertiserIds, $starName) { return self::where('star_name', 'like', '%'. $starName . '%')->whereIn('advertiser_id', $advertiserIds) ->where('enable', 1)->pluck('task_id'); } /** * 筛选广告账号符合条件的订单id * */ public static function getOrderData($advertiserId, $filter) { $queryModel = self::where('enable' , 1)->where('advertiser_id', $advertiserId); # 按订单id筛选 if(isset($filter['order_ids']) && !empty($filter['order_ids'])) { $queryModel->whereIn('order_id', $filter['order_ids']); } else { # 按关键词筛选 if(isset($filter['keyword']) && $filter['keyword']) { if(is_numeric($filter['keyword'])) { // 按任务ID或订单id搜索 $queryModel->where('task_id', $filter['keyword'])->orWhere('order_id', $filter['keyword']); } else { // 通过达人昵称或任务名搜索 # 按任务名 $taskIds = JxStarVideoTaskList::where('task_name', 'like', '%'.$filter['keyword'].'%')->pluck('task_id'); $queryModel->where('star_name', 'like', '%'.$filter['keyword'].'%')->orWhere(function($query) use($taskIds) { if(!empty($taskIds)) $query->whereIn('task_id', $taskIds); }); } } # 按创建时间筛选 if(isset($filter['start_date']) && $filter['start_date'] && isset($filter['end_date']) && $filter['end_date']) { $taskIds = JxStarVideoTaskList::where('create_time', '>=', $filter['start_date'] . ' 00:00:00') ->where('create_time', '<=', $filter['end_date'] . ' 23:59:59')->pluck('task_id'); $queryModel->whereIn('task_id', $taskIds); } } $data = $queryModel->select('task_id', 'order_id')->get(); return $data; } }