PortalCategoryService.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | ThinkCMF [ WE CAN DO IT MORE SIMPLE ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2013-2018 http://www.thinkcmf.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Author: 小夏 < 449134904@qq.com>
  8. // | Date: 2019/01/08
  9. // | Time:上午 10:32
  10. // +----------------------------------------------------------------------
  11. namespace api\portal\service;
  12. use api\portal\model\PortalCategoryModel;
  13. use think\db\Query;
  14. class PortalCategoryService
  15. {
  16. /**
  17. * @param $filter
  18. * @return array|\PDOStatement|string|\think\Collection
  19. * @throws \think\db\exception\DataNotFoundException
  20. * @throws \think\db\exception\ModelNotFoundException
  21. * @throws \think\exception\DbException
  22. */
  23. public function categories($filter)
  24. {
  25. $categoryModel = new PortalCategoryModel();
  26. //条件分解
  27. $field = empty($filter['field']) ? '*' : $filter['field'];
  28. $order = empty($filter['order']) ? ['-id'] : explode(',', $filter['order']);
  29. $page = empty($filter['page']) ? '' : $filter['page'];
  30. $limit = empty($filter['limit']) ? '' : $filter['limit'];
  31. if (!empty($page)) {
  32. $categoryModel = $categoryModel->page($page);
  33. } elseif (!empty($limit)) {
  34. $categoryModel = $categoryModel->limit($limit);
  35. } else {
  36. $categoryModel = $categoryModel->limit(10);
  37. }
  38. //转化-+为desc、asc
  39. $orderArr = order_shift($order);
  40. $result = $categoryModel
  41. ->field($field)
  42. ->where('delete_time', 0)
  43. ->where('status', 1)
  44. ->where(function (Query $query) use ($filter) {
  45. if (!empty($filter['ids'])) {
  46. $query->where('id', 'in', $filter['ids']);
  47. }
  48. })
  49. ->order($orderArr)
  50. ->select();
  51. return $result;
  52. }
  53. }