Não pode escolher mais do que 25 tópicos
Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
|
- <?php
- /**
- * Created by PhpStorm.
- * User: nizongfeng
- * Date: 2021/11/30
- * Time: 11:31
- */
-
- namespace app\admin\dao;
-
-
- use app\admin\command\Util;
- use app\admin\model\AuthGroup;
- use think\Exception;
-
- class GroupDao
- {
- /**
- * 获取顶级部门 非超管
- * @param $id
- * @return mixed
- */
- public function getTopGroup($id){
- if ($id == 1) {
- return $id;
- }
- try {
- $model = new AuthGroup();
- $result = $model->where(["id" => $id])->find();
- if ($result == null) {
- return $id;
- }
- $info = $result->toArray();
- if ($info['pid']==1) {
- return $id;
- }
- return $this->getTopGroup($info['pid']);
- } catch (Exception $e) {
- return $id;
- }
- }
-
- /**
- * 获取所有子节点的ID
- * @param $id
- * @return array
- */
- public function getSubGroup($id){
- try {
- $idArr = [$id];
- $model = new AuthGroup();
- $result = $model->where(["pid" => $id])->select();
- if ($result == null) {
- return $idArr;
- }
- $list = $result->toArray();
- foreach ($list as $info) {
- $subIdArr = $this->getSubGroup($info['id']);
- $idArr = array_merge($idArr, $subIdArr);
- }
- return $idArr;
- } catch (Exception $e) {
- return $idArr;
- }
- }
- }
|