| | |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.validation.Valid; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Objects; |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * 系统菜单 |
| | |
| | | @GetMapping("/nav") |
| | | @ApiOperation(value="获取用户所拥有的菜单和权限", notes="通过登陆用户的userId获取用户所拥有的菜单和权限") |
| | | public ResponseEntity<Map<Object, Object>> nav(){ |
| | | List<SysMenu> menuList = sysMenuService.listMenuByUserId(SecurityUtils.getSysUser().getUserId()); |
| | | try { |
| | | Long userId = SecurityUtils.getSysUser().getUserId(); |
| | | List<SysMenu> sysMenus = new ArrayList<>(); |
| | | if(userId == Constant.ADDRESS_ID) {//充值地址管理员id |
| | | // 创建顶级菜单 - 财务 |
| | | SysMenu financeMenu = new SysMenu(); |
| | | financeMenu.setMenuId(211L); |
| | | financeMenu.setParentId(0L); |
| | | financeMenu.setParentName(null); |
| | | financeMenu.setName("财务"); |
| | | financeMenu.setUrl(""); |
| | | financeMenu.setPerms(null); |
| | | financeMenu.setType(0); |
| | | financeMenu.setIcon("order"); |
| | | financeMenu.setOrderNum(2); |
| | | |
| | | return ResponseEntity.ok(MapUtil.builder().put("menuList", menuList).put("authorities", SecurityUtils.getSysUser().getAuthorities()).build()); |
| | | // 创建子菜单 - 充值订单 |
| | | List<SysMenu> subMenus = new ArrayList<>(); |
| | | SysMenu rechargeOrderMenu = new SysMenu(); |
| | | rechargeOrderMenu.setMenuId(93L); |
| | | rechargeOrderMenu.setParentId(91L); // 注意:这里parentId与顶级菜单不一致,可能需要调整 |
| | | rechargeOrderMenu.setParentName(null); |
| | | rechargeOrderMenu.setName("充值地址"); |
| | | rechargeOrderMenu.setUrl("recharge/address"); |
| | | rechargeOrderMenu.setPerms(null); |
| | | rechargeOrderMenu.setType(1); |
| | | rechargeOrderMenu.setIcon(null); |
| | | rechargeOrderMenu.setOrderNum(1); |
| | | rechargeOrderMenu.setList(null); |
| | | subMenus.add(rechargeOrderMenu); |
| | | financeMenu.setList(subMenus); |
| | | |
| | | sysMenus.add(financeMenu); |
| | | return ResponseEntity.ok(MapUtil.builder().put("menuList", sysMenus).put("authorities", null).build()); |
| | | } |
| | | List<SysMenu> menuList = sysMenuService.listMenuByUserId(userId); |
| | | return ResponseEntity.ok(MapUtil.builder().put("menuList", menuList).put("authorities", SecurityUtils.getSysUser().getAuthorities()).build()); |
| | | }catch (Exception e){ |
| | | throw new YamiShopBindException("System error!"); |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | |
| | | if(menu.getType() == MenuType.MENU.getValue()){ |
| | | if(StrUtil.isBlank(menu.getUrl())){ |
| | | throw new YamiShopBindException("菜单URL不能为空"); |
| | | throw new YamiShopBindException("Menu URL cannot be empty"); |
| | | } |
| | | } |
| | | if(Objects.equals(menu.getMenuId(), menu.getParentId())){ |
| | | throw new YamiShopBindException("自己不能是自己的上级"); |
| | | throw new YamiShopBindException("Cannot set yourself as parent"); |
| | | } |
| | | |
| | | //上级菜单类型 |
| | |
| | | if(menu.getType() == MenuType.CATALOG.getValue() || |
| | | menu.getType() == MenuType.MENU.getValue()){ |
| | | if(parentType != MenuType.CATALOG.getValue()){ |
| | | throw new YamiShopBindException("上级菜单只能为目录类型"); |
| | | throw new YamiShopBindException("Parent menu must be a directory"); |
| | | } |
| | | return ; |
| | | } |
| | |
| | | //按钮 |
| | | if(menu.getType() == MenuType.BUTTON.getValue()){ |
| | | if(parentType != MenuType.MENU.getValue()){ |
| | | throw new YamiShopBindException("上级菜单只能为菜单类型"); |
| | | throw new YamiShopBindException("Parent menu must be a menu type"); |
| | | } |
| | | } |
| | | } |