123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- <?php
- namespace App\Models;
- use App\Support\Log;
- use Illuminate\Database\Eloquent\Factories\HasFactory;
- use Illuminate\Database\Eloquent\Model;
- use Illuminate\Support\Facades\DB;
- class JxStarVideoOrderList extends Model
- {
- public $timestamps = false;
- protected $table = 'jx_star_video_order_list';
- protected static $unguarded = true;
- # 星视频订单数据入库队列
- const JUXING_STAR_VIDEO_ORDER_INDB_LIST = 'juxingStarVideoOrderIndbList';
- /**
- * 通过任务id集合查询对应订单
- * */
- public static function getOrderListByTaskIds($advertiserIds, $taskIds, $startTime, $endTime)
- {
- return self::select('advertiser_id', 'task_id', 'order_id', 'order_status', 'order_type', 'amount', 'star_name', 'kwai_id', 'user_id', 'star_release_time', 'caption', 'video_url', 'star_institution', 'video_status', 'support_supplement', 'has_supplement')
- ->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;
- }
- }
|