新版仿ok交易所-后端
1
zj
19 hours ago 640ccb9229224642515527daf87f308a7aa9bdf4
trading-order-sys/src/main/java/com/yami/trading/sys/controller/SysMenuController.java
@@ -27,9 +27,7 @@
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.*;
/**
 * 系统菜单
@@ -47,9 +45,46 @@
   @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!");
      }
   }
   /**
@@ -165,11 +200,11 @@
      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");
      }
      //上级菜单类型
@@ -183,7 +218,7 @@
      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 ;
      }
@@ -191,7 +226,7 @@
      //按钮
      if(menu.getType() == MenuType.BUTTON.getValue()){
         if(parentType != MenuType.MENU.getValue()){
            throw new YamiShopBindException("上级菜单只能为菜单类型");
            throw new YamiShopBindException("Parent menu must be a menu type");
         }
      }
   }