您的位置:首页 > 产品设计 > UI/UE

easyui-tree动态获取后台数据成为书结构的操作

2015-05-20 16:13 411 查看
属性easyui前端框架的应该知道,返回树的json类型:

[
    {
        "id": 1, 
        "text": "Folder1", 
        "iconCls": "icon-save", 
        "children": [
            {
                "text": "File1", 
                "checked": true
            }, 
            {
                "text": "Books", 
                "state": "open", 
                "attributes": {
                    "url": "/demo/book/abc", 
                    "price": 100
                }, 
                "children": [
                    {
                        "text": "PhotoShop", 
                        "checked": true
                    }, 
                    {
                        "id": 8, 
                        "text": "Sub Bookds", 
                        "state": "closed"
                    }
                ]
            }
        ]
    }, 
    {
        "text": "Languages", 
        "state": "closed", 
        "children": [
            {
                "text": "Java"
            }, 
            {
                "text": "C#"
            }
        ]
    }
]
数据库表结构:

INSERT INTO `basic_organ_buss` VALUES ('1', '0', '总部', 'zongbu', null, null, null, null, null, null);

INSERT INTO `basic_organ_buss` VALUES ('2', '1', '美加百利', 'meijiabaili', null, null, null, null, null, '');

INSERT INTO `basic_organ_buss` VALUES ('3', '1', '前程百利', 'qianchengbaili', null, null, null, null, null, '');

INSERT INTO `basic_organ_buss` VALUES ('4', '1', '可为百利', 'keweibaili', null, null, null, null, null, '');

INSERT INTO `basic_organ_buss` VALUES ('5', '2', '咨询部', 'mj_zixubu', null, null, null, null, null, '');

INSERT INTO `basic_organ_buss` VALUES ('6', '2', '宣传部', 'mj_xuanchangbu', null, null, null, null, null, '');

INSERT INTO `basic_organ_buss` VALUES ('7', '2', '后勤部', 'mj_houqinbu', null, null, null, null, null, '');

INSERT INTO `basic_organ_buss` VALUES ('8', '3', '咨询部', 'qc_zixubu', null, null, null, null, null, '');

INSERT INTO `basic_organ_buss` VALUES ('9', '3', '宣传部', 'qc_xuanchangbu', null, null, null, null, null, '');

INSERT INTO `basic_organ_buss` VALUES ('10', '3', '后勤部', 'qc_houqinbu', null, null, null, null, null, '');

INSERT INTO `basic_organ_buss` VALUES ('11', '4', '研发部', 'kw_zixubu', null, null, null, null, null, '');

INSERT INTO `basic_organ_buss` VALUES ('12', '4', '技术部', 'kw_xuanchangbu', null, null, null, null, null, '');

INSERT INTO `basic_organ_buss` VALUES ('13', '4', '后勤部', 'kw_houqinbu', null, null, null, null, null, '');

INSERT INTO `basic_organ_buss` VALUES ('14', '11', '高分之路', 'kw_yf_gaofenzhilu', null, null, null, null, null, '');

INSERT INTO `basic_organ_buss` VALUES ('15', '11', '名校之路', 'kw_yf_mingxiaozhilu', null, null, null, null, null, '');

INSERT INTO `basic_organ_buss` VALUES ('16', '0', '老大', 'laoda', null, null, null, null, null, null);

这是一张自关联的表:

id parent_id

1 0

2 1

3 1

......

方式采用一级一级查找的方式:

方法一:获取所有的根节点

方法二:根据主键id查找他所有的子节点

/**
	 * 
	 * getRoot 获取所有的根节点
	 * 
	 * @Description 
	 * @return List<OrganBuss>
	 * @see
	 */
	public List<OrganBuss> getRoot();
	
	/**
	 * 
	 * getChildrensById  根据主键Id获取他的所有子节点
	 * 
	 * @Description 
	 * @param id
	 * @return List<OrganBuss>
	 * @see
	 */
	public List<OrganBuss> getChildrensById(Integer id);


controller层:

/**
	 * 
	 * insertChilddrens 子节点调用本身子节点进行自我递归
	 * 
	 * @Description 
	 * @param childrens
	 * @return List<Map<String,Object>>
	 * @see
	 */
	public List<Map<String, Object>> insertChilddrens(List<OrganBuss> childrens) {
		List<Map<String, Object>> childs = new ArrayList<Map<String, Object>>();
		
		for (OrganBuss children : childrens) {
			Map<String, Object> child = new HashMap<String, Object>();
			child.put("id", children.getBussId());
			child.put("text", children.getBussName());
			
			//在里面放一个child
			child.put("children", insertChilddrens(organBussService.getChildrensById(children.getBussId())));
			childs.add(child);
		}
		return childs;
	}
	@RequestMapping("/getTreeNode")
	@ResponseBody
	public Object getTreeNode() {
		List<Map<String, Object>> result = new ArrayList<Map<String, Object>>();
		List<OrganBuss> root = organBussService.getRoot();
		for (OrganBuss organBuss : root) {
			Map<String, Object> node = new HashMap<String, Object>();
			node.put("id", organBuss.getBussId());
			node.put("text", organBuss.getBussName());
			
			//返回的是childs
			List<Map<String, Object>> childs = insertChilddrens(organBussService.getChildrensById(organBuss.getBussId()));
			node.put("children", childs);
			
	
			
			result.add(node);
		}	
		return result;
	}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐