基于数据传输对象的产品模块展示方法、装置及存储介质与流程

文档序号:21100187发布日期:2020-06-16 20:43阅读:129来源:国知局
基于数据传输对象的产品模块展示方法、装置及存储介质与流程

本发明涉及基架运维领域,具体地说,涉及基于数据传输对象的产品模块展示方法、装置及存储介质。



背景技术:

对于页面展示来说,不同的业务有不同的展示,例如保险平台中,险种至少包括车险、财产险险种、意健险险种、小微险种等业务。保险平台中的针对各业务涉及的内容与功能点比较多,针对商家和个人用户也都具有不同的页面展示要求,目前常遇到如下几个问题:

1)页面的产品大类下还有产品小类,如图1所示,租赁、随车物品、银行卡盗刷、家庭财产、个人物品属于产品大类,其中,每个大类下又都有产品小类,例如,租赁大类下有机动车综合计划一,和自行车骑行意外险两个小类。所有这些大类、小类都需要构建不同的数组。不同的数组之间的低耦合性使操作不同数组比较繁琐,代码冗余,也大大降低了代码的可读性,并且导致开发效率低。

2)根据多种情况得到推荐产品或者带出产品(是指对于某一产品的操作过程中顺带弹出的其他产品)都要与对应的产品进行匹配勾选,例如,根据客户的消费习惯、居住地、身体状况等特征(即多种情况)进行产品推荐,在确定推荐的产品小类后,例如自行车骑行意外险,目前的做法都是要采用遍历的方式查找该产品小类并进行勾选,假如要匹配最后一个大类下最后一个小类。则要遍历第一个大类下多个小类发现没有又去遍历第二个大类下的所有小类一直到最后一个大类的最后一个小类才能匹配勾选,这涉及多层数组循环匹配,代码冗余可读性差。

或者,续保带出的另一保险的推荐弹框,当用户点击弹框操作时(例如确认),则应该是将该推荐弹框的保险进行相应的操作,这又是需要循环数组查找到该保险,并将该保险赋予与弹框操作相同的操作。

3)对于页面的单选框,如要获取被勾选的单选框,现有技术中,通常是循环数组查找每一个大类下的每个小类,再去查看各小类的checked属性是否为选中,然后再把选中的单选框进行后续操作,例如发送给报价模块进行报价。然而这样处理对于具有大量数组(例如成百上千个数组)的情况下,则需要遍历整个数组来比较,造成用户的体验不好。



技术实现要素:

为解决以上技术问题,本发明提供一种基于数据传输对象的产品模块展示方法,应用于电子装置,产品模块至少包括应用层和表现层,方法包括以下步骤:

在应用层设置产品模块的数据传输对象和初始化设值函数,所述数据传输对象中封装有各产品相同的共有属性;

将区别于数据传输对象所包含的共有属性的各个产品属性对应的数组合并为一个公共数组;

对于任一产品,在表现层遍历所述公共数组并执行初始化设值函数,所述初始化设值函数包含了所有产品共通具备的页面及交互的方法,通过初始化设值函数继承数据传输对象所封装的共有属性并分别赋予默认值,并结合所述任一产品与公共数组中的属性相同的属性集合作为该产品模块的展示。

本发明还提供一种基于数据传输对象的产品模块展示装置,产品模块至少包括应用层和表现层,装置包括:

数据传输对象设置模块,用于在应用层设置产品模块的数据传输对象和初始化设值函数,所述数据传输对象中封装有各产品相同的共有属性;

数组合并模块,用于将区别于数据传输对象所包含的共有属性的各个产品属性对应的数组合并为一个公共数组;

遍历展示模块,用于对于任一产品,在表现层遍历所述公共数组并执行初始化设值函数,通过初始化设值函数继承数据传输对象所封装的共有属性并分别赋予默认值,并结合所述任一产品与公共数组中的属性相同的属性集合作为该产品模块的展示。

本发明还提供一种电子装置,该电子装置包括:存储器和处理器,所述存储器中存储有基于数据传输对象的产品模块展示程序,所述基于数据传输对象的产品模块展示程序被所述处理器执行时实现如上所述的基于数据传输对象的产品模块展示方法。

本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,实现如上所述的基于数据传输对象的产品模块展示方法。

本发明采用dto的方式设定属性,各不同产品继承dto属性,并根据不同产品的差异化属性结合继承的dto属性展示不同的页面,结合dto方式,采用属性记录当前所选单选框的id,而不需要采用以往的循环查看才能确定被选单选框。

附图说明

通过结合下面附图对其实施例进行描述,本发明的上述特征和技术优点将会变得更加清楚和容易理解。

图1是表示页面的产品大类、小类的示意图;

图2是表示本发明实施例的基于数据传输对象的产品模块展示方法的步骤示意图;

图3是表示本发明实施例的电子装置的硬件架构示意图;

图4是表示本发明实施例的基于数据传输对象的产品模块展示程序的流程示意图。

具体实施方式

下面将参考附图来描述本发明所述的基于数据传输对象的产品模块展示方法、装置及存储介质的实施例。本领域的普通技术人员可以认识到,在不偏离本发明的精神和范围的情况下,可以用各种不同的方式或其组合对所描述的实施例进行修正。因此,附图和描述在本质上是说明性的,而不是用于限制权利要求的保护范围。此外,在本说明书中,附图未按比例画出,并且相同的附图标记表示相同的部分。

图2为本发明实施例提供的基于数据传输对象的产品模块展示方法的流程示意图,应用于电子装置,包括以下步骤:

步骤s1,设置产品模块的dto(数据传输对象),产品模块至少包括应用层(后台)和表现层(前端),dto是一个java类,其封装了在应用层和表现层之间传送的批量的数据,从而保证表现层不会暴露应用层的业务逻辑。设置dto是指在应用层设置各业务逻辑或者是产品的共有属性,dto的每一个属性都一一对应各业务逻辑所需要的数据的名称,表现层与应用层之间通过数据传输对象进行交互,也就是前端从后台一次调用dto中所有设置的属性,可以减少根据业务需求频繁去后台调用数据。而在前端则可以仅设置各业务之间差别的属性。

以产品模块是保险模块为例,dto包括在后台设置一个初始化设值函数,还有保险险种中所有所需的属性统一管理,将dto作为单个参数,并将单个dto参数返回给客户端。在调用方应用程序收到dto并将其作为本地对象存储之后,应用程序可以在前端分别对dto发出一系列单独的过程调用,dto的属性由两部分组成,属性头和存储器,存储器包括get存储器和set存储器,在dto中设置的共有属性在前端都通过初始化设值函数采用统一的get(),set()方法来提取属性并赋值,而不会引发远程调用开销,这样在前端框架操作结构复杂的数据也能及时响应。

其中属性可以是例如险种编码、记录是否投保、险种保额、险种折扣、是否是爆款(销售量很高的商品)、险种类型、机构设置、ai智能推荐,并且还有文案属性,针对险种类型的值的不同展示不同的文案,还有选择份数属性、当前选中等等。

步骤s2,将区别于dto所包含的属性的各个不同产品对应的数组通过concat()合并为一个公共数组,例如,财产险产品、意健险产品、小微产品分别对应的区别于dto所包含的属性的不同数组通过concat()合并为一个公共数组。

步骤s3,对于某一个产品,在前端遍历该公共数组,遍历中执行初始化设值函数p(产品)=newunautopackage().setaccidentlist(p),所有数据属性不完整的财产险产品、意健险产品、小微产品、爆款推荐都可以通过初始化设值函数将dto的这些属性继承并赋予默认值,也就是从后台一次调用了业务的共有属性。其中,p为某一个产品,在遍历整个公共数组的同时与公共数组中的属性进行是否相同的判断,结合所有与公共数组中的属性相同的p产品的属性集合成为新的模块展示。

其中,unautopackage类是定义的一个完整的业务的类(dto),其中设定了setaccidentlist(p),setaccidentlist(p)为封装的初始化设值函数,包含了所有险种共通具备的页面及交互所必需的方法,使得在所有的任何页面都可以根据这个规范来执行。就是说每一个继承dto的险种都会继承这个初始化设值函数,根据这个函数设定初始值。再加上遍历公共数组得到的各个险种产品的区别于dto所包含的属性,即可实例化成一个具有清晰化的结构的数组,实现用户查看对应产品的展示。

dto的属性根据业务种类不同具有多个属性,例如爆款推荐属性hotproduct的值为true或false。例如说:如果一个险种不是爆款推荐的,则其继承dto的属性时,初始化设值函数就会根据传入的这个险种将他的爆款推荐属性hotproduct设为false,而如果该险种是爆款推荐的话,则这个初始化设值函数就会根据传入的这个险种将他的爆款推荐属性hotproduct设为true。

进一步地,在同一大类下多选单选小类的情况,多选是指某个产品大类下能选择几种产品小类,单选是指某个产品大类下仅能选择一种产品小类,可以根据需求切换。多选时,直接勾选添加即可,不需要记录当前勾选值,根据用户勾选按钮进行后续操作,例如将勾选的按钮发送给报价模块,进行报价。

对于单选的情况,如要获取被勾选的单选框,现有技术中,通常是循环数组查找每一个大类下的每个小类,再去查看各小类的checked属性是否为选中,checked属性是记录该单选框状态的属性,对应每个单选框都有一个checked属性。然后再把选中的单选框进行后续操作,例如发送给报价模块进行报价。然而这样处理对于具有大量数组(例如成百上千个数组)的情况下,则需要遍历整个数组来比较,造成用户的体验不好。

因此,本申请的方法是在前端,unautopackage类中添加一个记录当前勾选的单选框的selpk属性,勾选unautopackage类下的任一单选框,将被选的单选框的id(其中,对应每个单选框都设置有区分各单选框的id)赋予selpk这个属性记录下来,当下一次选择时,则将选择的单选框的id再次赋予selpk属性,并将selpk属性中的前次选择单选框进行覆盖,使得selpk属性始终展示最新选择的单选框的属性。这就使得在进行页面展示时始终展示这一属性最新数据,而不需要去在数组中循环查看checked属性来确定选定的单选框。

其逻辑判断如下:

其中,item为大类,pk是大类下的小类,例如对于车险来说,item为车险,pk为车险下的各种车险险种,如车损险、交强险、划痕险等,pk.issel表示选中单选框。

采用dto的形式,把后台返回的属性进行了初始化并保存在这个dto对象中。前端设置selpk属性记录当前选中,不再需要去后台返回的数组中循环查看单选框的属性,提高了响应速度。如果不通过dto对象管理,直接设置selpk属性来记录当前选中的单选框,因为单独的selpk属性没有被dto框架管理,其对应的更深层的数据还需要和后台进行交互调用,导致前端在有深层数据结构交互时并不能及时响应。

例如,不采用dto管理selpk属性:像selpk\showpkdetail这种深层数据结构,在selpk属性记录了当前选中后,showpkdetail属性对应的属性值(即选中险种对应的详细信息)在前端还是没有的,因为以往都是前端请求数据,才会与后台交互获取对应的数据。所以不采用dto管理,后台不会返回对应数据,当点击详情的时候才会与后台交互返回属性值,所以showpkdetail属性里的数组中的元素会存在响应时间长或响应不及时的问题。

采用dto管理selpk属性:showpkdetail属性的数组中的元素则在初始化设值函数阶段已经保存在这个dto对象中,不需要再向后台调用,可以及时响应。

在一个可选实施例中,dto在数据传输上虽然能够减少数据传输次数,但是,由于其是一次将dto类的所有属性都返回给表现层,而实际上,表现层可能并不需要所有属性。比如,一件产品可能有很多属性:名称、编码、型号、生产日期、生产厂家、批次等。而表现层可能只对其中一部分属性有要求。因此,本实施例的所述dto类是多个,即对应表现层设置有多个dto,将产品按照属性重合度分类,属性重合度是指属性相同的程度,例如,某一产品的属性包括名称、编码、型号、生产日期,另一产品的属性包括名称、编码、型号、生产厂家,其中名称、编码、型号都是相同的属性。则将这两个产品的共有属性设置一个dto类。将所有产品按照属性的重合度分类,重合度超过设定的重合度比例,则将这几个产品的共有属性设置一个dto。由此,产生几个dto,既避免了将所有产品的共有属性设置dto导致一次传输属性过多,且包含大量不是该产品所需的属性的问题,又避免了不设置dto,所有调用数据都要从后台往复调用,数据传输拥堵的问题。

在一个可选实施例中,将各产品的属性形成属性矩阵,采用k-modes聚类对各产品进行聚类,包括:

步骤一:选择一个点作为第一个聚类中心点,然后选择距离该点最远的点作为第二个聚类中心点,然后再选择距离第一个聚类中心点、第二个聚类中心点的最近距离中最大的点作为第三个聚类中心点,以此类推,都是选择距离之前选择的聚类中心点的最近距离中最大的作为下一个聚类中心点,直至选出k个聚类中心点;

步骤二:对于每个属性矩阵,分别比较其与k个中心之间的距离;

步骤三:将产品划分到距离最小的聚类中心,在全部的产品都被划分完毕之后,采用众数重新确定聚类中心;

步骤四:重复步骤二和三,直到总距离不再降低,获得最后的聚类结果。

对聚类结果中每个聚集类中的所有产品设置一个dto,从而形成多个dto。

本发明还提提供一种电子装置,参阅图3所示,是本发明电子装置的实施例的硬件架构示意图。本实施例中,所述电子装置2是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图3所示,所述电子装置2至少包括,但不限于,可通过系统总线相互通信连接的存储器21、处理器22。其中:所述存储器21至少包括一种类型的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器21可以是所述电子装置2的内部存储单元,例如该电子装置2的硬盘或内存。在另一些实施例中,所述存储器21也可以是所述电子装置2的外部存储设备,例如该电子装置2上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。当然,所述存储器21还可以既包括所述电子装置2的内部存储单元也包括其外部存储设备。本实施例中,所述存储器21通常用于存储安装于所述电子装置2的操作系统和各类应用软件,例如所述基于数据传输对象的产品模块展示程序代码等。此外,所述存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。

所述处理器22在一些实施例中可以是中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制所述电子装置2的总体操作,例如执行与所述电子装置2进行数据交互或者通信相关的控制和处理等。本实施例中,所述处理器22用于运行所述存储器21中存储的程序代码或者处理数据,例如运行所述的基于数据传输对象的产品模块展示程序等。

可选地,该电子装置2还可以包括显示器,显示器也可以称为显示屏或显示单元。在一些实施例中可以是led显示器、液晶显示器、触控式液晶显示器以及有机发光二极管(organiclight-emittingdiode,oled)显示器等。显示器用于显示在电子装置2中处理的信息以及用于显示可视化的用户界面。

需要指出的是,图3仅示出了具有组件21、22的电子装置2,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

包含可读存储介质的存储器21中可以包括操作系统、基于数据传输对象的产品模块展示程序20等。处理器22执行存储器21中基于数据传输对象的产品模块展示程序20时实现如上所述的s1至s4的步骤,在此不再赘述。在本实施例中,存储于存储器21中的所述基于数据传输对象的产品模块展示程序20可以被分割为一个或者多个程序模块,所述一个或者多个程序模块被存储于存储器21中,并可由一个或多个处理器(本实施例为处理器22)所执行,以完成本发明。例如,图4示出了所述基于数据传输对象的产品模块展示程序模块示意图,该实施例中,所述基于数据传输对象的产品模块展示程序20可以被分割为数据传输对象设置模块201、数组合并模块202、遍历展示模块203,本发明所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述所述基于数据传输对象的产品模块展示程序在所述电子装置2中的执行过程。以下描述将具体介绍所述程序模块的具体功能。

进一步地,还包括记录属性模块204,利用记录属性记录当前勾选的单选框的id,所述记录属性存储并更新当前选中单选框的id。

在一个可选实施例中,还包括属性重合度分类模块205,用于将所有产品按照属性的重合度分类,重合度超过设定的阈值重合度比例,则将这几个产品的共有属性设置一个dto。由此,产生几个dto,既避免了将所有产品的共有属性设置dto导致一次传输属性过多,且包含大量不是该产品所需的属性的问题,又避免了不设置dto,所有调用数据都要从后台往复调用,数据传输拥堵的问题。

在一个可选实施例中,还包括聚类模块206,用于将各产品的属性形成属性矩阵,采用k-modes聚类对各产品进行聚类,包括:

步骤一:选择一个点作为第一个聚类中心点,然后选择距离该点最远的点作为第二个聚类中心点,然后再选择距离第一个聚类中心点、第二个聚类中心点的最近距离中最大的点作为第三个聚类中心点,以此类推,都是选择距离之前选择的聚类中心点的最近距离中最大的作为下一个聚类中心点,直至选出k个聚类中心点;

步骤二:对于每个属性矩阵,分别比较其与k个中心之间的距离;

步骤三:将产品划分到距离最小的聚类中心,在全部的产品都被划分完毕之后,采用众数重新确定聚类中心;

步骤四:重复步骤二和三,直到总距离不再降低,获得最后的聚类结果。

对聚类结果中每个聚集类中的所有产品设置一个dto,从而形成多个dto。

此外,本发明还提供一种基于数据传输对象的产品模块展示装置,包括数据传输对象设置模块201、数组合并模块202、遍历展示模块203。

数据传输对象设置模块201,用于在应用层设置产品模块的数据传输对象,在所述数据传输对象中封装各产品相同的共有属性,在应用层设置初始化设值函数;

数组合并模块202,用于将区别于数据传输对象所包含的共有属性的各个产品属性对应的数组合并为一个公共数组;

遍历展示模块203,对于任一产品,在表现层遍历所述公共数组,遍历中执行初始化设值函数,通过初始化设值函数继承数据传输对象所封装的共有属性并分别赋予默认值,在遍历所述公共数组的同时将所述任一产品的属性与公共数组中的属性进行是否相同的判断,结合所有与公共数组中的属性相同的属性集合作为该产品模块的展示。

此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质可以是硬盘、多媒体卡、sd卡、闪存卡、smc、只读存储器(rom)、可擦除可编程只读存储器(eprom)、便携式紧致盘只读存储器(cd-rom)、usb存储器等等中的任意一种或者几种的任意组合。所述计算机可读存储介质中包括基于数据传输对象的产品模块展示程序等,所述基于数据传输对象的产品模块展示程序20被处理器22执行时实现如下操作:

在应用层设置产品模块的数据传输对象,在所述数据传输对象中封装各产品相同的共有属性,在应用层设置初始化设值函数;

将区别于数据传输对象所包含的共有属性的各个产品属性对应的数组合并为一个公共数组;

对于任一产品,在表现层遍历所述公共数组,遍历中执行初始化设值函数,通过初始化设值函数继承数据传输对象所封装的共有属性并分别赋予默认值,在遍历所述公共数组的同时将所述任一产品的属性与公共数组中的属性进行是否相同的判断,结合所有与公共数组中的属性相同的属性集合作为该产品模块的展示。

本发明之计算机可读存储介质的具体实施方式与上述基于数据传输对象的产品模块展示方法以及电子装置2的具体实施方式大致相同,在此不再赘述。

以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1