封装层级结构的树形数据

 

页面效果

数据格式

{
		      'name': '高质量发展指数结构解析','bg_color': 'color1',
		      'children': [
		        { 'name': '人口','bg_color': 'color1',
		          'children': [
		            { 'name': '本地劳动力变化本地劳动力变化','bg_color': 'color1'},
		            { 'name': '年轻城市分布年轻城市分布','bg_color': 'color1'}
		          ]
		        },
		        { 'name': '产业','bg_color': 'color2',
		          'children': [
		            { 'name': '一.月活跃度','bg_color': 'color2'},
		            { 'name': '二月.月活跃度','bg_color': 'color2',
		              'children': [
		                { 'name': '(4)GDP年预期','bg_color': 'color2'},
		                { 'name': '制造业集中度','bg_color': 'color2'}
		              ]
		            },
		            {'name':'三月.月活跃度','bg_color': 'color2'}
		          ]
		       },
		       {   'name':"环保",'bg_color': 'color3',
			       'children':[
		            { 'name': '事件预警','bg_color': 'color3'},
		            { 'name': '环境口碑年度','bg_color': 'color3'}	
			       ]
		       },
		       {
		       	'name':"稳定",'bg_color': 'color4',
			       'children':[
		            { 'name': '事件预警','bg_color': 'color4'},
		            { 'name': '监测详情','bg_color': 'color4'},
		            { 'name': '维稳效果指数','bg_color': 'color4'}	
			       ]		       	
		       },
		       {
		       	'name':"社会名声",'bg_color': 'color5',
			       'children':[
		            { 'name': '医疗','bg_color': 'color5'},
		            { 'name': '教育','bg_color': 'color5',
				       'children':[
			            { 'name': '路网','bg_color': 'color5'},
			            { 'name': '房产居住获得感','bg_color': 'color5'}	
				       ]		            	
		            },
		            { 'name': '公交','bg_color': 'color5'}	
			       ]		       	
		       },
		       {
		       	'name':"城市配套",'bg_color': 'color6',
			       'children':[
		            { 'name': '交通建设','bg_color': 'color6'},
		            { 'name': '文化建设','bg_color': 'color6'},
		            { 'name': '生活服务','bg_color': 'color6'}	
			       ]		       	
		       },		       
		      ]
		    }

实体类

要封装这样数据,为避免产生多次的数据交互,可以直接在实体类里面建立关系

一张表以pid关联数据

@NotFound(action = NotFoundAction.IGNORE) 要加上,否则找不到对应的数据会报错

/**主键*/
private String id;
/**父*/
private RtsRiskReasonPageEntity parent;
/**子*/
private List<RtsRiskReasonPageEntity> children = new ArrayList<RtsRiskReasonPageEntity>();

@OneToMany(mappedBy="parent", cascade={CascadeType.ALL}, fetch=FetchType.EAGER)
@NotFound(action = NotFoundAction.IGNORE)
public List<RtsRiskReasonPageEntity> getChildren() {
	return children;
}

public void setChildren(List<RtsRiskReasonPageEntity> children) {
	this.children = children;
}
@ManyToOne(cascade={CascadeType.ALL})
@JoinColumn(name="pid")
@NotFound(action = NotFoundAction.IGNORE)
public RtsRiskReasonPageEntity getParent() {
	return parent;
}
public void setParent(RtsRiskReasonPageEntity parent) {
	this.parent = parent;
}

后台

使用fastjson的  JSONArray.toJSONString()直接处理数据。

	
	@RequestMapping(params = "getTreeData")
	@ResponseBody
	public String getTreeData(HttpServletRequest request) {
		Map<String, Object> map = new HashMap<String, Object>();
		Map<String, Object> relationshipMap = new HashMap<String, Object>();
		List<RtsRiskReasonPageEntity> list = this.systemService.findByProperty(RtsRiskReasonPageEntity.class, "fkId", request.getParameter("fkId"));
		return JSONArray.toJSONString(list.get(0));
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值