| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 | <?phpnamespace 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]);    }}
 |