掌桥专利:专业的专利平台
掌桥专利
首页

理财产品属性校验方法及装置

文献发布时间:2023-06-19 10:54:12


理财产品属性校验方法及装置

技术领域

本发明涉及云计算技术领域,具体地,涉及一种理财产品属性校验方法及装置。

背景技术

随着互联网金融业务的快速发展,产品的创设及发行从线下逐步搬到了线上。理财产品门类众多,特色产品琳琅满目,传统的产品创设发行模型已经不能满足客户的需求。为了保持在与同业机构竞争时更有优势,特色产品发行要和时间赛跑。产品中心共享服务采用分布式服务模式,提供HTTP和RPC两种模式的服务供不同渠道接入调用。目前产品属性库按照使用目的不同归类为14个属性集,对应到14张产品信息数据表,每个属性对应表结构中的一个字段。

传统技术在代码中实现属性校验逻辑,无法满足产品的灵活化配置,业务人员遇到产品的某个校验需要紧急变更时,只能通过修改代码的方式调整,依赖项目周期,不支持特色产品的灵活定制和快速上线。

发明内容

本发明实施例的主要目的在于提供一种理财产品属性校验方法及装置,以满足产品的灵活化配置,进而支持产品的灵活定制和快速上线。

为了实现上述目的,本发明实施例提供一种理财产品属性校验方法,包括:

根据产品模板属性集标签从产品模板属性表中获取成员变量对象;

从产品模板属性表中获取成员变量对象中的子成员变量对象的数据类型对应的校验规则;

根据校验规则校验对应的子成员变量对象。

本发明实施例还提供一种理财产品属性校验装置,包括:

成员变量对象获取模块,用于根据产品模板属性集标签从产品模板属性表中获取成员变量对象;

校验规则模块,用于从产品模板属性表中获取成员变量对象中的子成员变量对象的数据类型对应的校验规则;

校验模块,用于根据校验规则校验对应的子成员变量对象。

本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并在处理器上运行的计算机程序,处理器执行计算机程序时实现所述的理财产品属性校验方法的步骤。

本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现所述的理财产品属性校验方法的步骤。

本发明实施例的理财产品属性校验方法及装置先根据产品模板属性集标签从产品模板属性表中获取成员变量对象,再从产品模板属性表中获取成员变量对象中的子成员变量对象的数据类型对应的校验规则以校验子成员变量对象,可以满足产品的灵活化配置,进而支持产品的灵活定制和快速上线。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例中理财产品属性校验方法的流程图;

图2是本发明另一实施例中理财产品属性校验方法的流程图;

图3是本发明实施例中S101的流程图;

图4是本发明实施例中S102的流程图;

图5是本发明实施例中理财产品属性校验装置的结构框图;

图6是本发明实施例中计算机设备的结构框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。

鉴于现有技术无法满足产品的灵活化配置,不支持产品的灵活定制和快速上线,本发明实施例提供一种理财产品属性校验方法,可以满足产品的灵活化配置,进而支持产品的灵活定制和快速上线。以下结合附图对本发明进行详细说明。

图1是本发明一实施例中理财产品属性校验方法的流程图。图2是本发明另一实施例中理财产品属性校验方法的流程图。如图1-图2所示,理财产品属性校验方法包括:

S101:根据产品模板属性集标签从产品模板属性表中获取成员变量对象。

在执行S101之前,还包括:

1、创设产品,后端根据产品模板属性集合的属性元数据信息、同级序号以及属性集层级关系生成属性集树形结构并返回给前端,同级序号和属性集层级关系通过配置表实现动态配置,灵活多变。

2、前端根据后端返回的属性集树形结构,利用vue动态渲染方式加载产品模板属性字段信息。

3、前端维护好产品之后,请求后端,后端执行S101-S103,根据产品模板代码获取产品模板属性表中对应属性的展示类型、属性名、最值、必输项以及所属属性集等元数据信息,根据展示类型、属性名、最值、必输项对维护的字段进行基本校验,校验通过,才可维护下一产品属性,并将校验通过的产品属性按同级序号SeqNo依次填充到对应属性集中。

图3是本发明实施例中S101的流程图。如图3所示,S101包括:

S201:根据产品模板属性集标签从产品模板属性表中获取成员变量数组。

具体实施时,可以根据前端传入的产品模板属性集标签,调用getDeclareFields方法从产品模板属性表中获取产品对象的成员变量数组(fields)。

S202:根据成员变量数组获取成员变量(属性集)。

其中,成员变量数组包括多个成员变量(field),例如:基本信息(baseInfo)、募集信息(issueInfo)和产品规则信息(ruleInfo)等。

S203:根据成员变量获取成员变量对象。

一实施例中,S203包括:

获取成员变量的成员变量名称;根据成员变量名称获取成员方法名称;根据成员方法名称创建方法对象以获取成员变量对象。

其中,根据成员变量名称获取成员方法名称还包括:根据成员变量名称从产品模板属性表中获取产品模板属性集合;当产品模板属性集合不为空时,根据成员变量名称获取成员方法名称。

具体实施时,S203包括:

1、调用field.getName()方法获取成员变量名称(fieldName)。

2、根据成员变量名称和对应的租户ID、模板ID和语言标识查询产品模板属性表,获取产品模板属性集合。

3、判断产品模板属性集合是否为空。

4、当产品模板属性集合为空时,表明该成员变量名称不是产品模板属性集标签,结束本次处理,处理下一个成员变量。

5、当产品模板属性集合不为空时,根据成员变量名称生成getDeclaredMethod方法。

6、调用getDeclaredMethod方法创建方法(method)对象,调用invoke方法,获取成员变量对象(fieldObject)。

S102:从产品模板属性表中获取成员变量对象中的子成员变量对象(属性)的数据类型对应的校验规则。

一实施例中,还包括:当成员变量对象为空列表且具有前端必填标识时,输出校验失败信息。

具体实施时,先判断成员变量对象是否为列表(List)。当成员变量对象为列表时,判断该成员变量对象是否为空列表。

当成员变量对象为空列表时,根据成员变量名称(fieldName)查询成员产品模板属性集合,在产品模板属性集合中查找前端属性标签为成员变量名称(成员变量名称字符串中截取掉List子串)的属性,获取属性的前端必填标识REQUIRED_FLAG。

当前端必填标识为1-是,则表明必输列表为空,生成的out_flag的值为1-失败,拼接out_flag校验失败信息,处理下一个成员变量。

当前端必填标识为0-否,则表明非必输时列表为空,无需校验,继续处理下一个成员变量。

当成员变量对象不是空列表或成员变量对象不是列表时,执行S301。

在执行S102之前,还包括:获取成员变量对象中的子成员变量对象。

图4是本发明实施例中获取子成员变量对象的流程图。如图4所示,获取子成员变量对象包括:

S301:根据成员变量对象获取子成员变量数组。

具体实施时,可以调用fieldObject.getClass().getDeclaredFields()方法,获取成员变量对象的子成员变量数组(subFields)。

S302:根据子成员变量数组获取子成员变量。

具体实施时,可以循环处理子成员变量数组(subFields)中的每一个子成员变量(subField)。

其中,子成员变量数组包括多个子成员变量。例如,当子成员变量数组为基本信息(baseInfo)时,子成员变量数组包括产品代码(prodCode)、产品名称(prodName)和产品描述(prodDesc)。

S303:根据子成员变量获取子成员变量对象。

一实施例中,S303包括:获取子成员变量的子成员变量名称;根据子成员变量名称获取子成员方法名称;根据子成员方法名称创建方法对象以获取子成员变量对象。

具体实施时,S303包括:

1、调用subField.getName()方法获取子成员变量名称(subFieldName)。

2、判断子成员变量名称在产品模板属性集合中是否存在。

3、当存在时,根据子成员变量名称(subFieldName)获取子成员方法名称以生成getDeclaredMethod方法。

4、传入子成员方法名称,调用getDeclaredMethod方法创建方法(method)对象,调用invoke方法,获取子成员变量对象(subFieldObject)。

5、进行子成员变量对象数据类型转换,将子成员变量对象转换为meta类型、枚举类型、Integer类型、BigDecimal类型和String类型等。

具体实施时,S102包括:

根据子成员变量名称(subFieldName)从产品模板属性表的产品模板属性集合中查找校验规则。

S103:根据校验规则校验对应的子成员变量对象。

具体实施时,S103包括:

1、判断子成员变量对象是否为空;当子成员变量对象为空时,判断前端必填标识是否为1-是。当前端必填标识为1-是,则表明子成员变量对象为必输项但值为空,生成的out_flag的值为1-失败,拼接out_flag校验失败信息,校验失败信息为“XXX的YYY不能为空!”(X代表产品模板属性集合,Y代表属性)。当前端必填标识为0-否,则不进行校验。

2、当子成员变量对象不为空时,判断子成员变量对象的数据类型。

1)数据类型(DATA_TYPE)为1-字符,判断子成员变量对象的字符长度是否在字符最大长度(DATA_MAX_LENGTH)和字符最小长度(DATA_MIN_LENGTH)之间。

2)数据类型(DATA_TYPE)为2-数字,使用正则表达式判断子成员变量对象是否为数字,且子成员变量对象是否在数据最大值(DATA_MAX_VALUE)和数据最小值(DATA_MIN_VALUE)之间。

3)数据类型(DATA_TYPE)为3-日期,使用正则表达式判断子成员变量对象是否为8位YYYYMMDD日期格式,且子成员变量对象的长度是否在数据最大长度(DATA_MAX_LENGTH)和数据最小长度(DATA_MIN_LENGTH)之间。

4)数据类型(DATA_TYPE)为4-时间,使用正则表达式判断子成员变量对象是否为6位HHMMSS时间格式,且子成员变量对象的长度是否在数据最大长度(DATA_MAX_LENGTH)和数据最小长度(DATA_MIN_LENGTH)之间。

5)数据类型为1-字典,读取数据来源(OPTION_SOURCE)中的字典,获取字典值列表,判断子成员变量对象是否在数据来源(OPTION_SOURCE)对应的字典中。

6)数据类型为2-服务,调用数据来源(DATA_SOURCE)中配置的服务接口,判断子成员变量对象的值是否在数据来源(OPTION_SOURCE)对应的服务返回值中。

7)数据类型为3-级联表,读取数据来源(DATA_SOURCE)中的级联表,获取级联数据,判断子成员变量对象的值是否在数据来源(OPTION_SOURCE)对应的级联表中。

当校验结果为失败时,生成的out_flag的值为1-失败,拼接out_flag校验失败信息,返回子成员变量对象校验不通过的提示信息。当校验结果为成功时,生成的out_flag的值为0-成功。

图1所示的理财产品属性校验方法的执行主体可以为计算机(后端)。由图1所示的流程可知,本发明实施例的理财产品属性校验方法先根据产品模板属性集标签从产品模板属性表中获取成员变量对象,再从产品模板属性表中获取成员变量对象中的子成员变量对象的数据类型对应的校验规则以校验子成员变量对象,可以满足产品的灵活化配置,进而支持产品的灵活定制和快速上线。

本发明实施例的具体流程如下:

1、根据产品模板属性集标签从产品模板属性表中获取成员变量对象。

2、调用getDeclareFields方法获取产品对象的成员变量数组。

3、根据成员变量数组获取成员变量。

4、调用field.getName()方法获取成员变量名称(fieldName)。

5、根据成员变量名称和对应的租户ID、模板ID和语言标识查询产品模板属性表,获取产品模板属性集合。

6、当产品模板属性集合不为空时,根据成员变量名称获取成员方法名称。

7、传入成员方法名称,获取成员变量对象的子成员变量对象。

8、当成员变量对象不是空列表或成员变量对象不是列表时,根据成员变量对象获取子成员变量数组。

9、调用subField.getName()方法获取子成员变量名称。

10、判断子成员变量名称在产品模板属性集合中是否存在。当存在时,根据子成员变量名称(subFieldName)生成getDeclaredMethod方法

11、调用getDeclaredMethod方法获取子成员变量对象。

12、根据子成员变量名称(subFieldName)从产品模板属性表的产品模板属性集合中查找校验规则。

13、根据子成员变量对象的数据类型和对应的校验规则校验所述子成员变量对象,输出校验结果。

综上,为解决现有技术不支持特色产品的灵活定制和快速上线的问题,本发明提供了一种基于属性可扩展模板的理财产品属性校验方法,通过定制特色产品模板(产品模板属性集合)读取产品的属性信息,支持产品发行方根据产品的实际情况将属性和属性的校验规则(如数据类型、数据最大长度、数据最小长度、数据最大值、数据最小值、列表最大条数、列表最小条数、是否必输、字典类型的字典范围和级联类型的级联范围等)存储在产品模板属性集合中;当前端新增产品时,后端将产品的属性进行排序拼接出树形结构,然后前端通过动态渲染的方式在页面上进行展示。维护产品信息时根据校验规则对产品的子成员变量对象(属性)进行校验,将特色产品的差异化趋同处理;校验通过后将子成员变量对象存储到产品模板属性集合映射的产品信息数据表中。

综上所述,本发明实施例提供的理财产品属性校验方法具有以下有益效果:

1、产品模板可以灵活定制,方便产品快速上线。

2、产品属性校验。

3、实现属性动态存储,无需改动程序结构。

基于同一发明构思,本发明实施例还提供了一种理财产品属性校验装置,由于该装置解决问题的原理与理财产品属性校验方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。

图5是本发明实施例中理财产品属性校验装置的结构框图。如图5所示,理财产品属性校验装置包括:

成员变量对象获取模块,用于根据产品模板属性集标签从产品模板属性表中获取成员变量对象;

校验规则模块,用于从产品模板属性表中获取成员变量对象中的子成员变量对象的数据类型对应的校验规则;

校验模块,用于根据校验规则校验对应的子成员变量对象。

在其中一种实施例中,成员变量对象获取模块包括:

成员变量数组单元,用于根据产品模板属性集标签从产品模板属性表中获取产品对象的成员变量数组;

成员变量单元,用于根据成员变量数组获取成员变量;

成员变量对象单元,用于根据成员变量获取成员变量对象。

在其中一种实施例中,还包括子成员变量对象获取模块,所述子成员变量对象获取模块包括:

子成员变量数组单元,用于根据成员变量对象获取子成员变量数组;

子成员变量单元,用于根据子成员变量数组获取子成员变量;

子成员变量对象单元,用于根据子成员变量获取子成员变量对象。

在其中一种实施例中,还包括:

失败信息模块,用于当成员变量对象为空列表且具有前端必填标识时,输出校验失败信息。

在其中一种实施例中,所述成员变量对象单元包括:

成员变量名称子单元,用于获取成员变量的成员变量名称;

成员方法名称子单元,用于根据成员变量名称获取成员方法名称;

成员变量对象子单元,用于根据成员方法名称创建方法对象以获取成员变量对象。

在其中一种实施例中,成员方法名称子单元还用于:

根据成员变量名称从产品模板属性表中获取产品模板属性集合;

当产品模板属性集合不为空时,根据成员变量名称获取成员方法名称。

在其中一种实施例中,子成员变量对象单元包括:

子成员变量名称子单元,用于获取子成员变量的子成员变量名称;

子成员方法名称子单元,用于根据子成员变量名称获取子成员方法名称;

子成员变量对象子单元,用于根据子成员方法名称创建方法对象以获取子成员变量对象。

综上,本发明实施例的理财产品属性校验装置先根据产品模板属性集标签从产品模板属性表中获取成员变量对象,再从产品模板属性表中获取成员变量对象中的子成员变量对象的数据类型对应的校验规则以校验子成员变量对象,可以满足产品的灵活化配置,进而支持产品的灵活定制和快速上线。

本发明实施例还提供能够实现上述实施例中的理财产品属性校验方法中全部步骤的一种计算机设备的具体实施方式。图6是本发明实施例中计算机设备的结构框图,参见图6,所述计算机设备具体包括如下内容:

处理器(processor)601和存储器(memory)602。

所述处理器601用于调用所述存储器602中的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中的理财产品属性校验方法中的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:

根据产品模板属性集标签从产品模板属性表中获取成员变量对象;

从产品模板属性表中获取成员变量对象中的子成员变量对象的数据类型对应的校验规则;

根据校验规则校验对应的子成员变量对象。

综上,本发明实施例的计算机设备先根据产品模板属性集标签从产品模板属性表中获取成员变量对象,再从产品模板属性表中获取成员变量对象中的子成员变量对象的数据类型对应的校验规则以校验子成员变量对象,可以满足产品的灵活化配置,进而支持产品的灵活定制和快速上线。

本发明实施例还提供能够实现上述实施例中的理财产品属性校验方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的理财产品属性校验方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:

根据产品模板属性集标签从产品模板属性表中获取成员变量对象;

从产品模板属性表中获取成员变量对象中的子成员变量对象的数据类型对应的校验规则;

根据校验规则校验对应的子成员变量对象。

综上,本发明实施例的计算机可读存储介质先根据产品模板属性集标签从产品模板属性表中获取成员变量对象,再从产品模板属性表中获取成员变量对象中的子成员变量对象的数据类型对应的校验规则以校验子成员变量对象,可以满足产品的灵活化配置,进而支持产品的灵活定制和快速上线。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrative logical block),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrative components),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。

本发明实施例中所描述的各种说明性的逻辑块,或单元,或装置都可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。

本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中,ASIC可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。

在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、DVD、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。

相关技术
  • 理财产品属性校验方法及装置
  • 基于人工智能的产品属性决策方法、装置、电子设备
技术分类

06120112720740