|
@@ -7,6 +7,7 @@ import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import cn.tr.core.exception.ServiceException;
|
|
import cn.tr.core.exception.ServiceException;
|
|
|
import cn.tr.core.exception.TRExcCode;
|
|
import cn.tr.core.exception.TRExcCode;
|
|
|
|
|
+import cn.tr.core.tree.TreeNode;
|
|
|
import cn.tr.core.utils.MenuUtil;
|
|
import cn.tr.core.utils.MenuUtil;
|
|
|
import cn.tr.core.utils.TreeUtil;
|
|
import cn.tr.core.utils.TreeUtil;
|
|
|
import cn.tr.module.api.sys.user.CbbMenuDTO;
|
|
import cn.tr.module.api.sys.user.CbbMenuDTO;
|
|
@@ -18,6 +19,7 @@ import cn.tr.module.sys.user.po.SysMenuPO;
|
|
|
import cn.tr.module.sys.user.repository.SysMenuRepository;
|
|
import cn.tr.module.sys.user.repository.SysMenuRepository;
|
|
|
import cn.tr.module.sys.user.service.ISysMenuService;
|
|
import cn.tr.module.sys.user.service.ISysMenuService;
|
|
|
import cn.tr.module.sys.user.vo.RouteItemVO;
|
|
import cn.tr.module.sys.user.vo.RouteItemVO;
|
|
|
|
|
+import cn.tr.plugin.security.utils.SaTokenUtils;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.AllArgsConstructor;
|
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.stereotype.Component;
|
|
@@ -54,10 +56,11 @@ public class SysMenuApiProvider implements SysMenuApi {
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public String findFirstMenuPathByUserAndTenant(String userId) {
|
|
public String findFirstMenuPathByUserAndTenant(String userId) {
|
|
|
|
|
+ SaTokenUtils.getStpUtil().checkLogin();
|
|
|
List<RouteItemVO> routeItemVOS = TreeUtil.buildTree(currentUserService.currentUserMenus(""));
|
|
List<RouteItemVO> routeItemVOS = TreeUtil.buildTree(currentUserService.currentUserMenus(""));
|
|
|
return routeItemVOS.stream()
|
|
return routeItemVOS.stream()
|
|
|
.findFirst()
|
|
.findFirst()
|
|
|
- .map(RouteItemVO::getName)
|
|
|
|
|
|
|
+ .map(this::recursionRoute)
|
|
|
.orElse("");
|
|
.orElse("");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -179,4 +182,26 @@ public class SysMenuApiProvider implements SysMenuApi {
|
|
|
menu.setDisable(false);
|
|
menu.setDisable(false);
|
|
|
return menu;
|
|
return menu;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @description: 递归获取第一个菜单路由
|
|
|
|
|
+ * @author wangzl
|
|
|
|
|
+ * @date 2025/9/28
|
|
|
|
|
+ */
|
|
|
|
|
+ private String recursionRoute(RouteItemVO routeItemVO){
|
|
|
|
|
+ if(routeItemVO==null){
|
|
|
|
|
+ return "";
|
|
|
|
|
+ }
|
|
|
|
|
+ if(CollectionUtil.isEmpty(routeItemVO.getChildren())){
|
|
|
|
|
+ return routeItemVO.getName();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ RouteItemVO firstChild = (RouteItemVO) routeItemVO.getChildren().stream()
|
|
|
|
|
+ .findFirst()
|
|
|
|
|
+ .orElse(null);
|
|
|
|
|
+
|
|
|
|
|
+ return recursionRoute(firstChild);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
}
|
|
}
|