@Data
public class SysUserFavoriteMenu {
/**
* 账号ID
*/
private String userId;
/**
* 菜单ID
*/
private String menuId;
/**
* 父菜单ID
*/
private String parentId;
/**
* 经销商编码
*/
private String did;
}
public List<SysMenu> getFavoriteMenu(String userId,String did){
List<SysMenu> sysMenus = new ArrayList<>();
//获取常用菜单叶子节点
List<SysUserFavoriteMenu> sysUserFavoriteMenuMappers = sysUserFavoriteMenuMapper.getSysUserFavoriteMenu(userId,did);
for(SysUserFavoriteMenu sysUserFavoriteMenu : sysUserFavoriteMenuMappers){
//获取叶子节点对应的父节点
SysMenu sysMenu = sysMenuMapper.selectByPrimaryKey(sysUserFavoriteMenu.getParentId());
//把父节点加入sysMenus中 并把这个叶子节点放在这个父节点下
SysMenu child = sysMenuMapper.selectByPrimaryKey(sysUserFavoriteMenu.getMenuId());
child.setIsFavorite("1");
if(sysMenus == null || sysMenus.isEmpty()){
sysMenu.getChildrens().add(child);
sysMenus.add(sysMenu);
}else{
int flag = 0;
for(int a=0;a<sysMenus.size();a++){
//如果父节点等于收藏的父节点 那么 就是同一个父节点 则把这个childs也放在这个父节点下
if(sysMenus.get(a).getRowId().equals(sysMenu.getRowId())){
sysMenus.get(a).getChildrens().add(child);
flag++;
break;
}
}
if(flag==0){
sysMenu.getChildrens().add(child);
sysMenus.add(sysMenu);
}
}
}
return sysMenus;
}