123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- <?php
- namespace app\admin\controller\consultant;
- use app\admin\service\consultant\TeamService;
- use app\common\Tree;
- use app\controller\Curd;
- use app\model\Consultant;
- use app\model\SysDept;
- use app\model\SysUser;
- use support\Request;
- use support\Response;
- use Tinywan\Jwt\JwtToken;
- class TeamController extends Curd
- {
- public function __construct()
- {
- $this->model = new SysDept();
- }
- public function select(Request $request): Response
- {
- [$where, $format, $limit, $field, $order] = $this->selectInput($request);
- $format = 'tree';
- $order = $request->get('order', 'desc');
- $field = $field ?? 'dept_addtimes';
- $where['dept_category'] = '获客团队';
- $deptIds = TeamService::getIdsByUser();
- if (false === $deptIds) {
- //无权限
- $where['dept_id'] = ['=', 0];
- } else if (is_array($deptIds)) {
- //指定团队下的权限
- $where['dept_id'] = ['in', $deptIds];
- }
- $query = $this->doSelect($where, $field, $order);
- return $this->doFormat($query, $format, 1000);
- }
- protected function afterQuery($items)
- {
- foreach ($items as &$item) {
- $item->nums = Consultant::where('dept_id',$item->dept_id)->orWhere('top_dept_id', $item->dept_id)->count();
- }
- return $items;
- }
- protected function formatTree($items): Response
- {
- $format_items = [];
- foreach ($items as $item) {
- $format_items[] = [
- 'name' => $item->dept_name,
- 'value' => (string)$item->dept_id,
- 'id' => $item->id ?? $item->dept_id,
- 'pid' => $item->pid ?? $item->dept_super_id,
- 'dept_id' => $item->dept_id,
- 'dept_name' => $item->dept_name,
- 'dept_super_id' => $item->dept_super_id,
- 'dept_status' => $item->dept_status,
- 'dept_category' => $item->dept_category,
- 'dept_code' => $item->dept_code,
- 'dept_telephone' => $item->dept_telephone,
- 'category_addtimes' => $item->category_addtimes,
- 'nums' => $item->nums
- ];
- }
- $tree = new Tree($format_items);
- return json_success('success', $tree->getTree());
- }
- /**
- * Notes: 上级团队
- * User: yb
- * Date: 2024/8/1
- * Time: 17:16
- */
- public function parentList()
- {
- return TeamService::parentList();
- }
- /**
- * @Desc 部门详情
- * @Author Gorden
- * @Date 2024/2/21 10:35
- *
- * @param $id
- * @return \support\Response
- */
- public function deptInfo($id)
- {
- return TeamService::deptInfo($id);
- }
- /**
- * @Desc 创建部门
- * @Author Gorden
- * @Date 2024/2/21 9:22
- *
- * @param Request $request
- * @return \support\Response
- */
- public function addDept(Request $request)
- {
- $params = $request->post();
- if (empty($params['dept_name'])) {
- return json_fail('团队名称不能为空');
- }
- return TeamService::insertDept($params);
- }
- /**
- * @Desc 修改部门
- * @Author Gorden
- * @Date 2024/2/21 10:15
- *
- * @param $id
- * @param Request $request
- * @return \support\Response
- */
- public function updateDept(Request $request)
- {
- $params = $request->post();
- if (empty($params['id'])) {
- return json_fail('团队id不能为空');
- }
- if (empty($params['dept_name'])) {
- return json_fail('团队名称不能为空');
- }
- return TeamService::updateDept($params);
- }
- public function delDept(Request $request)
- {
- return TeamService::delDept($request);
- }
- /**
- * Notes: 检查管理员的部门信息
- * User: yb
- * Date: 2024/8/16
- * Time: 17:28
- * @return Response
- */
- public function checkDept()
- {
- $deptIds = TeamService::getIdsByUser(1);
- if (false === $deptIds) {
- //无权限
- $authDeptId = -1;
- } else if (is_array($deptIds)) {
- $userId = JwtToken::getCurrentId();
- $userInfo = SysUser::firstWhere(['user_id' => $userId]);
- $authDeptId = $userInfo->join_user_dept_id;
- } else {
- //超管权限
- $authDeptId = -2;
- }
- return json_success('请求成功', ['auth_dept_id' =>$authDeptId]);
- }
- }
|