SpecialTaskCategory.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. namespace app\admin\model\special;
  12. use traits\ModelTrait;
  13. use basic\ModelBasic;
  14. use service\UtilService as Util;
  15. use app\admin\model\special\SpecialTask;
  16. /**素材分类
  17. * Class SpecialTaskCategory
  18. * @package app\admin\model\special
  19. */
  20. class SpecialTaskCategory extends ModelBasic
  21. {
  22. use ModelTrait;
  23. /**
  24. * 全部素材分类
  25. */
  26. public static function taskCategoryAll($type = 0)
  27. {
  28. $model = self::where(['is_del' => 0, 'mer_id' => 0]);
  29. if ($type == 1) {
  30. $model = $model->where('pid', 0);
  31. }
  32. $list = $model->order('sort desc,add_time desc')->select();
  33. $list = count($list) > 0 ? $list->toArray() : [];
  34. $list = Util::sortListTier($list);
  35. return $list;
  36. }
  37. /**
  38. * 素材分类列表
  39. */
  40. public static function getAllList($where)
  41. {
  42. $data = self::setWhere($where)->column('id,pid');
  43. $list = [];
  44. foreach ($data as $ket => $item) {
  45. $cate = self::where('id', $ket)->find();
  46. if ($cate) {
  47. $cate = $cate->toArray();
  48. if ($item > 0) {
  49. $cate['sum'] = SpecialTask::where('pid', $ket)->where('is_del', 0)->count();
  50. } else {
  51. $pids = self::categoryId($ket);
  52. $cate['sum'] = SpecialTask::where('pid', 'in', $pids)->where('is_del', 0)->count();
  53. }
  54. array_push($list, $cate);
  55. unset($cate);
  56. }
  57. if ($item > 0 && !array_key_exists($item, $data)) {
  58. $cate = self::where('id', $item)->find();
  59. if ($cate) {
  60. $cate = $cate->toArray();
  61. $pids = self::categoryId($item);
  62. $cate['sum'] = SpecialTask::where('is_del', 0)->where('pid', 'in', $pids)->count();
  63. array_push($list, $cate);
  64. }
  65. }
  66. }
  67. return $list;
  68. }
  69. public static function setWhere($where)
  70. {
  71. $model = self::order('sort desc,add_time desc')->where('is_del', 0);
  72. $model = $model->where('mer_id', 0);
  73. if ($where['pid']) $model = $model->where('id', $where['pid']);
  74. if ($where['cate_name'] != '') $model = $model->where('title', 'like', "%$where[cate_name]%");
  75. return $model;
  76. }
  77. /**获取一个分类下的所有分类ID
  78. * @param int $pid
  79. */
  80. public static function categoryId($pid = 0)
  81. {
  82. $data = self::where(['is_del' => 0, 'mer_id' => 0])->where('pid', $pid)->column('id');
  83. array_push($data, $pid);
  84. return $data;
  85. }
  86. }