SysMenu.java 1.3 KB
package com.air.model;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import com.air.model.base.BaseSysMenu;
import com.jfinal.log.Log;

@SuppressWarnings("serial")
public class SysMenu extends BaseSysMenu<SysMenu> {
	public static final SysMenu dao = new SysMenu();

	public String table() {
		return "WDS_"+getClass().getSimpleName();
	}
	
	public List<SysMenu> getMenus(SysRole role) {
		Log.getLog(getClass()).error("role-->"+role);
		String sql = "select * from " + table() + " where id in (" + role.getStr("menu") + ")";
		List<SysMenu> allList = SysMenu.dao.find(sql);

		if (allList != null) {
			HashMap<Integer, List<SysMenu>> childMenuMap = new HashMap<Integer, List<SysMenu>>();
			List<SysMenu> parentList = new ArrayList<SysMenu>();
			for (SysMenu menu : allList) {
				int parentId = menu.getInt("parentId");
				if (parentId == 0) {
					parentList.add(menu);
				} else {
					if (!childMenuMap.containsKey(parentId)) {
						List<SysMenu> childList = new ArrayList<SysMenu>();
						childMenuMap.put(parentId, childList);
					}

					childMenuMap.get(parentId).add(menu);

				}
			}

			if (parentList != null && parentList.size() > 0) {
				for (SysMenu parentMenu : parentList) {
					parentMenu.put("child", childMenuMap.get(parentMenu.getId()));
				}
			}

			return parentList;
		}

		return null;
	}
}