mirror of
				https://github.com/continew-org/continew-admin.git
				synced 2025-10-31 22:57:17 +08:00 
			
		
		
		
	完善:完善菜单相关代码逻辑,优化部分细节
This commit is contained in:
		| @@ -20,10 +20,20 @@ import static top.charles7c.cnadmin.common.annotation.CrudRequestMapping.Api; | ||||
|  | ||||
| import io.swagger.v3.oas.annotations.tags.Tag; | ||||
|  | ||||
| import org.springframework.validation.annotation.Validated; | ||||
| import org.springframework.web.bind.annotation.PathVariable; | ||||
| import org.springframework.web.bind.annotation.RequestBody; | ||||
| import org.springframework.web.bind.annotation.RestController; | ||||
|  | ||||
| import cn.dev33.satoken.annotation.SaCheckPermission; | ||||
| import cn.hutool.core.util.ObjectUtil; | ||||
|  | ||||
| import top.charles7c.cnadmin.common.annotation.CrudRequestMapping; | ||||
| import top.charles7c.cnadmin.common.base.BaseController; | ||||
| import top.charles7c.cnadmin.common.base.BaseRequest; | ||||
| import top.charles7c.cnadmin.common.model.vo.R; | ||||
| import top.charles7c.cnadmin.common.util.URLUtils; | ||||
| import top.charles7c.cnadmin.common.util.validate.ValidationUtils; | ||||
| import top.charles7c.cnadmin.system.model.query.MenuQuery; | ||||
| import top.charles7c.cnadmin.system.model.request.MenuRequest; | ||||
| import top.charles7c.cnadmin.system.model.vo.MenuVO; | ||||
| @@ -38,4 +48,32 @@ import top.charles7c.cnadmin.system.service.MenuService; | ||||
| @Tag(name = "菜单管理 API") | ||||
| @RestController | ||||
| @CrudRequestMapping(value = "/system/menu", api = {Api.TREE, Api.GET, Api.ADD, Api.UPDATE, Api.DELETE, Api.EXPORT}) | ||||
| public class MenuController extends BaseController<MenuService, MenuVO, MenuVO, MenuQuery, MenuRequest> {} | ||||
| public class MenuController extends BaseController<MenuService, MenuVO, MenuVO, MenuQuery, MenuRequest> { | ||||
|  | ||||
|     @Override | ||||
|     @SaCheckPermission("system:menu:add") | ||||
|     protected R<Long> add(@Validated(BaseRequest.Add.class) @RequestBody MenuRequest request) { | ||||
|         this.checkPath(request); | ||||
|         return super.add(request); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     @SaCheckPermission("system:menu:update") | ||||
|     protected R update(@Validated(BaseRequest.Update.class) @RequestBody MenuRequest request, @PathVariable Long id) { | ||||
|         this.checkPath(request); | ||||
|         return super.update(request, id); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 检查路由地址格式 | ||||
|      *  | ||||
|      * @param request | ||||
|      *            创建或修改信息 | ||||
|      */ | ||||
|     private void checkPath(MenuRequest request) { | ||||
|         Boolean isExternal = ObjectUtil.defaultIfNull(request.getIsExternal(), false); | ||||
|         String path = request.getPath(); | ||||
|         ValidationUtils.throwIf(isExternal && !URLUtils.isHttpUrl(path), "路由地址格式错误,请以 http:// 或 https:// 开头"); | ||||
|         ValidationUtils.throwIf(!isExternal && URLUtils.isHttpUrl(path), "路由地址格式错误"); | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user