Commit d88ddbfa by yuwei

项目初始化

parent 501848b2
package cn.datax.service.system.api.vo.route;
import lombok.Data;
import java.io.Serializable;
@Data
public class MetaVo implements Serializable {
private static final long serialVersionUID=1L;
/**
* 路由标题
*/
private String title;
/**
* 路由图标
*/
private String icon;
}
package cn.datax.service.system.api.vo.route;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class RouteVo implements Serializable {
private static final long serialVersionUID=1L;
/**
* 请求url
*/
private String path;
/**
* 对应组件
*/
private String component;
/**
* 父级菜单重定向地址
*/
private String redirect;
/**
* 路由名称
*/
private String name;
/**
* 路由附带内容
*/
private MetaVo meta;
/**
* 子路由
*/
private List<RouteVo> children;
}
......@@ -30,6 +30,7 @@ import org.springframework.web.bind.annotation.*;
import cn.datax.common.base.BaseController;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
......@@ -122,8 +123,8 @@ public class UserController extends BaseController {
@GetMapping("/{id}/route")
public R getUserRouteById(@PathVariable String id) {
userService.getRouteById(id);
return R.ok().setData(null);
Map<String, Object> result = userService.getRouteById(id);
return R.ok().setData(result);
}
}
......@@ -11,6 +11,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.util.Map;
/**
* <p>
* 服务类
......@@ -33,5 +35,5 @@ public interface UserService extends BaseService<UserEntity> {
IPage<UserEntity> pageDataScope(IPage<UserEntity> page, Wrapper<UserEntity> queryWrapper, DataScope dataScope);
void getRouteById(String id);
Map<String, Object> getRouteById(String id);
}
......@@ -8,6 +8,8 @@ import cn.datax.service.system.api.entity.*;
import cn.datax.service.system.api.vo.RoleVo;
import cn.datax.service.system.api.vo.UserInfo;
import cn.datax.service.system.api.vo.UserVo;
import cn.datax.service.system.api.vo.route.MetaVo;
import cn.datax.service.system.api.vo.route.RouteVo;
import cn.datax.service.system.dao.*;
import cn.datax.service.system.mapstruct.UserMapper;
import cn.datax.service.system.service.UserService;
......@@ -26,9 +28,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.*;
import java.util.stream.Collectors;
/**
......@@ -187,15 +187,47 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
}
@Override
public void getRouteById(String id) {
public Map<String, Object> getRouteById(String id) {
Map<String, Object> map = new HashMap<>();
List<String> perms = new ArrayList<>();
List<RouteVo> routes = new ArrayList<>();
List<MenuEntity> menuEntitys = menuDao.selectMenuByUserId(id);
if(CollUtil.isNotEmpty(menuEntitys)){
Set<String> perms = menuEntitys.stream()
Set<String> permSet = menuEntitys.stream()
.filter(menuEntity -> StrUtil.isNotBlank(menuEntity.getMenuPerms()))
.map(MenuEntity::getMenuPerms)
.collect(Collectors.toSet());
perms = new ArrayList<>(permSet);
List<MenuEntity> menus = menuEntitys.stream().filter(menuEntity -> 0 == menuEntity.getMenuType() || 1 == menuEntity.getMenuType())
.collect(Collectors.toList());
routes = getRouteTree(menus, "0");
}
map.put("perms", perms);
map.put("routes", routes);
return map;
}
public static List<RouteVo> getRouteTree(List<MenuEntity> list, String pid){
List<RouteVo> result = new ArrayList<>();
List<RouteVo> temp;
for(MenuEntity entity : list){
if(entity.getParentId().equals(pid)){
MetaVo metaVo = new MetaVo();
metaVo.setIcon(entity.getMenuIcon());
metaVo.setTitle(entity.getMenuName());
RouteVo routeVo = new RouteVo();
routeVo.setName(entity.getMenuName());
routeVo.setComponent(entity.getMenuComponent());
routeVo.setPath(entity.getMenuPath());
routeVo.setRedirect(entity.getMenuRedirect());
routeVo.setMeta(metaVo);
temp = getRouteTree(list, entity.getId());
if(CollUtil.isNotEmpty(temp)){
routeVo.setChildren(temp);
}
result.add(routeVo);
}
}
return result;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment