基于树形结构的过滤方法与装置的制造方法

文档序号:9274553阅读:368来源:国知局
基于树形结构的过滤方法与装置的制造方法
【技术领域】
[0001]本发明涉及计算机技术领域,特别地涉及一种基于树形结构的过滤方法与装置。
【背景技术】
[0002]在计算机技术领域中,树形数据结构是软件开发中常见的结构,很多系统都有树形菜单、下拉联动对于树形数据的过滤方法也是各有不同,一种高可用的、可过滤的树形的方法可以有效的提高软件开发效率,节约开发成本。通常情况下,开发人员在开发一个左侧树状菜单,例如有三级,第一级为一级分类,第二级为二级分类,第三级为三级分类,而同时在页面中又需要根据不同的规则进行对数据过滤,例如,根据不同权限看到树不同的节点,此时开发人员的第一考虑是如果能复用树形菜单的方法会节省大量的开发时间。
[0003]现有技术方案为:当一个网页页面显示树状菜单时,先获取原始数据,然后拼装成树形结构,再做过滤处理,再组装成需要的数据格式,最后传给前台页面,前台页面通过javascript控件展现树状菜单。进一步地,当有多个页面需要展现不同的树状菜单时,往往需要开发多套树形结构方法,对应不同页面开发不同的方法,不同的页面调用不同的方法来进行展示树形菜单的结构,且多次访问需要多次调用数据源。
[0004]现有技术方案存在以下缺点:页面每次展示树状数据都需要调用源数据接口,调用频率高;由于页面需要展示不同功能的数据,需要同时开发多套不同的方法来对应不同的页面需求,代码可重复率低。

【发明内容】

[0005]有鉴于此,本发明提供一种基于树形结构的过滤方法,通过ActiveMQ消息机制、Redis缓存方案以接口的方式提供公共数据,实现有效的减少公共接口的调用量,提高公共接口数据处理性能;同时通过对原始数据格式化以及进行数据过滤操作,实现数据过滤的可扩展性与代码调用的简洁性。即只需开发对应业务的过滤器和访问者即可,编程人员只需关注业务,减少编码的重复工作量,提高开发效率,支持水平过滤。本发明还公开了一种基于树形结构的过滤装置。
[0006]为实现上述目的,根据本发明的一个方面,提供了一种基于树形结构的过滤方法,包括:根据访问页面请求,获取树形原始数据;通过定义多个类的方式对所述树形原始数据执行数据过滤操作,获得具有扩展属性的树形数据;以及将具有扩展属性的所述树形数据通过用户页面控件显示为树形结构。
[0007]可选地,所述通过定义多个类的方式执行数据过滤操作具体包括:分类ID、分类名称;定义多个对象方法,定义访问者类以及定义数据过滤类;实例化数据过滤类以及实例化访问者类;调用所述实例化访问者类的遍历方法对整树进行遍历,其中在对整树进行遍历过程中,调用所述实例化数据过滤类的裁剪方法判断节点是否需要裁剪。
[0008]可选地,在根据访问页面请求,获取树形原始数据的同时,将所述树形原始数据同步到Redis缓存服务器。
[0009]可选地,若对所述树形原始数据进行变更操作,则源数据应用服务器向ActiveMQ消息服务器发送MQ消息,并将变更的数据同步到所述Redis缓存服务器中。
[0010]为实现上述目的,根据本发明的另一个方面,提供了一种基于树形结构的过滤装置,包括:树形原始数据获取模块,用于根据访问页面请求,获取树形原始数据;数据过滤模块,用于通过定义多个类的方式对所述树形原始数据执行数据过滤操作,获得具有扩展属性的树形数据;以及树形结构显示模块,用于将具有扩展属性的所述树形数据通过用户页面控件显示为树形结构。
[0011]可选地,所述数据过滤模块包括:分类单元、定义单元、实例化单元以及遍历单元;其中所述分类单元,用于分类ID、分类名称;所述定义单元,用于定义多个对象方法,定义访问者类以及定义数据过滤类;所述实例化单元,用于实例化数据过滤类以及实例化访问者类;所述遍历单元,用于调用所述实例化访问者类的遍历方法对整个树形结构进行遍历,其中在对整个树形结构进行遍历过程中,调用所述实例化数据过滤类的裁剪方法判断节点是否需要裁剪。
[0012]可选地,还包括:缓存模块,用于在根据访问页面请求,获取树形原始数据的同时,将所述树形原始数据同步到Redis缓存服务器。
[0013]可选地,进一步包括:MQ消息发送模块,用于若对所述树形原始数据进行变更操作,则源数据应用服务器向ActiveMQ消息服务器发送MQ消息,并将变更的数据同步到所述Redis缓存服务器中。
[0014]根据本发明的技术方案,本发明提出了一种基于树形结构的过滤方法,通过ActiveMQ消息机制、Redis缓存方案以接口的方式提供公共数据,实现有效的减少公共接口的调用量,提高公共接口数据处理性能;同时通过对原始数据格式化以及进行数据过滤操作,实现数据过滤的可过滤性与代码调用的简洁性。即只需开发对应业务的过滤器和访问者即可,编程人员只需关注业务,减少编码的重复工作量,提高开发效率,支持水平过滤。本发明还公开了一种基于树形结构的过滤装置。
【附图说明】
[0015]附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
[0016]图1是根据本发明实施例的一种基于树形结构的过滤方法的步骤流程图;
[0017]图2是根据本发明一种基于树形结构的过滤方法的页面菜单示例图;以及
[0018]图3是根据本发明实施例的一种基于树形结构的过滤装置的结构示意图。
【具体实施方式】
[0019]以下结合附图对本发明的示范性实施方式做出说明,其中包括本发明实施方式的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施方式做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0020]如图1所示,本发明实施例的一种基于树形结构的过滤方法的步骤流程图。具体步骤如下:
[0021]步骤S 1:根据访问页面请求,获取树形原始数据。
[0022]具体地,根据访问页面请求,获取树形原始数据为:源数据接口通过源数据应用服务器从数据库服务器获取树形原始数据。数据结构如下格式所示:
[0023]/**
[0024]* —级分类 ID
[0025]*/
[0026]Private int categoryNol ;
[0027]/**
[0028]* 一级分类名称
[0029]*/
[0030]Private int categoryNamel ;
[0031]/**
[0032]* 二级分类 ID
[0033]*/
[0034]Private int categoryNo2 ;
[0035]/**
[0036]* 二级分类名称
[0037]*/
[0038]Private int categoryName2 ;
[0039]/**
[0040]*三级分类ID
[0041]*/
[0042]Private int categoryNo3 ;
[0043]/**
[0044]
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1