Service:
/**
*獲取角色對應的菜單
*/
public RoleVo getRoleVoById(String roleId){
RoleDo roleDo = getRoleById(roleId);
RoleVo roleVo = new RoleVo();
BeanUtils.copyProperties(roleDo,roleVo);
List menuids = baseMenuMapper.listMenuByRole(roleId);
List menuVos = getMenuTree("", menuids);
roleVo.setMenus(menuVos);
return roleVo;
}
/**
*遞歸
*/
public List getMenuTree(String parentId , List menuids) {
List result = new ArrayList();
Example example = new Example(BaseMenuDo.class);
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo(“pid”, parentId);
List nextLevelMenus = baseMenuMapper.selectByExample(example);
for (BaseMenuDo item : nextLevelMenus) {
MenuVo menuVo = new MenuVo();
BeanUtils.copyProperties(item,menuVo);
if(menuids.contains(item.getId())){
menuVo.setChecked(true);
}
menuVo.setChildren(getMenuTree(item.getId(),menuids));
result.add(menuVo);
}
return result;
}
/**
-
Mapper
*/
public interface BaseMenuMapper extends Mapper {
void addrole_menu(@Param(“resourceId”) String resourceId, @Param(“roleId”) String roleId);List listMenuByRole(@Param(“roleId”) String roleId);
void deleterole_resourceByResourceId(@Param(“resourceId”) String resourceId);
void deleterole_resourceByRoleId(@Param(“roleId”) String roleId);
}
/**
- xml
*/
select RESOURCE_ID FROM BASE_ROLE_RESOURCE WHERE ROLE_ID =#{roleId}
/**
-
實體類
*/
@Data
public class RoleVo {private String id;
private String roleName;
private String description;
private List menus;
}
@Data
@Table(name = “ACE_ROLE_INFO”)
public class RoleDo extends BaseEntity{
@Id
private String id;
private String roleName;
private String description;
}
@Data
public class MenuVo {
private String id;
private String name;
private String title;
private boolean checked = false;
private List children;
}
@Table(name=“BASE_MENU”)
@Data
public class BaseMenuDo extends BaseEntity{
@Id
private String id;
private String name;
private String title;
private String pid;
}
2.獲取菜單樹
/**
- service
/
public List getMenuTree(String parentId ) {
List result = new ArrayList();
Example example = new Example(BaseMenuDo.class);
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo(“pid”, parentId);
List nextLevelMenus = baseMenuMapper.selectByExample(example);
for (BaseMenuDo item : nextLevelMenus) {
MenuVo menuVo = new MenuVo();
BeanUtils.copyProperties(item,menuVo);
menuVo.setChildren(getMenuTree(item.getId()));
result.add(menuVo);
}
return result;
}
/* - 實體類
*/
@Data
public class MenuVo {
private String id;
private String name;
private String title;
private boolean checked = false;
private List children;
}
@Table(name=“BASE_MENU”)
@Data
public class BaseMenuDo extends BaseEntity{
@Id
private String id;
private String name;
private String title;
private String pid;
}