From 4470052c3b6bdeb18e45987f8aa293d1e93d0552 Mon Sep 17 00:00:00 2001
From: Ludc <2870569285@qq.com>
Date: 星期二, 18 十一月 2025 11:59:12 +0800
Subject: [PATCH] 所有文件上传接口增加文件安全校验逻辑。
---
Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/controller/MenuController.java | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 53 insertions(+), 6 deletions(-)
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/controller/MenuController.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/controller/MenuController.java
index f597a76..514bd57 100644
--- a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/controller/MenuController.java
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/controller/MenuController.java
@@ -16,12 +16,14 @@
*/
package com.vci.ubcs.system.controller;
+import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.vci.ubcs.system.entity.Menu;
import com.vci.ubcs.system.entity.TopMenu;
import com.vci.ubcs.system.service.IMenuService;
import com.vci.ubcs.system.service.ITopMenuService;
+import com.vci.ubcs.system.vo.ButtonCloneVO;
import com.vci.ubcs.system.vo.CheckedTreeVO;
import com.vci.ubcs.system.vo.GrantTreeVO;
import com.vci.ubcs.system.vo.MenuVO;
@@ -30,7 +32,10 @@
import lombok.AllArgsConstructor;
import org.springblade.core.cache.utils.CacheUtil;
import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.log.annotation.ApiLog;
+import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.tenant.annotation.NonDS;
import org.springblade.core.tool.api.R;
@@ -60,6 +65,7 @@
public class MenuController extends BladeController {
private final IMenuService menuService;
+
private final ITopMenuService topMenuService;
/**
@@ -91,6 +97,25 @@
}
/**
+ * 鏍规嵁鐖惰彍鍗曠殑code鑾峰彇锛屼笅闈㈢殑鎸夐挳
+ * @param menu
+ * @return
+ */
+ @GetMapping("/getButtonByParentCode")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "code", value = "鑿滃崟缂栧彿", paramType = "query", dataType = "string"),
+ @ApiImplicitParam(name = "category", value = "鑿滃崟绫诲瀷", paramType = "query", dataType = "string")
+ })
+ @ApiOperationSupport(order = 3)
+ @ApiOperation(value = "鍒楄〃", notes = "浼犲叆menu")
+ public R<List<MenuVO>> getButtonByParentCode(@ApiIgnore @RequestParam Map<String, Object> menu){
+ if(Func.isBlank(menu.getOrDefault("code","").toString())){
+ throw new ServiceException("蹇呭~鍙傛暟鑿滃崟code涓嶈兘涓虹┖锛�");
+ }
+ return R.data(MenuWrapper.build().listNodeVO(menuService.getButtonByParentCode(menu.getOrDefault("code","").toString())));
+ }
+
+ /**
* 鎳掑姞杞藉垪琛�
*/
@GetMapping("/lazy-list")
@@ -101,6 +126,7 @@
//@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
@ApiOperationSupport(order = 3)
@ApiOperation(value = "鎳掑姞杞藉垪琛�", notes = "浼犲叆menu")
+ @ApiLog("鑿滃崟鎳掑姞杞藉垪琛�")
public R<List<MenuVO>> lazyList(Long parentId, @ApiIgnore @RequestParam Map<String, Object> menu) {
List<MenuVO> list = menuService.lazyList(parentId, menu);
return R.data(MenuWrapper.build().listNodeLazyVO(list));
@@ -133,9 +159,9 @@
//@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
@ApiOperationSupport(order = 5)
@ApiOperation(value = "鎳掑姞杞借彍鍗曞垪琛�", notes = "浼犲叆menu")
- public R<List<MenuVO>> lazyMenuList(Long parentId, @ApiIgnore @RequestParam Map<String, Object> menu) {
- List<MenuVO> list = menuService.lazyMenuList(parentId, menu);
- return R.data(MenuWrapper.build().listNodeLazyVO(list));
+ public R<IPage<MenuVO>> lazyMenuList(Long parentId, @ApiIgnore @RequestParam Map<String, Object> menu, Query query) {
+ IPage<MenuVO> menuVOIPage = menuService.lazyMenuPage(parentId, menu,query);
+ return R.data(MenuWrapper.build().pageNodeLazyVO(menuVOIPage));
}
/**
@@ -155,7 +181,6 @@
}
return R.fail("鎿嶄綔澶辫触");
}
-
/**
* 鍒犻櫎
@@ -177,8 +202,9 @@
@ApiOperationSupport(order = 8)
@ApiOperation(value = "鍓嶇鑿滃崟鏁版嵁", notes = "鍓嶇鑿滃崟鏁版嵁")
public R<List<MenuVO>> routes(BladeUser user, Long topMenuId) {
- List<MenuVO> list = menuService.routes((user == null) ? null : user.getRoleId(), topMenuId);
- return R.data(list);
+ List<MenuVO> lists = menuService.routes((user == null) ? null : user.getRoleId(), topMenuId);
+ menuService.handleKeepAlive(lists);
+ return R.data(lists);
}
/**
@@ -281,4 +307,25 @@
}
return R.data(menuService.authRoutes(user));
}
+
+ /**
+ * 鍏嬮殕鍏朵粬鑿滃崟涓嬫寜閽�
+ * @param buttonCloneVO 瑕佸厠闅嗙殑鑿滃崟鎸夐挳涓婚敭 琚厠闅嗙殑鎸夐挳涓婚敭
+ * @return
+ */
+ @PostMapping("/cloneMenuButton")
+ public R cloneMenuButton(@RequestBody ButtonCloneVO buttonCloneVO) {
+ return menuService.cloneMenuButton(buttonCloneVO.getMenuId(), buttonCloneVO.getButtonIds());
+ }
+
+ /**
+ * 鏍规嵁瑙掕壊id鑾峰彇宸叉巿鏉冪殑鎸夐挳淇℃伅
+ * @param roleId
+ * @return
+ */
+ @GetMapping("/getButtonsByRoleId")
+ public R<List<Menu>> getButtonsByRoleId(@Valid @RequestParam("roleId") String roleId,@Valid @RequestParam("code") String menuCode){
+ return R.data(menuService.getButtonsByRoleId(roleId,menuCode));
+ }
+
}
--
Gitblit v1.9.3