SiteAlbum.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. namespace App\Admin\Repositories;
  3. use App\Models\SiteAlbum as Model;
  4. use Dcat\Admin\Repositories\EloquentRepository;
  5. class SiteAlbum extends EloquentRepository
  6. {
  7. /**
  8. * Model.
  9. *
  10. * @var string
  11. */
  12. protected $eloquentClass = Model::class;
  13. public static function siteAlbumPaginate($filter = [],$sort = [],$perPage = 15,$page = 1)
  14. {
  15. $siteAlbum = new Model();
  16. //筛选条件排除IDS
  17. $notInIds = isset($filter['not_in_ids'])? $filter['not_in_ids'] : [];
  18. if ($notInIds) {
  19. $notInIds = explode(',', $notInIds);
  20. $siteAlbum = $siteAlbum->whereNotIn('id', $notInIds);
  21. }
  22. $inIds = isset($filter['in_ids'])? $filter['in_ids'] : [];
  23. if ($inIds) {
  24. $inIds = explode(',', $inIds);
  25. $siteAlbum = $siteAlbum->whereIn('id', $inIds);
  26. }
  27. //中文标题搜索
  28. $title = isset($filter['title'])? $filter['title'] : '';
  29. if ($title) {
  30. $siteAlbum = $siteAlbum->where('title', 'like', '%'. $title. '%');
  31. }
  32. //英文标题搜索
  33. $title_en = isset($filter['title_en'])? $filter['title_en'] : '';
  34. if ($title_en) {
  35. $siteAlbum = $siteAlbum->where('title_en', 'like', '%'. $title_en. '%');
  36. }
  37. //
  38. $filterModel = isset($filter['model'])? $filter['model'] : '';
  39. if ($filterModel) {
  40. $siteAlbum = $siteAlbum->where('model', 'like', '%'. $filterModel. '%');
  41. }
  42. //文件夹搜索
  43. $folder_id = isset($filter['folder_id'])? $filter['folder_id'] : '';
  44. if ($folder_id) {
  45. $siteAlbum = $siteAlbum->where('folder_id', $folder_id);
  46. }
  47. $albumFolder = isset($filter['album_folder'])? $filter['album_folder'] : -1;
  48. if ($albumFolder != -1) {
  49. $siteAlbum = $siteAlbum->whereIn('folder_id', $albumFolder);
  50. }
  51. //排序
  52. if (empty($sort)) {
  53. $siteAlbum = $siteAlbum->orderBy('id', 'desc');
  54. } else {
  55. $siteAlbum = $siteAlbum->orderBy($sort[0], $sort[1]);
  56. }
  57. $result = $siteAlbum->paginate(
  58. $perPage, $columns = ['*'], $pageName = 'page', $page
  59. );
  60. return $result;
  61. }
  62. public static function getByFolderId($id)
  63. {
  64. $siteAlbum = new Model();
  65. $result = $siteAlbum->where('folder_id', $id)->first();
  66. return $result;
  67. }
  68. }