package com.iplatform.base.controller; import com.iplatform.base.SystemController; import com.iplatform.base.callback.SecurityCallback; import com.iplatform.base.service.RoleServiceImpl; import com.iplatform.base.util.MenuUtils; import com.iplatform.base.util.menu.SystemMenu; import com.iplatform.model.po.S_role; import com.iplatform.model.po.S_user_core; import com.walker.infrastructure.utils.StringUtils; import com.walker.web.ResponseValue; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.Iterator; import java.util.List; @RestController public class TestMenuController extends SystemController { @Autowired private RoleServiceImpl roleService; @RequestMapping("/test/menu/show") public ResponseValue showUserMenuList(long userId){ SecurityCallback securityCallback = this.getPlatformCallback(SecurityCallback.class); List menuList = null; S_user_core user = this.getUserCacheProvider().getUser(userId); List roleList = roleService.queryUserRoleList(userId); List roleIdList = new ArrayList<>(); if(!StringUtils.isEmptyList(roleList)){ for(S_role role : roleList){ roleIdList.add(role.getRole_id().toString()); } } menuList = securityCallback.loadUserMenu(user, roleIdList); if (menuList != null) { // 过滤掉按钮权限,前端只需要菜单,按钮权限在permisstion中控制 SystemMenu menu = null; for (Iterator it = menuList.iterator(); it.hasNext(); ) { menu = it.next(); // 1.去掉按钮菜单,同时,停用的菜单也要去掉。2023-05-14 // 2.不能展示的也要去掉,is_show = 0 if (menu.getMenu_type().equals(MenuUtils.MENU_TYPE_BUTTON) || menu.getStatus().equals(MenuUtils.MENU_STATUS_DISABLED) || menu.getVisible().equals(MenuUtils.MENU_INVISIBLE)) { it.remove(); } } } return ResponseValue.success(menuList); } }