CN113031835A - 一种菜单数据处理方法及装置 - Google Patents
一种菜单数据处理方法及装置 Download PDFInfo
- Publication number
- CN113031835A CN113031835A CN202110308076.0A CN202110308076A CN113031835A CN 113031835 A CN113031835 A CN 113031835A CN 202110308076 A CN202110308076 A CN 202110308076A CN 113031835 A CN113031835 A CN 113031835A
- Authority
- CN
- China
- Prior art keywords
- menu
- determining
- level
- array
- items
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 11
- 238000000034 method Methods 0.000 claims abstract description 66
- 238000012163 sequencing technique Methods 0.000 claims abstract description 34
- 230000004048 modification Effects 0.000 claims abstract description 29
- 238000012986 modification Methods 0.000 claims abstract description 29
- 238000004891 communication Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 5
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 238000003491 array Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请涉及一种菜单数据处理方法及装置,包括:获取作为菜单修改请求的菜单数组;确定菜单数组中各菜单项的排序号码,并得到与菜单数组对应的菜单集合;根据菜单数组中各菜单项的排序号码及父节点ID,确定各菜单项对应的多级排列信息;根据多级排列信息对菜单集合中的菜单项进行排序,得到更新菜单集合;将更新菜单集合转换为更新菜单数组,并发送到菜单修改请求对应的客户端,使得客户端根据更新菜单数组进行菜单展示。通过本实施例中的方法,可以实时获取前端对菜单的修改结果,并且基于前端发送的菜单修改请求,可以生成对应的更新菜单集合,便于后期客户端再次对该菜单集合进行读取时,可以基于更新菜单集合,使客户端展示最新修改后的菜单。
Description
技术领域
本申请涉及数据处理领域,尤其涉及一种菜单数据处理方法及装置。
背景技术
随着互联网技术的发展,越来越多的客户端或网站出现在用户的生活工作中;其中,菜单是客户端或网站的重要组成部分,菜单是可以便于用户进行选择的选项列表,通过设置菜单,可以大大的便利于用户进行目标项的选择。
但是现有技术中,菜单是在前端代码中写死的菜单名称和路径,因此在每次上线新的功能菜单时,都需要创建新的分支,然后前端发布新版,才能支持菜单上新,因此相关技术中存在机制不灵活,无法动态配置的问题。
针对相关技术中存在的诸多技术问题,目前尚未提供有效的解决方案。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种菜单数据处理方法及装置。
第一方面,本申请实施例提供了一种菜单数据处理方法及装置,包括:
获取作为菜单修改请求的菜单数组,所述菜单数组包括菜单项对应的菜单数据;
确定所述菜单数组中各所述菜单项的排序号码,并得到与所述菜单数组对应的菜单集合;
根据所述菜单数组中各所述菜单项的排序号码及父节点ID,确定各所述菜单项对应的多级排列信息;
根据所述多级排列信息对所述菜单集合中的菜单项进行排序,得到更新菜单集合;
将所述更新菜单集合转换为更新菜单数组,并发送到菜单修改请求对应的客户端,使得所述客户端根据所述更新菜单数组进行菜单展示。
可选的,如前述的方法,所述确定所述菜单数组中各所述菜单项的排序号码,并得到与所述菜单数组对应的菜单集合,包括:
当每个所述菜单数据都包括预设字段信息时,按照所述菜单数组中各个所述菜单项的排列顺序以及预设的第一编码策略,依次确定各个所述菜单项的所述排序号码,并建立所述排序号码与所述菜单项之间的第一对应关系;
将各个所述菜单项以及所述排序号码按照所述第一对应关系,依次加入预设集合中,得到一维的所述菜单集合。
可选的,如前述的方法,所述根据所述菜单数组中各所述菜单项的排序号码及父节点ID,确定各所述菜单项对应的多级排列信息,包括:
根据所述父节点ID确定各所述菜单项之间的层级关系;
根据所述排序号码及层级关系,依次确定各所述菜单项对应的多级排列信息。
可选的,如前述的方法,所述根据所述父节点ID确定各所述菜单项之间的层级关系,包括:
确定各个所述菜单项的菜单ID以及父节点ID;
根据所述父节点ID以及菜单ID,确定各个所述菜单项之间的层级关系;
所述根据所述排序号码及层级关系,依次确定各所述菜单项对应的多级排列信息,包括:
根据所述层级关系,确定各层级中的菜单项;
根据所述各层级中的菜单项以及所述排列顺序,依次确定每个层级中各所述菜单项的单个层级排列顺序;
根据所述单个层级排列顺序及层级关系,确定各所述菜单项对应的多级排列信息。
可选的,如前述的方法,所述根据所述单个层级排列顺序及层级关系,确定各所述菜单项对应的多级排列信息,包括:
采用预设的第二编码策略,根据所述单个层级排列顺序及层级关系,逐个层级对所述菜单项进行编码,得到所述菜单项对应的多级排列信息。
可选的,如前述的方法,所述根据所述各层级中的菜单项以及所述排列顺序,依次确定每个层级中各所述菜单项的单个层级排列顺序,包括:
在所有所述菜单项中确定不存在父节点ID的一级菜单项,并确定一级菜单项的菜单ID,所述一级菜单项位于第一层级中;
将所述一级菜单项添加至预设的菜单集合中,并根据所述排列顺序,确定各个所述一级菜单项在所述第一层级中的单个层级排列顺序;
按照所述层级关系,将二级菜单项作为所述一级菜单项的子菜单,添加至预设菜单集合中,并根据所述排序号码,确定各个所述二级菜单项在第二层级中的单个层级排列顺序,所述二级菜单项位于第二层级中;
按此循环,直至将所有所述菜单项添加至所述预设菜单集合,并确定每个层级中各所述菜单项的单个层级排列顺序。
可选的,如前述的方法,所述根据所述多级排列信息对所述菜单集合中的菜单项进行排序,得到更新菜单集合,包括:
按照所述多级排列信息建立所述菜单集合中的菜单项之间的关联关系;
按照所述关联关系将所述菜单项写入目标菜单集合中,得到所述更新菜单集合。
第二方面,本申请实施例提供了一种菜单数据处理装置,包括:
获取模块,用于获取作为菜单修改请求的菜单数组,所述菜单数组包括菜单项对应的菜单数据;
转换模块,用于确定所述菜单数组中各所述菜单项的排序号码,并得到与所述菜单数组对应的菜单集合;
多级排列信息确定模块,用于根据所述菜单数组中各所述菜单项的排序号码及父节点ID,确定各所述菜单项对应的多级排列信息;
更新模块,用于根据所述多级排列信息对所述菜单集合中的菜单项进行排序,得到更新菜单集合;
发送模块,用于将所述更新菜单集合转换为更新菜单数组,并发送到菜单修改请求对应的客户端,使得所述客户端根据所述更新菜单数组进行菜单展示。
第三方面,本申请实施例提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,所述处理器、通信接口和存储器通过通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述计算机程序时,实现如前述任一项所述的方法。
第四方面,本申请实施例提供了一种存储介质,所述存储介质包括存储的程序,其中,所述程序运行时执行如前任一项所述的方法。
本申请实施例提供了一种菜单数据处理方法及装置,包括:获取作为菜单修改请求的菜单数组,所述菜单数组包括菜单项对应的菜单数据;确定所述菜单数组中各所述菜单项的排序号码,并得到与所述菜单数组对应的菜单集合;根据所述菜单数组中各所述菜单项的排序号码及父节点ID,确定各所述菜单项对应的多级排列信息;根据所述多级排列信息对所述菜单集合中的菜单项进行排序,得到更新菜单集合;将所述更新菜单集合转换为更新菜单数组,并发送到菜单修改请求对应的客户端,使得所述客户端根据所述更新菜单数组进行菜单展示。通过本实施例中的方法,可以实时获取前端对菜单的修改结果,并且基于前端发送的菜单修改请求,可以生成对应的更新菜单集合,以便于后期客户端再次对该菜单集合进行读取时,可以基于更新菜单集合,使客户端展示最新修改后的菜单。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种菜单数据处理方法的流程图;
图2为本申请另一实施例提供的一种菜单数据处理方法的流程图;
图3为本申请实施例提供的一种菜单数据处理装置的框图;
图4为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请实施例提供的一种菜单数据处理方法,包括如下所述步骤S1至S4:
步骤S1,获取作为菜单修改请求的菜单数组,菜单数组包括菜单项对应的菜单数据;
具体的,菜单修改请求,可以是由前端通过对可编辑的菜单进行编辑(例如:增加菜单项、减少菜单项或者移动菜单项等)后生成的请求。
菜单修改请求的数据类型可以是菜单数组,菜单数组中的对象可以是菜单项,且每个菜单项中的参数可以是用于表征该菜单信息的菜单数据,并且,菜单数组中可以包括一个或多个菜单项对应的菜单数据,用于使实现本方法的后端服务器,能够通过菜单数组,对前端用户对个性化菜单集合(当菜单项包括多个时)进行编辑后的结果进行保存。可选的,菜单数据中的参数类型可以包括但不限于:菜单ID、名称、标识、路径、是否可点击、父节点ID等。
步骤S2,确定菜单数组中各菜单项的排序号码,并得到与菜单数组对应的菜单集合。
具体的,菜单集合,可以是与菜单数组中的每个对象(即:菜单项)对应的,集合类型的数据。
在得到每个菜单项对应的菜单集合之后,可以便于后期对每个菜单集合分别进行处理,进而可以同步对各个菜单进行排序号码的确定以及快速得到每个菜单项的排序号码。
当前端的菜单信息被编辑之后,在生成菜单数组时,一般是按照某一固定的顺序根据各个菜单项得到菜单数组的,也就是说,菜单数组中的各个对象的排序号码是由菜单数组的生成方式决定的,因此,排序号码可以体现出前端各菜单项的排列关系。
在一些可选的实现方式中,在接收得到菜单数组之后,可以对其中的菜单项进行属性增加,并且该属性的类型为排序参数(用于写入排序号码),并基于属性增加后的菜单数据得到菜单集合。并且可以通过预设的进行排序的策略,逐个读取得到菜单数组中的菜单项,然后可以按照读取的顺序,给每个菜单项增加一个用于排序的排序号码,并且可以对该预排序号码做json格式化处理后,返回至前端。
举例的,排序策略可以是:先对第一个一级菜单的菜单项进行排序,记为菜单项1;然后,确定该菜单项1是否包括子菜单项,若包括,则将该子菜单项记为菜单项2;若菜单项2仍包括子菜单,则将该子菜单项记为菜单项3;若菜单项3还包括子菜单项,则按上述步骤继续进行排序,若不包含,则判断菜单项2是否包括其它子菜单项,若包括则在菜单项3的基础上继续进行排序,若不包括,则判断菜单项1是否包括其它子菜单项,若包括则在菜单项3的基础上继续进行排序;若不包括,则对其他一级菜单的菜单项及其子菜单项按照上述方式继续进行排序。
步骤S3,根据菜单数组中各菜单项的排序号码及父节点ID,确定各菜单项对应的多级排列信息。
具体的,父节点ID,可以是每个菜单项都包含的信息,用于表征该菜单项关联至父节点ID对应的父节点(菜单项),且一般的,每个当某一菜单项存在父节点时,该菜单项的父节点ID唯一指向该父节点。因此,父节点ID可以用于表征菜单信息中各个菜单项之间父子节点关系。举例的:当某一菜单信息中只包括一层时,则各个菜单项中的父节点ID可以都为0,进而每个菜单项都不存在父节点;当某一菜单信息中包括至少两层时,则至少存在一个菜单项的父节点ID指向的父节点,举例的:菜单信息中至少包括菜单项A和菜单项B,且菜单项B的父节点ID指向菜单项A,因此基于父节点ID可以得到不同菜单项之间的层级上的关系。
由于排序号码的生成方式是已知的,并且能够表征各个菜单项之间的顺序,在进一步确定了父节点ID之后,即可基于顺序以及层级上的关系,确定各菜单项对应的多级排列信息,可以使前端根据该多级排列信息进行菜单渲染时,还原得到当前用户编辑得到的菜单集合。
步骤S4,根据多级排列信息对菜单集合中的菜单项进行排序,得到更新菜单集合。
具体的,其中一种可选的实现方式中,前述实施例步骤中,在后端确定用于对该排序参数进行赋值的多级排列信息之后,即可通过多级排列信息对该菜单集合中的菜单项进行重新排序,用以体现出各个菜单项之间的顺序以及层级关系,即可得到更新菜单集合。
步骤S5,将更新菜单集合转换为更新菜单数组,并发送到菜单修改请求对应的客户端,使得客户端根据更新菜单数组进行菜单展示。
也就是说,在得到更新菜单数据之后,实时对发送该菜单修改请求的客户端进行更新,以使后端与前端的数据能够实时同步。
并且,进一步的,可以在前端每发生一次菜单修改之后,都生成更新菜单数组,并同步至前端。
其中一种集合转为数组的方式,可以采用如下方法实现:
Character[]characters=list.toArray(new Character[list.size()]);
通过本实施例中的方法,可以实时获取前端对菜单的修改结果,并且基于前端发送的菜单修改请求,可以生成对应的更新菜单集合,以便于后期客户端再次对该菜单集合进行读取时,可以基于更新菜单集合,使客户端展示最新修改后的菜单。
如图2所示,在一些实施例中,如前述的方法,所述步骤S2确定菜单数组中各菜单项的排序号码,并得到与菜单数组对应的菜单集合,包括如下所述步骤S21至S22:
步骤S21,当每个菜单数据都包括预设字段信息时,按照菜单数组中各个菜单项的排列顺序以及预设的第一编码策略,依次确定各个菜单项的排序号码,并建立排序号码与菜单项之间的第一对应关系。
具体的,预设字段信息,为每个菜单数据必须包括的信息,举例的,信息的类型可以包括但不限于:菜单名、菜单路径、菜单类型、菜单归属业务系统等等;并且,判断的方式可以包括但不限于:信息是否为空等等。
第一编码策略,可以是按照排列顺序,依次对各个菜单项进行排序,并生成排序号码的策略。
可以通过排序号码对各个菜单项的排序参数进行赋值的方式达到建立第一对应关系的目的。
其中一种可选的实现方式中,具体可以采用stream流式处理方法,以按序对各菜单项的排序参数进行赋值,并得到各个菜单项对应的排序号码。
步骤S22,将各个菜单项以及排序号码按照第一对应关系,依次加入预设集合中,得到一维的菜单集合。
具体的,当每个菜单数据都包括预设字段信息时,表征该菜单数据可以用于后端进行存储,并且能够还原得到用于前端展示的菜单。
预设集合,可以是用于存储各个菜单项的集合,也可以是由各个菜单项构成的集合。其中一种可选的实现方式中,可以采用List<T>[]的一维数组。
与步骤S21相似的,可以采用stream流式处理方法,在完成对各菜单项的排序参数进行赋值之后,即将菜单项加入至预设集合之后,即可得到菜单集合。
进而,通过本实施例中的方法,可以对前端的菜单数据进行保存,并且将其转换为一维的菜单集合,可以便于后续对菜单集合中的菜单项的有序读取,并能提高处理效率。
在一些实施例中,如前述的方法,所述步骤S3根据菜单数组中各菜单项的排序号码及父节点ID,确定各菜单项对应的多级排列信息,包括如下所述步骤S31和S32:
步骤S31,根据所述父节点ID确定各菜单项之间的层级关系。
具体的,其中一种可选的实现方式中,所述步骤31根据父节点ID确定各菜单项之间的层级关系,包括如下所述步骤S311和S312:
步骤S311,确定各个菜单项的菜单ID以及父节点ID。
具体的,每个菜单项都对应有一个菜单ID,作为该菜单项的唯一标识。
父节点ID,可以是菜单项的父节点对应的ID。
一般的,每个菜单项中,都可以存在一个父节点ID。
并且,当一个菜单项的菜单数据中存在父节点ID时,该父节点ID即为该菜单项的父节点所对应的菜单项的菜单ID。
步骤S312,根据父节点ID以及菜单ID,确定各个菜单项之间的层级关系。
具体的,在确定各个菜单项的父节点ID以及菜单ID之后,可以通过查询得到与各菜单项的父节点ID一致的菜单ID;得到各个菜单项之间的父子节点关系,即可得到不同菜单之间的层级关系。
层级关系,可以包括但不限于,各个菜单项的层级,以及各个菜单项的父节点和/或子节点。
步骤S32,根据排序号码及层级关系,依次确定各菜单项对应的多级排列信息。
具体的,在得到排序号码以及层级关系之后,可以根据预设的排序策略,给每个菜单项进行赋值,得到多级排列信息。其中,排序策略可以根据实际解析或者菜单生成的策略进行选择,只要能够根据多级排列信息还原得到最后保存的菜单即可。
通过本实施例的方法,可以避免对不符合合法性的菜单数组后续进行无效的处理以及存储等操作,并且根据排序号码以及层级关系,生成的多级排列信息,可以准确分析得到各个菜单项之间的排序以及父子节点关系,使得根据该多级排列信息还原得到的菜单可以准确表征出各个菜单项之间的排列关系。
在一些实施例中,如前述的方法,还包括如下所述步骤A1和A2:
步骤A1.获取来自于前端的最新的目标菜单的目标菜单数据。
具体的,目标菜单,可以是前端用户通过配置之后新生成的菜单。
目标菜单数据,可以是最新获取的目标菜单对应的菜单数据。
可选的,可以是前端用户最新通过前端请求,发送至后端的菜单数组中得到。
步骤A2.根据目标菜单数据,确定目标菜单的目标多级排列信息。
也就是说,需要获取目标菜单数据,并基于该目标菜单数据确定最新菜单项的目标多级排列信息。
在一些实施例中,如前述的方法,步骤S32根据排序号码及层级关系,确定各菜单项对应的多级排列信息,包括所述步骤S321至S323:
步骤S321,根据层级关系,确定各层级中的菜单项。
具体的,层级,可以是用于表征由菜单项组成的树状图中,各菜单项的父节点的个数;举例的:当第一层级的菜单项为A1,且A1的子菜单项包括A11和A12时,A11和A12所处的层级则为第二层级。
并且,在得到层级关系之后,即可确定每个层级对应的菜单项。
步骤S322,根据各层级中的菜单项以及排序号码,依次确定每个层级中各菜单项的单个层级排列顺序。
具体的,单个层级排列顺序,可以是用于表征某一菜单项,在其所处的层级中的顺序。
确定每个层级中包括的菜单项,由于排序号码是根据对菜单数组中的菜单项依次读取得到,且菜单数组中的菜单项的顺序与前端各菜单项之间的排序相关,因此,在确定每个层级中的菜单项之后,即可基于各个菜单项的排序号码,确定每个层级中,各菜单项的单个层级排列顺序。
步骤S323,根据单个层级排列顺序及层级关系,确定各菜单项对应的多级排列信息。
具体的,在得到单个层级排列顺序及层级关系之后,可以确定各个层级中的菜单项,以及菜单项在各个层级中的排序号码,因而可以基于此得到各菜单项的多级排列信息。
通过本实施例中的方法,可以基于层级关系以及排序号码,快速确定各个菜单项的多级排列信息。
在一些实施例中,如前述的方法,所述步骤S323根据单个层级排列顺序及层级关系,确定各所述菜单项对应的多级排列信息,包括:
采用预设的第二编码策略,根据单个层级排列顺序及层级关系,逐个层级对菜单项进行编码,得到菜单项对应的多级排列信息。
具体的,第二编码策略,可以是用于将层级关系以及单个层级排列顺序通过多级排列信息进行表征,以通过多级排列信息以及第二编码策略,可以还原得到不同的菜单项之间排列顺序以及层级关系。
通过本实施例中的方法,可以快速基于父节点ID以及菜单ID,确定各个菜单项之间的层级关系,并且,基于编码策略以及层级关系获取的各菜单项的多级排列信息,可以便于之后根据多级排列信息还原得到不同菜单项之间的层级关系,并得到用于前端展示的菜单信息。
在一些实施例中,如前述的方法,所述步骤S322根据各层级中的菜单项以及排序号码,依次确定每个层级中各菜单项的单个层级排列顺序,包括如下所述步骤S3221至S3224:
步骤S3221,在所有菜单项中确定不存在父节点ID的一级菜单项,确定一级菜单项的菜单ID,一级菜单项位于第一层级中。
具体的,当某一菜单项不存在父节点ID时,一般表征其为位于第一层级的菜单项,即为一级菜单项,即:该菜单项只存在对应的子节点,而不存在父节点。
步骤S3222,将一级菜单项添加至预设的菜单集合中,并根据排序号码,确定各个一级菜单项在第一层级中的单个层级排序号码;
具体的,当从所有菜单项中查询得到一级菜单项之后,由于每个一级菜单项本身对应有排序号码,因此,可以基于排序号码确定一级菜单项在第一层级中的单个层级排序号码。
举例的,当一级菜单项包括A1、B1和C1时;且三者的排序号码分别为1、5和11时,说明A1、B1和C1的顺序关系依次为A1、B1和C1;且由于只包括该三个一级菜单项,因此可以确定A1、B1和C1的单个层级排序号码为1、2和3。
步骤S3223,按照层级关系,将二级菜单项作为一级菜单项的子菜单,添加至预设菜单集合中,并根据排序号码,确定各个二级菜单项在第二层级中的单个层级排序号码,二级菜单项位于第二层级中。
具体的,在获取根据菜单ID之后,可以通过该菜单ID在各个菜单项中进行查询,以查询得到父节点ID与菜单ID一致的二级菜单项。
并且,可以按照上述步骤S342中的方法,得到二级菜单项在第二层级中的单个层级排序号码。
步骤S3224,按此循环,直至将所有菜单项添加至菜单集合,并确定每个层级中各菜单项的单个层级排序号码。
具体的,可以预先进行分组Map(一种Key-value数据结构)的方式,将菜单ID以及与该菜单ID对应的父节点ID进行关联。并且添加至菜单集合中的菜单数据即存储在Map中。进一步的,每当一个菜单项加入至菜单集合之后,即可在Map中,对该菜单项进行删除,以免重复进行计算。
可选的,可以将一级菜单项作为键名,然后将作为该一级菜单的子节点的菜单项作为键值,进而达到将父子节点之间进行关联存储的目的。
通过本实施例中的方法,可以按照层级关系,依次按照各个层级得到各个菜单项的单个层级排序号码。
在一些实施例中,如前述的方法,所述步骤S4根据多级排列信息对菜单集合中的菜单项进行排序,得到更新菜单集合,包括如下所述步骤S41和S42:
步骤S41,按照多级排列信息建立菜单集合中的菜单项之间的关联关系;
步骤S42,按照关联关系将菜单项写入目标菜单集合中,得到更新菜单集合。
目标菜单集合,可以是用于存储通过关联关系相互关联之后的各个菜单项的集合,例如菜单集合Arrays(Arrays是JDK提供的操作数组的工具类,包含用于操作数组的各种方法(例如排序和搜索)。此类还包含静态工厂允许将数组视为列表)。
更新菜单集合,可以是存储有菜单项之后的目标菜单集合。
举例的,当菜单信息中包括三级菜单时,可以按照一级菜单,对所有菜单项进行分组Map,即:每个一级菜单项对应有一个Map集合。
先将各个一级菜单项加入到菜单集合Arrays中,并对一级菜单项进行排序,得到各个一级菜单项的排序号码;
在完成一级菜单项的排序之后,可以从分组Map中确定未进行排序二级菜单项,并确定各个二级菜单项对应的一级菜单项,将二级菜单项加入到菜单集合Arrays;最后再对Map和Arrays进行遍历,进行父节点ID以及菜单ID的匹配,补充各个二级菜单项的三级菜单,进而将将入有三级菜单的菜单集合Arrays作为更新菜单集合。
根据多级排列信息对菜单集合中的菜单项重新进行排序后,可以得到各个菜单项之间的层级关系以及排列顺序,进而可以根据更新菜单集合还原得到对应的菜单信息,以在前端下一次对该菜单信息进行访问时,可以在前端生成对应的菜单信息。
在一些实施例中,如前述的方法,所述步骤S4根据多级排列信息对菜单集合中的菜单项进行排序,得到更新菜单集合之后,还包括如下所述步骤S6和S7:
步骤S6,在菜单项存储集合中确定已排序菜单项,菜单项存储集合预先存储有所有菜单项。
具体的,菜单项存储集合,可以是前述实施例中用于存储父子节点的Map集合;可以按照一级菜单,对所有菜单项进行分组Map,即:每个一级菜单项对应有一个Map集合。
步骤S7,在所述菜单项存储集合剔除所述已排序菜单项。
具体的,即在Map集合中,每当有一个菜单项加入菜单集合之后,即可将该Map集合中对应的菜单项进行删除,以免存在重排序的情况。
在一些实施例中,如前述的方法,方法还包括如下所述步骤P1:
步骤P1,对更新菜单集合进行存储。
具体的,由于在一般情况下,服务端系统用于进行菜单存储的格式需要为集合,因此,在得到更新菜单集合之后,对该更新菜单集合进行存储,以便于之后用户端再次访问该菜单集合时,能够根据更新菜单集合相关数据在用户端还原得到该菜单集合。
如图3所示,根据本申请另一方面的一个实施例,还提供了一种菜单数据处理装置,包括:
获取模块1,用于获取作为菜单修改请求的菜单数组,菜单数组包括菜单项对应的菜单数据;
转换模块2,用于确定菜单数组中各菜单项的排序号码,并得到与菜单数组对应的菜单集合;
多级排列信息确定模块3,用于根据菜单数组中各菜单项的排序号码及父节点ID,确定各菜单项对应的多级排列信息;
更新模块4,用于根据多级排列信息对菜单集合中的菜单项进行排序,得到更新菜单集合;
发送模块5,用于将更新菜单集合转换为更新菜单数组,并发送到菜单修改请求对应的客户端,由客户端根据更新菜单数组进行菜单展示。
具体的,本发明实施例的装置中各模块实现其功能的具体过程可参见方法实施例中的相关描述,此处不再赘述。
在一些实施例中,如前述的装置,转换模块2包括:
排序号码子模块,用于当每个菜单数据都包括预设字段信息时,按照菜单数组中各个菜单项的排列顺序以及预设的第一编码策略,依次确定各个菜单项的排序号码,并建立排序号码与菜单项之间的第一对应关系;
菜单集合子模块,用于将各个菜单项以及排序号码按照第一对应关系,依次加入预设集合中,得到一维的菜单集合。
具体的,本发明实施例的装置中各模块实现其功能的具体过程可参见方法实施例中的相关描述,此处不再赘述。
在一些实施例中,如前述的装置,多级排列信息确定模块3包括:
层级关系确定子模块,用于根据父节点ID确定各菜单项之间的层级关系;
多级排列信息子模块,用于根据排序号码及层级关系,依次确定各菜单项对应的多级排列信息。
具体的,本发明实施例的装置中各模块实现其功能的具体过程可参见方法实施例中的相关描述,此处不再赘述。
在一些实施例中,如前述的装置,层级关系确定子模块,包括:
第一确定单元,用于确定各个菜单项的菜单ID以及父节点ID;
层级关系单元,用于根据父节点ID以及菜单ID,确定各个菜单项之间的层级关系;
多级排列信息子模块,包括:
第二确定单元,用于根据层级关系,确定各层级中的菜单项;
第三确定单元,用于根据各层级中的菜单项以及排列顺序,依次确定每个层级中各菜单项的单个层级排列顺序;
第四确定单元,用于根据单个层级排列顺序及层级关系,确定各菜单项对应的多级排列信息。
具体的,本发明实施例的装置中各模块实现其功能的具体过程可参见方法实施例中的相关描述,此处不再赘述。
在一些实施例中,如前述的装置,第四确定单元用于:
采用预设的第二编码策略,根据单个层级排列顺序及层级关系,逐个层级对菜单项进行编码,得到菜单项对应的多级排列信息。
具体的,本发明实施例的装置中各模块实现其功能的具体过程可参见方法实施例中的相关描述,此处不再赘述。
在一些实施例中,如前述的装置,第三确定单元,用于:
在所有菜单项中确定不存在父节点ID的一级菜单项,并确定一级菜单项的菜单ID;一级菜单项位于第一层级中;
将一级菜单项添加至预设的菜单集合中,并根据排列顺序,确定各个一级菜单项在第一层级中的单个层级排列顺序;
按照层级关系,将二级菜单项作为一级菜单项的子菜单,添加至预设菜单集合中,并根据排序号码,确定各个二级菜单项在第二层级中的单个层级排列顺序;二级菜单项位于第二层级中;
按此循环,直至将所有菜单项添加至预设菜单集合,并确定每个层级中各菜单项的单个层级排列顺序。
具体的,本发明实施例的装置中各模块实现其功能的具体过程可参见方法实施例中的相关描述,此处不再赘述。
在一些实施例中,如前述的装置,更新模块,用于:
按照所述多级排列信息建立所述菜单集合中的菜单项之间的关联关系;
按照所述关联关系将所述菜单项写入目标菜单集合中,得到所述更新菜单集合。
具体的,本发明实施例的装置中各模块实现其功能的具体过程可参见方法实施例中的相关描述,此处不再赘述。
根据本申请的另一个实施例,还提供一种电子设备,包括:如图4所示,电子设备可以包括:处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信。
存储器1503,用于存放计算机程序;
处理器1501,用于执行存储器1503上所存放的程序时,实现上述方法实施例的步骤。
上述电子设备提到的总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DigitalSignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本申请实施例还提供一种存储介质,存储介质包括存储的程序,其中,程序运行时执行上述方法实施例的方法步骤。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种菜单数据处理方法,其特征在于,包括:
获取作为菜单修改请求的菜单数组,所述菜单数组包括菜单项对应的菜单数据;
确定所述菜单数组中各所述菜单项的排序号码,并得到与所述菜单数组对应的菜单集合;
根据所述菜单数组中各所述菜单项的排序号码及父节点ID,确定各所述菜单项对应的多级排列信息;
根据所述多级排列信息对所述菜单集合中的菜单项进行排序,得到更新菜单集合;
将所述更新菜单集合转换为更新菜单数组,并发送到菜单修改请求对应的客户端,使得所述客户端根据所述更新菜单数组进行菜单展示。
2.根据权利要求1所述的方法,其特征在于,所述确定所述菜单数组中各所述菜单项的排序号码,并得到与所述菜单数组对应的菜单集合,包括:
当每个所述菜单数据都包括预设字段信息时,按照所述菜单数组中各个所述菜单项的排列顺序以及预设的第一编码策略,依次确定各个所述菜单项的所述排序号码,并建立所述排序号码与所述菜单项之间的第一对应关系;
将各个所述菜单项以及所述排序号码按照所述第一对应关系,依次加入预设集合中,得到一维的所述菜单集合。
3.根据权利要求1所述的方法,其特征在于,所述根据所述菜单数组中各所述菜单项的排序号码及父节点ID,确定各所述菜单项对应的多级排列信息,包括:
根据所述父节点ID确定各所述菜单项之间的层级关系;
根据所述排序号码及层级关系,依次确定各所述菜单项对应的多级排列信息。
4.根据权利要求3所述的方法,其特征在于,所述根据所述父节点ID确定各所述菜单项之间的层级关系,包括:
确定各个所述菜单项的菜单ID以及父节点ID;
根据所述父节点ID以及菜单ID,确定各个所述菜单项之间的层级关系;
所述根据所述排序号码及层级关系,依次确定各所述菜单项对应的多级排列信息,包括:
根据所述层级关系,确定各层级中的菜单项;
根据所述各层级中的菜单项以及所述排序号码,依次确定每个层级中各所述菜单项的单个层级排列顺序;
根据所述单个层级排列顺序及层级关系,确定各所述菜单项对应的多级排列信息。
5.根据权利要求4所述的方法,其特征在于,所述根据所述单个层级排列顺序及层级关系,确定各所述菜单项对应的多级排列信息,包括:
采用预设的第二编码策略,根据所述单个层级排列顺序及层级关系,逐个层级对所述菜单项进行编码,得到所述菜单项对应的多级排列信息。
6.根据权利要求4所述的方法,其特征在于,所述根据所述各层级中的菜单项以及所述排序号码,依次确定每个层级中各所述菜单项的单个层级排列顺序,包括:
在所有所述菜单项中确定不存在父节点的一级菜单项,并确定一级菜单项的菜单ID,所述一级菜单项位于第一层级中;
将所述一级菜单项添加至预设的菜单集合中,并根据所述排序号码,确定各个所述一级菜单项在所述第一层级中的单个层级排列顺序;
按照所述层级关系,将二级菜单项作为所述一级菜单项的子菜单,添加至预设菜单集合中,并根据所述排序号码,确定各个所述二级菜单项在第二层级中的单个层级排列顺序,所述二级菜单项位于第二层级中;
按此循环,直至将所有所述菜单项添加至所述预设菜单集合,并确定每个层级中各所述菜单项的单个层级排列顺序。
7.根据权利要求1所述的方法,其特征在于,所述根据所述多级排列信息对所述菜单集合中的菜单项进行排序,得到更新菜单集合,包括:
按照所述多级排列信息建立所述菜单集合中的菜单项之间的关联关系;
按照所述关联关系将所述菜单项写入目标菜单集合中,得到所述更新菜单集合。
8.一种菜单数据处理装置,其特征在于,包括:
获取模块,用于获取作为菜单修改请求的菜单数组,所述菜单数组包括菜单项对应的菜单数据;
转换模块,用于确定所述菜单数组中各所述菜单项的排序号码,并得到与所述菜单数组对应的菜单集合;
多级排列信息确定模块,用于根据所述菜单数组中各所述菜单项的排序号码及父节点ID,确定各所述菜单项对应的多级排列信息;
更新模块,用于根据所述多级排列信息对所述菜单集合中的菜单项进行排序,得到更新菜单集合;
发送模块,用于将所述更新菜单集合转换为更新菜单数组,并发送到菜单修改请求对应的客户端,使得所述客户端根据所述更新菜单数组进行菜单展示。
9.一种电子设备,其特征在于,包括:处理器、通信接口、存储器和通信总线,其中,所述处理器、通信接口和存储器通过通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述计算机程序时,实现权利要求1至7任一项所述的方法。
10.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110308076.0A CN113031835A (zh) | 2021-03-23 | 2021-03-23 | 一种菜单数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110308076.0A CN113031835A (zh) | 2021-03-23 | 2021-03-23 | 一种菜单数据处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113031835A true CN113031835A (zh) | 2021-06-25 |
Family
ID=76472812
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110308076.0A Pending CN113031835A (zh) | 2021-03-23 | 2021-03-23 | 一种菜单数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113031835A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114968024A (zh) * | 2022-05-16 | 2022-08-30 | 杭州数梦工场科技有限公司 | 微服务菜单管理方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140095999A1 (en) * | 2012-09-28 | 2014-04-03 | Target Brands, Inc. | Search and parental control features for digital entertainment services |
CN105378788A (zh) * | 2013-05-28 | 2016-03-02 | 李万峰 | 利用网页编辑器的电子菜单服务方法及其系统 |
CN105589709A (zh) * | 2014-12-24 | 2016-05-18 | 中国银联股份有限公司 | 一种修改pos终端菜单的装置和方法 |
CN106406844A (zh) * | 2015-08-03 | 2017-02-15 | 腾讯科技(深圳)有限公司 | 实现通讯交互平台公众号菜单的方法和装置 |
CN111611036A (zh) * | 2020-05-06 | 2020-09-01 | 香港乐蜜有限公司 | 应用菜单配置方法、装置、电子设备和存储介质 |
-
2021
- 2021-03-23 CN CN202110308076.0A patent/CN113031835A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140095999A1 (en) * | 2012-09-28 | 2014-04-03 | Target Brands, Inc. | Search and parental control features for digital entertainment services |
CN105378788A (zh) * | 2013-05-28 | 2016-03-02 | 李万峰 | 利用网页编辑器的电子菜单服务方法及其系统 |
CN105589709A (zh) * | 2014-12-24 | 2016-05-18 | 中国银联股份有限公司 | 一种修改pos终端菜单的装置和方法 |
CN106406844A (zh) * | 2015-08-03 | 2017-02-15 | 腾讯科技(深圳)有限公司 | 实现通讯交互平台公众号菜单的方法和装置 |
CN111611036A (zh) * | 2020-05-06 | 2020-09-01 | 香港乐蜜有限公司 | 应用菜单配置方法、装置、电子设备和存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114968024A (zh) * | 2022-05-16 | 2022-08-30 | 杭州数梦工场科技有限公司 | 微服务菜单管理方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10042911B2 (en) | Discovery of related entities in a master data management system | |
CN109508420B (zh) | 一种知识图谱属性的清洗方法及装置 | |
CN111414166B (zh) | 代码的生成方法、装置、设备及存储介质 | |
CN110515896B (zh) | 模型资源管理方法、模型文件制作方法、装置和系统 | |
US7672958B2 (en) | Method and system to identify records that relate to a pre-defined context in a data set | |
CN105138312A (zh) | 一种表格生成方法及装置 | |
CN110990403A (zh) | 业务数据的存储方法、系统、计算机设备及存储介质 | |
CN112667860A (zh) | 一种子图匹配方法、装置、设备及存储介质 | |
CN114594927A (zh) | 低代码开发方法、装置、系统、服务器及存储介质 | |
CN116302064A (zh) | 一种集成代码分析方法、装置、电子设备及存储介质 | |
CN109636303B (zh) | 一种半自动提取和结构化文档信息的存储方法及系统 | |
CN113031835A (zh) | 一种菜单数据处理方法及装置 | |
CN106708875B (zh) | 一种特征筛选方法及系统 | |
CN107368500A (zh) | 数据抽取方法及系统 | |
CN112115125B (zh) | 数据库访问对象名称解析方法、装置及电子设备 | |
CN114595262A (zh) | 一种市政道路epc项目招标清单的快速生成方法及系统 | |
US11074401B2 (en) | Merging delta object notation documents | |
KR101447526B1 (ko) | 개인정보 데이터베이스의 주소에 기반한 정렬과 그 정렬된 데이터베이스를 이용한 정보 그룹핑 방법 및 장치 | |
CN117891811B (zh) | 一种客户数据采集分析方法、装置及云服务器 | |
CN116541382B (zh) | 基于数据安全识别级别的数据治理方法及系统 | |
CN113435731B (zh) | 一种住房保障动态监管系统 | |
CN112286874B (zh) | 一种基于时间的文件管理方法 | |
CN112506944B (zh) | 业务系统间的数据标准转换取数方法、装置、设备和介质 | |
CN112000709B (zh) | 一种社交媒体信息的总曝光量批量挖掘方法及装置 | |
CN110569362B (zh) | 本体实例化方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Daxing District, Beijing, 100176 Applicant after: Jingdong Technology Holding Co.,Ltd. Address before: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Daxing District, Beijing, 100176 Applicant before: Jingdong Digital Technology Holding Co.,Ltd. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210625 |