/** * @author JQchen * @describe 获取底部菜单列表 * @version 2015-11-24 下午6:28:27 * @return */ @Override public List<Map<String, Object>> selectFootMenuListByType() { dataMapList = new ArrayList<Map<String, Object>>(); log.info("中科菜单模块---获取底部菜单列表---接收请求对象"); ZkMenu zkMenu = new ZkMenu(); // 根据父ID 菜单类型查询菜单list 查询顶级菜单列表 zkMenu.setParentfunctionid( "isHead"); // 设置顶级父类,isHead为查询条件,实现parentfunctionid is null or parentfunctionid=''查询 zkMenu.setShow_type(ZkMenuUtil.SHOW_TYPE_24); List<ZkMenuData> headMenuList = zkEnMenuDao.queryListByObject(zkMenu); if (headMenuList != null && headMenuList.size() > 0) { // 声明新的子菜单列表 for (ZkMenuData m : headMenuList) { Map<String, Object> datamap = new HashMap<String, Object>(); // 将顶级菜单对象添加到map:菜单id为key ,菜单对象调用递归方法 获取所有的子菜单列表 为value datamap.put("id", m.getId()); datamap.put("functionname", m.getFunctionname()); List<ZkMenuData> sublist = getSubData(m, ZkMenuUtil.SHOW_TYPE_24).getSubList(); // 如果下级获取不到子列表 获取更下级列表 if (sublist == null || sublist.size() < 1) { List<ZkMenuData> ssublist = getFootSubData(m.getId(), new ArrayList<ZkMenuData>()); datamap.put("subList", ssublist); } else { // 获取到子列表 在获取更下级菜单 sublist.addAll(getFootSubData(m.getId(), new ArrayList<ZkMenuData>())); datamap.put("subList", sublist); } dataMapList.add(datamap); } } return dataMapList; }
// 获取更下级底部子菜单列表 public List<ZkMenuData> getFootSubData(String parentId, List<ZkMenuData> ssublist) { ZkMenu menu = new ZkMenu(); menu.setParentfunctionid(parentId); List<ZkMenuData> menuList = zkEnMenuDao.queryListByObject(menu); if (menuList != null && menuList.size() > 0) { for (ZkMenuData data : menuList) { ssublist.addAll(getSubData(data, ZkMenuUtil.SHOW_TYPE_24).getSubList()); } } return ssublist; }
/** * @author JQchen * @describe 根据菜单对象递归添加所有的子菜单list * @version 2015-11-25 下午3:29:58 * @param m 添加前的菜单对象 * @param show_type 菜单类型 * @return 添加后的菜单对象 */ private ZkMenuData getSubData(ZkMenuData m, Integer show_type) { ZkMenu zkMenu = new ZkMenu(); // 根据父ID 菜单类型查询菜单list 查询子菜单列表 zkMenu.setParentfunctionid(m.getId()); zkMenu.setShow_type(show_type); List<ZkMenuData> headMenuList = zkEnMenuDao.queryListByObject(zkMenu); if (headMenuList != null && headMenuList.size() > 0) { // 菜单对象添加子菜单list m.setSubList(headMenuList); for (ZkMenuData menu : headMenuList) { // 调用自身 继续添加自身下级菜单list getSubData(menu, show_type); } } return m; }
/** * @author JQchen * @describe 根据父菜单ID查询其他菜单 * @version 2015-11-24 下午6:30:03 * @param parentId * @return */ public List<ZkMenuData> selectMenuListByParentId(String parentId) { ZkMenu zkMenu = new ZkMenu(); // 根据父ID \ zkMenu.setParentfunctionid(parentId); return zkEnMenuDao.queryListByObject(zkMenu); }