暫無描述

OverseasStar.php 2.7KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. namespace App\Models\Overseas;
  3. use App\Support\Log;
  4. use Illuminate\Database\Eloquent\Model;
  5. class OverseasStar extends Model
  6. {
  7. protected $table = 'jx_overseas_star';
  8. public $timestamps = false;
  9. protected static $unguarded = true;
  10. /**
  11. * 按指定条件搜索海外达人
  12. * */
  13. public static function getStarList($params, $sortField, $sortOrder, $page, $pageSize)
  14. {
  15. $queryModel = self::where('enable', 1);
  16. # 按地区搜索
  17. if(isset($params['area']) && $params['area'])
  18. $queryModel->where('area', $params['area']);
  19. # 按平台搜索
  20. if(is_numeric($params['platform_id']))
  21. $queryModel->where('platform', $params['platform_id']);
  22. # 按网红昵称搜索
  23. if(isset($params['keyword']) && $params['keyword'])
  24. $queryModel->where('star_handle', 'like', '%'.$params['keyword'].'%');
  25. # 按性别搜索
  26. if(is_numeric($params['gender']))
  27. $queryModel->where('gender', $params['gender']);
  28. # 按粉丝数搜索
  29. if(is_numeric($params['min_fans']) || is_numeric($params['max_fans'])) {
  30. if($params['min_fans'])
  31. $queryModel->where('fans_total', '>=', $params['min_fans'] * 1000);
  32. if($params['max_fans'])
  33. $queryModel->where('fans_total', '<', $params['max_fans'] * 1000);
  34. }
  35. # 按平均播放量搜索
  36. if(is_numeric($params['view_avg_min']) || is_numeric($params['view_avg_max'])) {
  37. if($params['view_avg_min'])
  38. $queryModel->where('view_avg', '>=', $params['view_avg_min']);
  39. if($params['view_avg_max'])
  40. $queryModel->where('view_avg', '<', $params['view_avg_max']);
  41. }
  42. # 按网红标签搜索
  43. if(isset($params['tag']) && $params['tag']) {
  44. $tagRaw = '+' .$params['tag'];
  45. if(!empty($tagRaw))
  46. $queryModel->whereRaw('match(`tag_list`) against ("'.$tagRaw.'" in boolean mode)');
  47. } else {
  48. $queryModel->whereRaw('match(`tag_list`) against ("+aaaaaa" in boolean mode)');
  49. }
  50. # 按是否有email搜索
  51. if(is_numeric($params['has_email']))
  52. $queryModel->where('email', '>', '');
  53. # 按是否有whatsApp搜索
  54. if(is_numeric($params['has_whats_app']))
  55. $queryModel->where('whats_app', '>', '');
  56. # 按是否有instagram搜索
  57. if(is_numeric($params['has_instagram']))
  58. $queryModel->where('instagram', '>', '');
  59. $count = $queryModel->count();
  60. $list = $queryModel->limit($pageSize)->offset(($page - 1) * $pageSize)
  61. ->orderBy('fans_total', 'desc')
  62. ->get();
  63. return [$list, $count];
  64. }
  65. }