NoticeSearchTrait.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. /**
  3. * @filename UserSearchTrait.php
  4. * @createdAt 2020/6/21
  5. * @project https://github.com/yanwenwu/catch-admin
  6. * @document http://doc.catchadmin.com
  7. * @author JaguarJack <njphper@gmail.com>
  8. * @copyright By CatchAdmin
  9. * @license https://github.com/yanwenwu/catch-admin/blob/master/LICENSE.txt
  10. */
  11. namespace catchAdmin\wechat\model\search;
  12. use \think\facade\Db;
  13. trait NoticeSearchTrait
  14. {
  15. /**
  16. * 标题搜索
  17. * @time 2020年06月21日
  18. * @param $query
  19. * @param $value
  20. * @param $data
  21. * @return mixed
  22. */
  23. public function searchTitleAttr($query, $value, $data)
  24. {
  25. return $query->whereLike('title', $value);
  26. }
  27. /**
  28. * 学校
  29. *
  30. * @time 2020年06月21日
  31. * @param $query
  32. * @param $value
  33. * @param $data
  34. * @return mixed
  35. */
  36. public function searchSchoolIdAttr($query, $value, $data)
  37. {
  38. return $query->where('school_id', $value);
  39. }
  40. /**
  41. * 年级
  42. *
  43. * @time 2020年06月21日
  44. * @param $query
  45. * @param $value
  46. * @param $data
  47. * @return mixed
  48. */
  49. public function searchGradeIdAttr($query, $value, $data)
  50. {
  51. return $query->where('grade_id', $value);
  52. }
  53. /**
  54. * 班级
  55. *
  56. * @time 2020年06月21日
  57. * @param $query
  58. * @param $value
  59. * @param $data
  60. * @return mixed
  61. */
  62. public function searchClassIdAttr($query, $value, $data)
  63. {
  64. return $query->where('class_id', '=', $value);
  65. }
  66. /**
  67. * 学校部门
  68. */
  69. public function searchDepartmentIdAttr($query, $value, $data)
  70. {
  71. if ($value) {
  72. // var_dump($value);
  73. if (count($value) > 1) {
  74. $id = end($value);
  75. return $query->where('school_id|class_id|grade_id', '=', $id);
  76. } else { //选中的是运营商部门
  77. $sch_ids = Db::table('departments')->where('parent_id', $value[0])->column('id');
  78. return $query->where('school_id', 'in', $sch_ids);
  79. }
  80. }
  81. }
  82. }