validator; } protected function buildQueryConfig(Request $request, string $scene = 'default'): array { $p = $request->all(); $config = []; $config['model'] = $this->modelClass; switch ($scene) { case 'default': $config['where']['system_id'] = ['in', [0, $p['system_id']]]; $config['where']['status'] = 1; $config['order']['sort'] = 'asc'; $config['order']['id'] = 'asc'; break; case 'menuList': $config['where']['status'] = 1; $config['where']['type'] = ['!=', 'permission']; $config['order']['sort'] = 'asc'; $config['order']['id'] = 'asc'; break; case 'menuTreeList': $config['where']['status'] = 1; $config['order']['sort'] = 'asc'; $config['order']['id'] = 'asc'; break; case 'index': $config['where']['status'] = 1; $config['order']['sort'] = 'asc'; $config['order']['id'] = 'asc'; break; case 'show': $config['where']['id'] = $p['id']; $config['where']['status'] = 1; break; case 'store': break; case 'update': $config['where']['id'] = $p['id']; break; case 'destroy': $config['where']['id'] = $p['id']; break; } return $config; } public function serviceMenuList(Request $request) { $config = $this->buildQueryConfig($request, 'menuList'); $result = $this->logicListAll($config); return $this->postProcess('MenuList', $result); } public function serviceMenuTreeList(Request $request) { $config = $this->buildQueryConfig($request, 'menuTreeList'); $result = (new ResourceLogic())->logicListAllResources($request, $config); return $this->postProcess('MenuTreeList', $result); } protected function afterServiceListAll($data) { $data = Tree::buildMenuTreeWithReference($data->toArray()); return $data; } protected function afterServiceMenuList($data) { $data = Tree::buildMenuTree($data->toArray()); return $data; } protected function afterServiceMenuTreeList($data) { $data = Tree::buildMenuTree($data->toArray()); return $data; } public function beforeServiceStore($data, Request $request) { $data['parent_id'] = $data['parent_id'] != '' ? $data['parent_id'] : 0; $data['system_id'] = $data['system_id'] != '' ? $data['system_id'] : 0; return $data; } public function beforeServiceUpdate($data, Request $request) { $data['parent_id'] = $data['parent_id'] != '' ? $data['parent_id'] : 0; $data['system_id'] = $data['system_id'] != '' ? $data['system_id'] : 0; return $data; } }