belongsTo(Achievement::class, 'id', 'obj_id')->where(['type' => 2]); } //获取部门列表 public static function getDepartmentList() { $department = self::where([])->field('id,name,pid')->select(); $data = []; foreach ($department as $v) { $data[$v['pid']][] = $v; } return self::getChilds($data, 0); } //获取部门及所有下级部门 public static function getDepartmentLowerId($l_ids,$top=true){ $ids=self::where(['pid' =>['in',$l_ids]])->column('id'); if ($ids) { $w_ids = self::getDepartmentLowerId($ids,false); $ids = array_merge($ids, $w_ids); }else{ $ids=[]; } if($top){ $ids=array_merge($ids,$l_ids); } return $ids; } //生成树状结构 private static function getChilds($data, $pid) { $list = []; if (isset($data[$pid])) { $list = $data[$pid]; foreach ($list as $k => $v) { $v['children'] = self::getChilds($data, $v['id']); $list[$k] = $v; } } return $list; } //获取部门列表 public static function getList() { return self::where([])->field('id,name')->select(); } }