12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- <?php
- namespace App\Models\Overseas;
- use App\Support\Log;
- use Illuminate\Database\Eloquent\Model;
- class OverseasStar extends Model
- {
- protected $table = 'jx_overseas_star';
- public $timestamps = false;
- protected static $unguarded = true;
- /**
- * 按指定条件搜索海外达人
- * */
- public static function getStarList($params, $sortField, $sortOrder, $page, $pageSize)
- {
- $queryModel = self::where('enable', 1);
- # 按地区搜索
- if(isset($params['area']) && $params['area'])
- $queryModel->where('area', $params['area']);
- # 按平台搜索
- if(is_numeric($params['platform_id']))
- $queryModel->where('platform', $params['platform_id']);
- # 按网红昵称搜索
- if(isset($params['keyword']) && $params['keyword'])
- $queryModel->where('star_handle', 'like', '%'.$params['keyword'].'%');
- # 按性别搜索
- if(is_numeric($params['gender']))
- $queryModel->where('gender', $params['gender']);
- # 按粉丝数搜索
- if(is_numeric($params['min_fans']) || is_numeric($params['max_fans'])) {
- if($params['min_fans'])
- $queryModel->where('fans_total', '>=', $params['min_fans'] * 1000);
- if($params['max_fans'])
- $queryModel->where('fans_total', '<', $params['max_fans'] * 1000);
- }
- # 按平均播放量搜索
- if(is_numeric($params['view_avg_min']) || is_numeric($params['view_avg_max'])) {
- if($params['view_avg_min'])
- $queryModel->where('view_avg', '>=', $params['view_avg_min']);
- if($params['view_avg_max'])
- $queryModel->where('view_avg', '<', $params['view_avg_max']);
- }
- # 按网红标签搜索
- if(isset($params['tag']) && $params['tag']) {
- $tagRaw = '+' .$params['tag'];
- if(!empty($tagRaw))
- $queryModel->whereRaw('match(`tag_list`) against ("'.$tagRaw.'" in boolean mode)');
- } else {
- $queryModel->whereRaw('match(`tag_list`) against ("+aaaaaa" in boolean mode)');
- }
- # 按是否有email搜索
- if(is_numeric($params['has_email']))
- $queryModel->where('email', '>', '');
- # 按是否有whatsApp搜索
- if(is_numeric($params['has_whats_app']))
- $queryModel->where('whats_app', '>', '');
- # 按是否有instagram搜索
- if(is_numeric($params['has_instagram']))
- $queryModel->where('instagram', '>', '');
- $count = $queryModel->count();
- $list = $queryModel->limit($pageSize)->offset(($page - 1) * $pageSize)
- ->orderBy('fans_total', 'desc')
- ->get();
- return [$list, $count];
- }
- }
|