request->input("id",0); $page = (int)$this->request->input("page",1); $pageSize = (int)$this->request->input("pageSize",10); $data = [ 'id'=>$id, 'page'=>$page, 'pageSize'=>$pageSize ]; $result = $this->authorityServiceClient->getMenuList($data); if($result['data']){ foreach ($result['data']['rows'] as $k=>$v) { $result['data']['rows'][$k]['pid_arr'] = $v['pid_arr']?json_decode($v['pid_arr']):[0]; } } return $result?Result::success($result['data']):Result::error($result['message']); } /** * 删除菜单 * @return array */ public function delMenu() { $id = (int)$this->request->input("id",0); $data = [ 'id'=>$id, 'page'=>1, 'pageSize'=>2 ]; $result = $this->authorityServiceClient->getMenuList($data); if(count($result['data']['rows'])>0){ return Result::error("有子菜单不能删除"); } 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); } if(isset($requireData['pid']) && is_array($requireData['pid'])){ $requireData['pid_arr'] = json_encode($requireData['pid']); $requireData['pid'] = end($requireData['pid']); }else{ $id = [0]; $requireData['pid_arr'] = json_encode($id); $requireData['pid'] = end($id); } $result = $this->authorityServiceClient->addMenu($requireData); 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', // 'pid' => 'required', 'label' => 'required', // 'url' => 'required', ], [ 'id.required' => 'id不能为空', // 'pid.required' => '父级id不能为空', 'label.required' => '菜单名称不能为空', // 'url.required' => '路由地址不能为空', ] ); if ($validator->fails()){ $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } unset($requireData['pid_arr']); var_dump("提交数据前:",$requireData); if(isset($requireData['pid']) && is_array($requireData['pid'])){ $requireData['pid_arr'] = json_encode($requireData['pid']); $requireData['pid'] = end($requireData['pid']); }else if(isset($requireData['pid']) && $requireData['pid']>0){ // array_push($requireData['pid'],$requireData['pid']); $requireData['pid'] = [$requireData['pid']]; $requireData['pid_arr'] = json_encode($requireData['pid']); $requireData['pid'] = end($requireData['pid']); }else{ $id = [0]; $requireData['pid_arr'] = json_encode($id); $requireData['pid'] = end($id); } var_dump("提交数据后",$requireData); $result = $this->authorityServiceClient->updateMenu($requireData); return $result?Result::success($result['data']):Result::error($result['message']); } /** * 菜单递归查询处理 * @return void */ public function getRecursionMenu() { $header = $this->request->getHeaders(); if(!isset($header['origin'])){ return Result::error("header请配置origin"); } $origin = $header['origin'][0]; $logindevice = explode("//", $origin); $reqData = [ 'user_id' =>Context::get("UserId"), 'logindevice' => $logindevice[1] ]; $result = $this->authorityServiceClient->getRecursionMenu($reqData); $rep = PublicData::buildMenuTree($result['data']); return $rep?Result::success($rep):Result::error("查询失败"); } }