__handlePropertyHandler(__CLASS__); } #[Inject] protected ValidatorFactoryInterface $validationFactory; /** * @var AuthorityServiceInterface */ #[Inject] private $authorityServiceClient; /** * 获取菜单列表 * @return array */ public function getMenuList() { $result = $this->authorityServiceClient->getMenuList([]); $result = PublicData::buildMenuTree($result['data']); return $result ? Result::success($result) : Result::error('查询失败'); } /** * 删除菜单 * @return array */ public function delMenu() { $requireData = $this->request->all(); $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['id.required' => '菜单id不能为空']); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $getData = ['id' => $requireData['id']]; $result = $this->authorityServiceClient->getMenuList($getData); // var_dump("菜单返回数据:",$result); if (count($result['data']) > 0) { return Result::error("有子菜单不能删除"); } $data = ['id' => $requireData['id']]; return $this->authorityServiceClient->delMenu($data); } /** * 添加菜单 * @return array|void */ public function addMenu() { $requireData = $this->request->all(); $validator = $this->validationFactory->make($requireData, ['label' => 'required'], ['label.required' => '菜单名称不能为空']); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $requireData['pid'] = isset($requireData['pid_arr']) ? end($requireData['pid_arr']) : ''; $requireData['pid_arr'] = isset($requireData['pid_arr']) ? json_encode($requireData['pid_arr']) : ''; $result = $this->authorityServiceClient->addMenu($requireData); return $result ? Result::success($result['data']) : Result::error($result['message']); } /** * 查看菜单信息 * @return array */ public function getMenuInfo() { $requireData = $this->request->all(); $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['id.required' => 'id不能为空']); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $result = $this->authorityServiceClient->getMenuInfo($requireData); $result['data']['pid_arr'] = isset($result['data']['pid_arr']) && $result['data']['pid_arr'] ? json_decode($result['data']['pid_arr']) : []; return $result ? Result::success($result['data']) : Result::error($result['message']); } /** * 修改菜单 * @return array|void */ public function updateMenu() { $requireData = $this->request->all(); $validator = $this->validationFactory->make($requireData, ['id' => 'required', 'label' => 'required'], ['id.required' => 'id不能为空', 'label.required' => '菜单名称不能为空']); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $requireData['pid'] = isset($requireData['pid_arr']) ? end($requireData['pid_arr']) : ''; $requireData['pid_arr'] = isset($requireData['pid_arr']) ? json_encode($requireData['pid_arr']) : ''; $result = $this->authorityServiceClient->updateMenu($requireData); return $result ? Result::success($result['data']) : Result::error($result['message']); } /** * 菜单递归查询处理 * @return void */ public function getRecursionMenu() { $reqData = ['user_id' => Context::get("UserId")]; $result = $this->authorityServiceClient->getRecursionMenu($reqData); $rep = PublicData::buildMenuTree($result['data']); return $rep ? Result::success($rep) : Result::error("查询失败"); } /** * 查询所有的菜单 * @return array */ public function getAllMenuList() { $result = $this->authorityServiceClient->getAllMenuList([]); $rep = PublicData::buildMenuTree($result['data']); return $rep ? Result::success($rep) : Result::error("查询失败"); } }