TeamController.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. <?php
  2. namespace app\admin\controller\consultant;
  3. use app\admin\service\consultant\TeamService;
  4. use app\common\Tree;
  5. use app\controller\Curd;
  6. use app\model\Consultant;
  7. use app\model\SysDept;
  8. use support\Request;
  9. use support\Response;
  10. class TeamController extends Curd
  11. {
  12. public function __construct()
  13. {
  14. $this->model = new SysDept();
  15. }
  16. public function select(Request $request): Response
  17. {
  18. [$where, $format, $limit, $field, $order] = $this->selectInput($request);
  19. $format = 'tree';
  20. $order = $request->get('order', 'desc');
  21. $field = $field ?? 'dept_addtimes';
  22. $where['dept_category'] = '获客团队';
  23. $query = $this->doSelect($where, $field, $order);
  24. return $this->doFormat($query, $format, 1000);
  25. }
  26. protected function afterQuery($items)
  27. {
  28. foreach ($items as &$item) {
  29. $item->nums = Consultant::where('dept_id',$item->dept_id)->orWhere('top_dept_id', $item->dept_id)->count();
  30. }
  31. return $items;
  32. }
  33. protected function formatTree($items): Response
  34. {
  35. $format_items = [];
  36. foreach ($items as $item) {
  37. $format_items[] = [
  38. 'name' => $item->dept_name,
  39. 'value' => (string)$item->dept_id,
  40. 'id' => $item->id ?? $item->dept_id,
  41. 'pid' => $item->pid ?? $item->dept_super_id,
  42. 'dept_id' => $item->dept_id,
  43. 'dept_name' => $item->dept_name,
  44. 'dept_super_id' => $item->dept_super_id,
  45. 'dept_status' => $item->dept_status,
  46. 'dept_category' => $item->dept_category,
  47. 'dept_code' => $item->dept_code,
  48. 'dept_telephone' => $item->dept_telephone,
  49. 'category_addtimes' => $item->category_addtimes,
  50. 'nums' => $item->nums
  51. ];
  52. }
  53. $tree = new Tree($format_items);
  54. return json_success('success', $tree->getTree());
  55. }
  56. /**
  57. * Notes: 上级团队
  58. * User: yb
  59. * Date: 2024/8/1
  60. * Time: 17:16
  61. */
  62. public function parentList()
  63. {
  64. return TeamService::parentList();
  65. }
  66. /**
  67. * @Desc 部门详情
  68. * @Author Gorden
  69. * @Date 2024/2/21 10:35
  70. *
  71. * @param $id
  72. * @return \support\Response
  73. */
  74. public function deptInfo($id)
  75. {
  76. return TeamService::deptInfo($id);
  77. }
  78. /**
  79. * @Desc 创建部门
  80. * @Author Gorden
  81. * @Date 2024/2/21 9:22
  82. *
  83. * @param Request $request
  84. * @return \support\Response
  85. */
  86. public function addDept(Request $request)
  87. {
  88. $params = $request->post();
  89. if (empty($params['dept_name'])) {
  90. return json_fail('团队名称不能为空');
  91. }
  92. return TeamService::insertDept($params);
  93. }
  94. /**
  95. * @Desc 修改部门
  96. * @Author Gorden
  97. * @Date 2024/2/21 10:15
  98. *
  99. * @param $id
  100. * @param Request $request
  101. * @return \support\Response
  102. */
  103. public function updateDept(Request $request)
  104. {
  105. $params = $request->post();
  106. if (empty($params['id'])) {
  107. return json_fail('团队id不能为空');
  108. }
  109. if (empty($params['dept_name'])) {
  110. return json_fail('团队名称不能为空');
  111. }
  112. return TeamService::updateDept($params);
  113. }
  114. public function delDept(Request $request)
  115. {
  116. return TeamService::delDept($request);
  117. }
  118. }