CN113326407A - 一种数据处理方法及装置 - Google Patents

一种数据处理方法及装置 Download PDF

Info

Publication number
CN113326407A
CN113326407A CN202110679108.8A CN202110679108A CN113326407A CN 113326407 A CN113326407 A CN 113326407A CN 202110679108 A CN202110679108 A CN 202110679108A CN 113326407 A CN113326407 A CN 113326407A
Authority
CN
China
Prior art keywords
expression
target
sub
list
service
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
Application number
CN202110679108.8A
Other languages
English (en)
Inventor
刘同旺
卢三雄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
WeBank Co Ltd
Original Assignee
WeBank Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by WeBank Co Ltd filed Critical WeBank Co Ltd
Priority to CN202110679108.8A priority Critical patent/CN113326407A/zh
Publication of CN113326407A publication Critical patent/CN113326407A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing

Abstract

本发明公开了一种数据处理方法及装置,方法为:接收业务处理请求,业务处理请求包括业务需求和业务数据;基于业务需求,确定业务需求对应的业务逻辑,并确定业务逻辑对应的因子和对比值;基于业务逻辑,从预设规则库中查找目标运算符和目标连接符,且基于业务逻辑、目标运算符、目标连接符、因子以及对比值,创建目标规则表达式;基于预设拆分条件,对目标规则表达式进行拆分,获得目标表达式列表;目标表达式列表包括多个进行一次数据运算的基本表达式;基于目标表达式列表,对业务数据进行处理,获得处理结果,并将处理结果进行反馈。基于该方法,可以实现对规则表达式的灵活配置,且对目标规则表达式进行解析,提高对业务处理请求的处理速度。

Description

一种数据处理方法及装置
技术领域
本发明实施例涉及金融科技(Fintech)领域,尤其涉及一种数据处理方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技转变,但由于金融行业的安全性、实时性要求,也对技术提出的更高的要求。
目前,现有技术中都是基于已有的固定语法模块来编写业务规则,然而,采用固定语法模块确定业务规则的方式,无法应对新的业务的规则配置需求,且固定语法模块比较依赖大型的规则引擎框架,导致引入外部jar包时存在安全风险。
发明内容
本发明提供一种数据处理方法及装置,解决了现有技术中无法满足新的业务的规则配置的问题。
第一方面,本发明提供一种数据处理方法,应用于业务规则配置与处理系统,所述方法包括:接收业务处理请求,所述业务处理请求包括业务需求和业务数据;基于所述业务需求,确定所述业务需求对应的业务逻辑,并确定所述业务逻辑对应的因子和对比值;其中,所述因子用于表征所述业务逻辑中的对比项;基于所述业务逻辑,从预设规则库中查找目标运算符和目标连接符,且基于所述业务逻辑、所述目标运算符、所述目标连接符、所述因子以及所述对比值,创建目标规则表达式;其中,所述预设规则库包括运算符以及连接符,所述目标规则表达式用于表征对所述业务数据进行处理的表达式;基于预设拆分条件,对所述目标规则表达式进行拆分,获得目标表达式列表;所述目标表达式列表包括多个进行一次数据运算的基本表达式;基于所述目标表达式列表,对所述业务数据进行处理,获得处理结果,并将所述处理结果进行反馈。
上述方法中,可以基于业务需求,确定业务需求对应的业务逻辑,然后确定业务逻辑对应的因子和对比值,即确定业务需求对业务数据进行计算时计算哪一个对比项,以及与这个对比项对应的对比值,从而基于业务逻辑,从预设规则库中查找目标运算符和目标连接符,进而基于业务逻辑以及前述确定的因子、对比值、目标运算符和目标连接符,创建目标规则表达式。也就是说,是从基本符号和因子构建起的目标规则表达式,这样的方式,可以较为准确的确定目标规则表达式,即无需预先配置的语法模块,可以更为灵活的基于实际业务需求创建目标规则表达式。并且,这样基于预设规则库和业务需求配置目标规则表达式的方式,可以灵活且快速的确定对业务数据进行处理的表达式,增强了规则表达式的拓展性,且无需大量的存储区域,节省存储空间。进一步地,可以基于预设拆分条件,对目标规则表达式进行拆分,获得目标表达式列表,即获得多个进行一次数据运算的基本表达式,从而可以基于多个进行一次数据运算的基本表达式对业务数据进行处理,获得处理结果,并将处理结果进行反馈,从而提高对业务处理请求的处理效率。
可选的,所述基于预设拆分条件,对所述目标规则表达式进行拆分,获得目标表达式列表,包括:利用空格字符替换所述目标规则表达式中的预设字符,获得第一目标规则表达式;其中,所述预设字符至少包括跳格、回车、换行符;基于所述第一目标规则表达式列表中的连接符,对所述第一目标规则表达式进行划分,获得第一表达式列表;确定所述第一表达式列表中任一子表达式是否为基本表达式,当确定所述第一表达式列表中任一子表达式为所述基本表达式时,将所述第一表达式列表作为所述目标表达式列表。
上述方法中,可以将跳格、回车、换行符等预设字符替换为空格字符,获得第一目标规则表达式,也就是说,将未有明确含义且对后续对目标规则表达式进行拆分的字符替换为空格字符,即对目标规则表达式进行格式化处理,提高拆分的准确性。进一步地,可以基于第一目标规则表达式中的连接符,对第一目标规则表达式进行拆分,从而获得第一表达式列表,并判断第一表达式列表中任一子表达式是否为基本表达式,且当确定第一表达式列表中任一子表达式为基本表达式时,将第一表达式列表作为目标表达式列表。也就是说,在进行第一次拆分之后,还对第一次拆分后所获得的子表达式是否为基本表达式进行判断,这样的方式,可以确保任一子表达式为基本表达式,从而在采用目标表达式列表对业务数据进行处理时,可以更简单且准确的进行运算。
可选的,所述确定所述第一表达式列表中任一子表达式是否为基本表达式,当确定所述第一表达式列表中任一子表达式为所述基本表达式时,将所述第一表达式列表作为所述目标表达式列表,包括:确定所述第一表达式列表中的任一子表达式中是否包括括号字符;当确定所述第一表达式列表中的任一子表达式中包括所述括号字符时,确定所述任一子表达式对应的长度是否大于预设阈值;当确定所述任一子表达式对应的长度大于所述预设阈值时,对所述任一子表达式基于字符长度进行划分,获得处理后的所述任一子表达式,且所述处理后的任一子表达式包括至少两个次子表达式;将所述第一表达式列表中所述任一子表达式替换为所述至少两个次子表达式,获得更新后的所述第一表达式列表,将所述更新后的所述第一表达式列表作为所述目标表达式列表。
上述方法中,基于第一表达式列表中任一子表达式中是否包括括号字符,来判断任一子表达式是否为基本表达式,当确定任一子表达式包括括号字符,还判断任一子表达式对应的长度是否大于预设阈值。也就是说,当确定任一子表达式包括括号字符且其对应的长度大于预设阈值时,可以确定任一子表达式并非基本表达式,且对该任一子表达式再基于字符长度进行划分,获得包括至少两个次子表达式的处理后的任一子表达式,并基于此对第一表达式列表进行更新,获得目标表达式列表,这样的方式,可以尽量确保目标表达式列表中的子表达式均为基本表达式。
可选的,确定所述第一表达式列表中任一子表达式是否为基本表达式,当确定所述第一表达式列表中任一子表达式为所述基本表达式时,将所述第一表达式列表作为所述目标表达式列表,包括:当确定所述第一表达式列表中的任一子表达式中不包括所述括号子字符时,确定所述任一子表达式是否包括预设连接符;当确定所述任一子表达式包括所述预设连接符时,将所述第一表达式列表中与所述预设连接符未有字符间隔的字符串和连接符,添加到所述任一子表达式中,获得第一子表达式;将所述第一表达式列表中所述任一子表达式替换为所述第一子表达式,获得更新后的所述第一表达式列表,将所述更新后的所述第一表达式列表作为目标表达式列表;当确定所述任一子表达式不包括所述预设连接符时,对所述任一子表达式添加空字符串,获得第二子表达式;将所述第一表达式列表中所述任一子表达式替换为所述第二子表达式,获得更新后的所述第一表达式列表,将所述更新后的所述第一表达式列表作为目标表达式列表。
上述方法中,当确定任一子表达式中不包括括号字符时,并不直接确定该任一子表达式为基本表达式,而是再以该任一子表达式是否包括连接符,来实现对该任一子表达式为是否基本表达式的二次判断,这样的方式,可以尽量确保获得的目标表达式列表中的子表达式均为基本表达式。
可选的,所述基于所述目标表达式列表,对所述业务数据进行处理,获得处理结果,包括:基于所述因子确定所述业务数据的数据类型,其中,所述数据类型为布尔型、数值型、Date型以及String型中的任一种;基于所述业务数据的数据类型和所述对比值,计算与所述对比值的数据类型对应的第一目标表达式列表;基于所述第一目标表达式列表,对所述业务数据进行处理,获得处理结果。
上述方法中,可以确定业务数据对应的数据类型,并基于业务数据的数据类型和对比值,计算与业务数据的数据类型对应的第一目标表达式列表,从而基于第一目标表达式列表,对业务数据进行处理,这样的方式,可以避免出现由于业务数据的数据类型和目标表达式列表针对的处理的数据类型不同,导致无法对业务数据进行处理的情况出现,提高对业务数据处理的效率。
可选的,所述基于所述因子确定所述业务数据的数据类型,包括:基于所述因子对应定义的因子名称,获得所述因子对应的注解实例;基于所述注解实例中定义的返回值类型,确定所述业务数据的数据类型。
上述方法中,可以基于因子对应定义的因子名称,获得因子对应的注解实例,从而基于注解实例中定义的返回值类型,对应确定业务数据的数据类型,这样的方式,可以较为准确的确定业务数据的数据类型。
可选的,所述基于所述因子对应定义的因子名称,获得所述因子对应的注解实例,包括:基于所述因子对应定义的因子名称,确定所述因子对应定义的传递参数和参数类型;基于所述参数类型,创建参数实例,并基于预设函数将所述传递参数中的参数赋值给所述参数实例,获得第一参数实例;确定所述第一参数实例中对应类的声明字段列表,并对所述列表中任一项进行遍历,确定所述列表任一项对应的拓展参数值;将所述拓展参数值输入到所述第一参数实例中,获得所述因子对应的注解实例。
上述方法中,当针对不同的业务场景时,可以在对因子进行定义时,将参数类型和传递参数进行定义,从而在获取因子对应的注解实例时,可以基于预先定义的传递参数和参数类型,对应将参数赋值到拓展参数,即可以基于实际需求对参数进行灵活的扩展。
第二方面,本发明提供一种数据处理装置,包括:接收单元,用于接收业务处理请求,所述业务处理请求包括业务需求和业务数据;创建单元,用于基于所述业务需求,确定所述业务需求对应的业务逻辑,并确定所述业务逻辑对应的因子和对比值;其中,所述因子用于表征所述业务逻辑中的对比项;以及,基于所述业务逻辑,从预设规则库中查找目标运算符和目标连接符,且基于所述业务逻辑、所述目标运算符、所述目标连接符、所述因子以及所述对比值,创建目标规则表达式;其中,所述预设规则库包括运算符以及连接符,所述目标规则表达式用于表征对所述业务数据进行处理的表达式;拆分单元,用于基于预设拆分条件,对所述目标规则表达式进行拆分,获得目标表达式列表;所述目标表达式列表包括多个进行一次数据运算的基本表达式;处理单元,用于基于所述目标表达式列表,对所述业务数据进行处理,获得处理结果,并将所述处理结果进行反馈。
可选的,所述拆分单元,用于:利用空格字符替换所述目标规则表达式中的预设字符,获得第一目标规则表达式;其中,所述预设字符至少包括跳格、回车、换行符;基于所述第一目标规则表达式列表中的连接符,对所述第一目标规则表达式进行划分,获得第一表达式列表;确定所述第一表达式列表中任一子表达式是否为基本表达式,当确定所述第一表达式列表中任一子表达式为所述基本表达式时,将所述第一表达式列表作为所述目标表达式列表。
可选的,所述拆分单元,用于:确定所述第一表达式列表中的任一子表达式中是否包括括号字符;当确定所述第一表达式列表中的任一子表达式中包括所述括号字符时,确定所述任一子表达式对应的长度是否大于预设阈值;当确定所述任一子表达式对应的长度大于所述预设阈值时,对所述任一子表达式基于字符长度进行划分,获得处理后的所述任一子表达式,且所述处理后的任一子表达式包括至少两个次子表达式;将所述第一表达式列表中所述任一子表达式替换为所述至少两个次子表达式,获得更新后的所述第一表达式列表,将所述更新后的所述第一表达式列表作为所述目标表达式列表。
可选的,所述拆分单元,用于:当确定所述第一表达式列表中的任一子表达式中不包括所述括号子字符时,确定所述任一子表达式是否包括预设连接符;当确定所述任一子表达式包括所述预设连接符时,将所述第一表达式列表中与所述预设连接符未有字符间隔的字符串和连接符,添加到所述任一子表达式中,获得第一子表达式;将所述第一表达式列表中所述任一子表达式替换为所述第一子表达式,获得更新后的所述第一表达式列表,将所述更新后的所述第一表达式列表作为目标表达式列表;当确定所述任一子表达式不包括所述预设连接符时,对所述任一子表达式添加空字符串,获得第二子表达式;将所述第一表达式列表中所述任一子表达式替换为所述第二子表达式,获得更新后的所述第一表达式列表,将所述更新后的所述第一表达式列表作为目标表达式列表。
可选的,所述处理单元,用于:基于所述因子确定所述业务数据的数据类型,其中,所述数据类型为布尔型、数值型、Date型以及String型中的任一种;基于所述业务数据的数据类型和所述对比值,计算与所述业务数据的数据类型对应的第一目标表达式列表;基于所述第一目标表达式列表,对所述业务数据进行处理,获得处理结果。
可选的,所述处理单元,用于:基于所述因子对应定义的因子名称,获得所述因子对应的注解实例;基于所述注解实例中定义的返回值类型,确定所述业务数据的数据类型。
可选的,所述处理单元,用于:基于所述因子对应定义的因子名称,确定所述因子对应定义的传递参数和参数类型;基于所述参数类型,创建参数实例,并基于预设函数将所述传递参数中的参数赋值给所述参数实例,获得第一参数实例;确定所述第一参数实例中对应类的声明字段列表,并对所述列表中任一项进行遍历,确定所述列表任一项对应的拓展参数值;将所述拓展参数值输入到所述第一参数实例中,获得所述因子对应的注解实例。
上述第二方面及第二方面各个可选装置的有益效果,可以参考上述第一方面及第一方面各个可选方法的有益效果,这里不再赘述。
第三方面,本发明提供一种计算机设备,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面及第一方面各个可选的方法。
第四方面,本发明提供一种存储介质,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面及第一方面各个可选的方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍。
图1为本发明实施例提供的一种应用场景图;
图2为本发明实施例提供的一种数据处理方法的步骤流程示意图;
图3为本发明实施例提供的一种解析目标规则表达式的步骤流程示意图;
图4为本发明实施例提供的一种数据处理装置的结构示意图。
具体实施方式
为了更好的理解上述技术方案,下面将结合说明书附图及具体的实施方式对上述技术方案进行详细的说明,应当理解本发明实施例以及实施例中的具体特征是对本发明技术方案的详细的说明,而不是对本发明技术方案的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互结合。
需要说明的是,本发明的说明书和权利要求中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的图像在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
如前所述,现有技术中提供的编写业务需求的处理规则的方案,一般依赖比较重的规则引擎框架,且学习其他语言的成本较高,不利于对框架的维护。并且,由于都是采用固定的语法模块进行编写,从而在拓展与业务相关的规则表达式时,无法及时且准确的适应新的业务需求,即拓展性较差。
鉴于此,本发明提供了一种数据处理方法及装置,通过该方法可以基于实际的业务需求,灵活的配置对应的规则表达式,且对规则表达式进行解析,从而可以在进行业务数据处理时,快速且准确的实现业务数据的处理。
介绍完本发明实施例的设计思想之后,下面对本发明实施例中的数据处理技术方案适用的应用场景做一些简单介绍,需要说明的是,本发明实施例描述的应用场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着新应用场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。
在本发明实施例中,请参见图1所示的应用场景示意图,该场景中包括电子设备101、处理服务器102,电子设备101可以与处理服务器102进行通信。例如通过有线或无线通信方式进行直接或间接地连接,本发明不做限制。
其中,处理服务器102可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。电子设备101可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能电视、智能穿戴式设备等或者可以是服务器,但并不局限于此。
在该场景中,用户可以基于电子设备101触发业务处理请求,从而部署于处理服务器120上的业务规则配置与处理系统可以接收业务处理请求,其中,业务处理请求包括业务需求和业务数据;然后基于业务需求,确定业务需求对应的业务逻辑,并确定业务逻辑对应的因子和对比值;其中,因子用于表征业务逻辑中的对比项;基于业务逻辑,从预设规则库中查找目标运算符和目标连接符,且基于业务逻辑、目标运算符、目标连接符、因子以及对比值,创建目标规则表达式,从而基于预设拆分条件,对目标规则表达式进行拆分,获得目标表达式列表,进而基于目标表达式列表,对业务数据进行处理,获得处理结果,并将处理结果反馈给电子设备101。
需要说明的是,预设规则库可以存储于处理服务器102中的存储区域,也可以存储于与处理服务器102连接的其它服务器的存储区域,本发明实施例中不做限制。此外,运算符和连接符可以分别独立存储于前述的存储区域的不同位置。
为进一步说明本发明实施例提供的数据处理方法的方案,下面结合附图以及具体实施方式对此进行详细的说明。虽然本发明实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本发明实施例提供的执行顺序。所述方法在实际的处理过程中或者装置执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的应用环境)。
以下结合图2所示的方法流程图对本发明实施例中数据处理方法进行说明,下面对本发明实施例的方法流程进行介绍。
步骤201:接收业务处理请求,业务处理请求包括业务需求和业务数据。
在步骤201中,可以接收业务处理请求,具体的,该业务处理请求可以是自动触发的,示例性的,可以是周期性触发,例如可以是1天触发一次,或者1个小时触发1次等;或者是满足预设触发条件触发,例如,当确定业务未匹配到规则表达式时,则可以确定满足预设触发条件,即业务为新业务时自动触发业务处理请求;或者是业务对应有新需求时,则可以确定满足预设触发条件。当然,业务处理请求还可以是基于用户的实际使用需求触发的,即基于用户的选择触发业务处理请求。
示例性的,业务处理请求包括业务需求和业务数据,其中,业务需求可以理解为该业务是针对哪一个具体方向,需要进行哪些处理,业务数据可以理解为该业务下产生的数据。
步骤202:基于业务需求,确定业务需求对应的业务逻辑,并确定业务逻辑对应的因子和对比值;其中,因子用于表征业务逻辑中的对比项。
步骤203:基于业务逻辑,从预设规则库中查找目标运算符和目标连接符,且基于业务逻辑、目标运算符、目标连接符、因子以及对比值,创建目标规则表达式;其中,预设规则库包括运算符以及连接符,目标规则表达式用于表征对业务数据进行处理的表达式。
在步骤202中,基于业务需求,确定业务需求对应的业务逻辑,并确定业务逻辑对应的因子和对比值;其中,因子用于表征业务逻辑中的对比项。
示例性的,因子例如是投资金额因子investAmount、首次投资因子firstInvest、全渠道撤单次数因子countWithDraw等等。对比值可以理解为对业务需求对应数据的抽象,例如业务需求为要求投资金额大于10000,则因子为“投资金额”,对比值为“10000”。
示例性的,预设规则库中的运算符可以包括但不限于:==(等于),!=(不等于),>(大于),>=(大于等于),<(小于),<=(小于等于),in(包含),fct(首字符匹配),notIn(不包含),is(是),not(否)。需要说明的是,“()”中的内容为对运算符的解释,后文中采用相同的描述方式。
在本发明实施例中,预设规则库中的运算符包括在一个枚举中,在实际实施中,可以基于实际需求对枚举中的运算符进行新增,以满足各个业务的规则表达式配置需求。
示例性的,预设规则库中的连接符可以包括and(与)、or(或)。当然,在实际实施中,可以基于实际需求或者周期性对预设规则库中的连接符进行更新,以满足业务的规则表达式的配置需求。
例如,因子为:investAmount、firstInvest;对比值为10000;目标运算符为>=,is;目标连接符为and,or;则基于业务逻辑、目标运算符、目标连接符、因子以及对比值,创建目标规则表达式为:(investAmount>=10000and firstInvest is Y),(investAmount>=10000or firstInvest is Y),((investAmount>=10000and firstInvest is Y)or(investAmount>=10000or firstInvest is Y))。
步骤204:基于预设拆分条件,对目标规则表达式进行拆分,获得目标表达式列表;目标表达式列表包括多个进行一次数据运算的基本表达式。
在步骤204中,利用空格字符替换目标规则表达式中的预设字符,获得第一目标规则表达式;其中,预设字符至少包括跳格、回车、换行符;基于第一目标规则表达式中的连接符,对第一目标规则表达式进行划分,获得第一表达式列表;确定第一表达式列表中任一子表达式是否为基本表达式,当确定第一表达式列表中任一子表达式为基本表达式时,将第一表达式列表作为目标表达式列表。
示例性的,请参见图3,图3为本发明实施中的确定第一表达式列表中任一子表达式是否为基本表达式的步骤流程图,即确定第一表达式列表中任一子表达式是否为基本表达可以采用但不限于以下步骤:
步骤301:确定第一表达式列表中的任一子表达式中是否包括括号字符;当确定第一表达式列表中的任一子表达式中包括括号字符时,执行步骤302,当确定第一表达式列表中的任一子表达式中未包括括号字符时,执行步骤305。
在步骤310中,确定第一表达式列表中的任一子表达式中是否包括括号字符,可以为确定任一子表达式中是否包括“(”,还可以是确定任一子表达式中是否包括“(”之后,是否还包括“)”,即括号字符为“(”和/或“)”。
步骤302:当确定第一表达式列表中的任一子表达式中包括括号字符时,确定任一子表达式对应的长度是否大于预设阈值;当确定任一子表达式对应的长度大于预设阈值时,执行步骤303;当确定任一子表达式对应的长度不大于预设阈值时执行步骤305。
步骤303:对任一子表达式基于字符长度进行划分,获得处理后的任一子表达式,且处理后的任一子表达式包括至少两个次子表达式。
示例性的,步骤303可以基于“item substring(1)”实现,其中,“item”用于表征任一子表达式。
步骤304:将第一表达式列表中任一子表达式替换为至少两个次子表达式,获得更新后的第一表达式列表,获得更新后的第一表达式列表,将更新后的第一表达式列表作为目标表达式列表。
步骤305:将第一表达式列表作为目标表达式列表。
步骤306:当确定第一表达式列表中的任一子表达式中不包括括号子字符时,确定任一子表达式是否包括预设连接符;当确定任一子表达式包括预设连接符时,执行步骤307;当确定任一子表达式未包括预设连接符时,执行步骤309。示例性的,预设连接符为“and”或“or”。
步骤307:当确定任一子表达式包括预设连接符时,将第一表达式列表中与预设连接符未有字符间隔的字符串和连接符,添加到任一子表达式中,获得第一子表达式。
步骤308:将第一表达式列表中任一子表达式替换为第一子表达式,获得更新后的第一表达式列表,将更新后的第一表达式列表作为目标表达式列表。
步骤309:当确定任一子表达式未包括预设连接符时,对任一子表达式添加空字符串,获得第二子表达式。
步骤310:将第一表达式列表中任一子表达式替换为第二子表达式,获得更新后的第一表达式列表,将更新后的第一表达式列表作为目标表达式列表。
可见,在本发明实施例中,在获得第一表达式列表中任一子表达式之后,还可以对任一子表达式是否为基本表达式进行判断,从而确保目标表达式列表中的子表达式均为基本表达式。
步骤205:基于目标表达式列表,对业务数据进行处理,获得处理结果,并将处理结果进行反馈。
在步骤205中,基于因子对应定义的因子名称,获取因子对应的注解实例;基于注解实例中定义的返回值类型,确定业务数据的数据类型,其中,数据类型为布尔型、数值型、Date型以及String型中的任一种,基于业务数据的数据类型和对比值,计算与业务数据的数据类型对应的第一目标表达式列表,基于第一目标表达式列表,对业务数据进行处理,获得处理结果。
示例性的,确定目标表达式列表中的第一子表达式,清空第一子表达式的首尾空格,然后基于将第一子表达式分割成字符串数组,例如基于“split()”方法可以将第一子表达式对应的字符串分割成字符串数组,从而基于字符串数组确定对应的因子、对比值以及运算符,进而基于因子对应定义的因子名称,获取因子对应的注解实例,从而基于注解实例中定义的返回值类型,确定业务数据的数据类型。
示例性的,在获取因子对应的注解实例之前,可以基于因子对应定义的因子名称,确定因子对应定义的传递参数和参数类型,然后再基于该参数类型创建参数实例,然后调用预设函数,该预设函数例如是copy Properties函数,将传递参数中的参数赋值到参数实例中,获得第一参数实例,从而确定第一参数实例中对应类的声明字段列表,对该列表进行遍历,并通过反射获取该列表中子项对应的拓展参数值,从而将该拓展参数值输入到第一参数实例中,从而确定参数实例,即前述的注解实例,从而基于注解实例中因子对应的返回值类型,确定业务数据的数据类型。
在本发明实施例中,在不同的业务参数场景下,仅需要在因子对应的定义中定义对应的输入参数,从而在计算第一目标表达式列表时,可以将输入参数赋值到第一目标表达式列表中,即实现了第一目标表达式列表中参数的扩展,即可基于JAVA反射实现灵活的参数的扩展。
示例性的,可以先判断业务数据的类型是否为前述数据类型即布尔型、数值型、Date型以及String型中的任一种,当确定业务数据的类型为前述类型中的任一种,则判断业务数据是否为列表型,即对比值是否为多个,且该多个组成了列表,当业务数据为列表型时,则计算目标表达式列表中任一子表达式,与业务数据的数据类型对应的第一子表达式,从而获得对应的第一目标表达式列表;当业务数据为单个业务数据时,则直接基于业务数据的数据类型确定对应的第一目标表达式列表,并基于第一目标表达式列表,对业务数据进行处理,确定第一目标表达式列表中每个子表达式对应的计算结果,从而基于每个子表达式对应的计算结果和其它子表达式之间的连接关系,对应确定处理结果。
需要说明的是,后文中为了便于描述,用leftVal表征被比值即业务数据(因子对应的实际数值),rightVal表征对比值。
示例性的,当业务数据的数据类型为布尔型数据时,则将业务数据强转为布尔型数据,并判断目标表达式列表中的子表达式中的运算符是否为“==”或“is”,当确定运算符为“==”或“is”,则第一目标表达式列表中的子表达式表示为:leftVal==rightVal;当确定运算符不为“==”或“is”时,且确定运算符为“!=”或“not”时,则第一目标表达式列表中的子表达式表示为:leftVal!=rightVal。
示例性的,当业务数据的数据类型为数值型数据时,则将业务数据强转为BigDecima型,当目标表达式列表中的子表达式中的运算符为“==”时,则第一目标表达式列表中的子表达式表示为:leftVal.compare to(rightVal)==0;当目标表达式列表中的子表达式中的运算符不为“==”,且为“!=”时,则第一目标表达式列表中的子表达式表示为:leftVal.compare to(rightVal)!=0;当目标表达式列表中的子表达式中的运算符不为“==”以及“!=”,且为“>=”时,则第一目标表达式列表中的子表达式表示为:leftVal.compare to(rightVal)>=0;当目标表达式列表中的子表达式中的运算符不为“==”、“!=”以及“>=”,且为“<”时,则第一目标表达式列表中的子表达式表示为:leftVal.compare to(rightVal)<0;当目标表达式列表中的子表达式中的运算符不为“==”、“!=”、“>=”以及“<”,且为“<=”时,则第一目标表达式列表中的子表达式表示为:leftVal.compare to(rightVal)<=0。
示例性的,当业务数据的数据类型为String类型时,则将业务数据和对比值强转为布尔型,当目标表达式列表中的子表达式中的运算符为“==”时,则第一目标表达式列表中的子表达式表示为:leftVal.equals(rightVal);当目标表达式列表中的子表达式中的运算符不为“==”,且为“!=”时,第一目标表达式列表中的子表达式表示为:!leftVal.equals(rightVal);当目标表达式列表中的子表达式中的运算符不为“==”、“!=”且为“in”时,第一目标表达式列表中的子表达式表示为:leftVal.contains(rightVal);当目标表达式列表中的子表达式中的运算符不为“==”、“!=”以及“in”且为“fct”时,第一目标表达式列表中的子表达式表示为:leftVal.indexOf(rightVal)==0。
示例性的,当业务数据的数据类型为Date类型时,则将业务数据和对比值强转为同一格式Date类型,当目标表达式列表中的子表达式中的运算符为“==”时,则第一目标表达式列表中的子表达式表示为:leftVal.equals(rightVal);当目标表达式列表中的子表达式中的运算符不为“==”,且为“!=”时,则第一目标表达式列表中的子表达式表示为:leftVal.compare to(rightVal)!=0;当目标表达式列表中的子表达式中的运算符不为“==”以及“!=”,且为“>”时,则第一目标表达式列表中的子表达式表示为:leftVal.after(rightVal);当目标表达式列表中的子表达式中的运算符不为“==”、“!=”以及“>”,且为“>=”时,则第一目标表达式列表中的子表达式表示为:leftVal.equals(rightVal)||leftVal.after(rightVal);当目标表达式列表中的子表达式中的运算符不为“==”、“!=”、“>”以及“>=”,且为“<”时,则第一目标表达式列表中的子表达式表示为:leftVal.before(rightVal);当目标表达式列表中的子表达式中的运算符不为“==”、“!=”、“>”、“>=”以及“<”,且为“<=”时,则第一目标表达式列表中的子表达式表示为:leftVal.equals(rightVal)||leftVal.before(rightVal)。
可见,在本发明实施例中,可以基于业务数据对应的数据类型以及业务数据、对比值以及子表达式中的连接符,对应确定第一目标列表表达式的子表达式,从而对业务数据进行处理。
如图4所示,本发明提供一种数据处理装置,包括:接收单元401,用于接收业务处理请求,所述业务处理请求包括业务需求和业务数据;创建单元402,用于基于所述业务需求,确定所述业务需求对应的业务逻辑,并确定所述业务逻辑对应的因子和对比值;其中,所述因子用于表征所述业务逻辑中的对比项;以及,基于所述业务逻辑,从预设规则库中查找目标运算符和目标连接符,且基于所述业务逻辑、所述目标运算符、所述目标连接符、所述因子以及所述对比值,创建目标规则表达式;其中,所述预设规则库包括运算符以及连接符,所述目标规则表达式用于表征对所述业务数据进行处理的表达式;拆分单元403,用于基于预设拆分条件,对所述目标规则表达式进行拆分,获得目标表达式列表;所述目标表达式列表包括多个进行一次数据运算的基本表达式;处理单元404,用于基于所述目标表达式列表,对所述业务数据进行处理,获得处理结果,并将所述处理结果进行反馈。
可选的,所述拆分单元403,用于:利用空格字符替换所述目标规则表达式中的预设字符,获得第一目标规则表达式;其中,所述预设字符至少包括跳格、回车、换行符;基于所述第一目标规则表达式列表中的连接符,对所述第一目标规则表达式进行划分,获得第一表达式列表;确定所述第一表达式列表中任一子表达式是否为基本表达式,当确定所述第一表达式列表中任一子表达式为所述基本表达式时,将所述第一表达式列表作为所述目标表达式列表。
可选的,所述拆分单元403,用于:确定所述第一表达式列表中的任一子表达式中是否包括括号字符;当确定所述第一表达式列表中的任一子表达式中包括所述括号字符时,确定所述任一子表达式对应的长度是否大于预设阈值;当确定所述任一子表达式对应的长度大于所述预设阈值时,对所述任一子表达式基于字符长度进行划分,获得处理后的所述任一子表达式,且所述处理后的任一子表达式包括至少两个次子表达式;将所述第一表达式列表中所述任一子表达式替换为所述至少两个次子表达式,获得更新后的所述第一表达式列表,将所述更新后的所述第一表达式列表作为所述目标表达式列表。
可选的,所述拆分单元403,用于:当确定所述第一表达式列表中的任一子表达式中不包括所述括号子字符时,确定所述任一子表达式是否包括预设连接符;当确定所述任一子表达式包括所述预设连接符时,将所述第一表达式列表中与所述预设连接符未有字符间隔的字符串和连接符,添加到所述任一子表达式中,获得第一子表达式;将所述第一表达式列表中所述任一子表达式替换为所述第一子表达式,获得更新后的所述第一表达式列表,将所述更新后的所述第一表达式列表作为目标表达式列表;当确定所述任一子表达式不包括所述预设连接符时,对所述任一子表达式添加空字符串,获得第二子表达式;将所述第一表达式列表中所述任一子表达式替换为所述第二子表达式,获得更新后的所述第一表达式列表,将所述更新后的所述第一表达式列表作为目标表达式列表。
可选的,所述处理单元404,用于:基于所述因子确定所述业务数据的数据类型,其中,所述数据类型为布尔型、数值型、Date型以及String型中的任一种;基于所述业务数据的数据类型和对比值,计算与所述业务数据的数据类型对应的第一目标表达式列表;基于所述第一目标表达式列表,对所述业务数据进行处理,获得处理结果。
可选的,所述处理单元404,用于:基于所述因子对应定义的因子名称,获得所述因子对应的注解实例;基于所述注解实例中定义的返回值类型,确定所述业务数据的数据类型。
可选的,所述处理单元404,用于:基于所述因子对应定义的因子名称,确定所述因子对应定义的传递参数和参数类型;基于所述参数类型,创建参数实例,并基于预设函数将所述传递参数中的参数赋值给所述参数实例,获得第一参数实例;确定所述第一参数实例中对应类的声明字段列表,并对所述列表中任一项进行遍历,确定所述列表任一项对应的拓展参数值;将所述拓展参数值输入到所述第一参数实例中,获得所述因子对应的注解实例。
本发明实施例提供一种计算机设备,包括程序或指令,当所述程序或指令被执行时,用以执行本发明实施例提供的一种数据处理方法及任一可选方法。
本发明实施例提供一种存储介质,包括程序或指令,当所述程序或指令被执行时,用以执行本发明实施例提供的一种数据处理方法及任一可选方法。
最后应说明的是:本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种数据处理方法,其特征在于,应用于业务规则配置与处理系统,所述方法包括:
接收业务处理请求,所述业务处理请求包括业务需求和业务数据;
基于所述业务需求,确定所述业务需求对应的业务逻辑,并确定所述业务逻辑对应的因子和对比值;其中,所述因子用于表征所述业务逻辑中的对比项;
基于所述业务逻辑,从预设规则库中查找目标运算符和目标连接符,且基于所述业务逻辑、所述目标运算符、所述目标连接符、所述因子以及所述对比值,创建目标规则表达式;其中,所述预设规则库包括运算符以及连接符,所述目标规则表达式用于表征对所述业务数据进行处理的表达式;
基于预设拆分条件,对所述目标规则表达式进行拆分,获得目标表达式列表;所述目标表达式列表包括多个进行一次数据运算的基本表达式;
基于所述目标表达式列表,对所述业务数据进行处理,获得处理结果,并将所述处理结果进行反馈。
2.如权利要求1所述的方法,其特征在于,所述基于预设拆分条件,对所述目标规则表达式进行拆分,获得目标表达式列表,包括:
利用空格字符替换所述目标规则表达式中的预设字符,获得第一目标规则表达式;其中,所述预设字符至少包括跳格、回车、换行符;
基于所述第一目标规则表达式中的连接符,对所述第一目标规则表达式进行划分,获得第一表达式列表;
确定所述第一表达式列表中任一子表达式是否为基本表达式,当确定所述第一表达式列表中任一子表达式为所述基本表达式时,将所述第一表达式列表作为所述目标表达式列表。
3.如权利要求2所述的方法,其特征在于,所述确定所述第一表达式列表中任一子表达式是否为基本表达式,当确定所述第一表达式列表中任一子表达式为所述基本表达式时,将所述第一表达式列表作为所述目标表达式列表,包括:
确定所述第一表达式列表中的任一子表达式中是否包括括号字符;
当确定所述第一表达式列表中的任一子表达式中包括所述括号字符时,确定所述任一子表达式对应的长度是否大于预设阈值;
当确定所述任一子表达式对应的长度大于所述预设阈值时,对所述任一子表达式基于字符长度进行划分,获得处理后的所述任一子表达式,且所述处理后的任一子表达式包括至少两个次子表达式;
将所述第一表达式列表中所述任一子表达式替换为所述至少两个次子表达式,获得更新后的所述第一表达式列表,将所述更新后的所述第一表达式列表作为所述目标表达式列表。
4.如权利要求3所述的方法,其特征在于,确定所述第一表达式列表中任一子表达式是否为基本表达式,当确定所述第一表达式列表中任一子表达式为所述基本表达式时,将所述第一表达式列表作为所述目标表达式列表,包括:
当确定所述第一表达式列表中的任一子表达式中不包括所述括号子字符时,确定所述任一子表达式是否包括预设连接符;
当确定所述任一子表达式包括所述预设连接符时,将所述第一表达式列表中与所述预设连接符未有字符间隔的字符串和连接符,添加到所述任一子表达式中,获得第一子表达式;
将所述第一表达式列表中所述任一子表达式替换为所述第一子表达式,获得更新后的所述第一表达式列表,将所述更新后的所述第一表达式列表作为目标表达式列表;
当确定所述任一子表达式不包括所述预设连接符时,对所述任一子表达式添加空字符串,获得第二子表达式;
将所述第一表达式列表中所述任一子表达式替换为所述第二子表达式,获得更新后的所述第一表达式列表,将所述更新后的所述第一表达式列表作为目标表达式列表。
5.如权利要求1所述的方法,其特征在于,所述基于所述目标表达式列表,对所述业务数据进行处理,获得处理结果,包括:
基于所述因子确定所述业务数据的数据类型,其中,所述数据类型为布尔型、数值型、Date型以及String型中的任一种;
基于所述业务数据的数据类型和所述对比值,计算与所述业务数据的数据类型对应的第一目标表达式列表;
基于所述第一目标表达式列表,对所述业务数据进行处理,获得处理结果。
6.如权利要求5所述的方法,其特征在于,所述基于所述因子确定所述业务数据的数据类型,包括:
基于所述因子对应定义的因子名称,获得所述因子对应的注解实例;
基于所述注解实例中定义的返回值类型,确定所述业务数据的数据类型。
7.如权利要求6所述的方法,其特征在于,所述基于所述因子对应定义的因子名称,获得所述因子对应的注解实例,包括:
基于所述因子对应定义的因子名称,确定所述因子对应定义的传递参数和参数类型;
基于所述参数类型,创建参数实例,并基于预设函数将所述传递参数中的参数赋值给所述参数实例,获得第一参数实例;
确定所述第一参数实例中对应类的声明字段列表,并对所述列表中任一项进行遍历,确定所述列表任一项对应的拓展参数值;
将所述拓展参数值输入到所述第一参数实例中,获得所述因子对应的注解实例。
8.一种数据处理装置,其特征在于,所述装置包括:
接收单元,用于接收业务处理请求,所述业务处理请求包括业务需求和业务数据;
创建单元,用于基于所述业务需求,确定所述业务需求对应的业务逻辑,并确定所述业务逻辑对应的因子和对比值;其中,所述因子用于表征所述业务逻辑中的对比项;以及,基于所述业务逻辑,从预设规则库中查找目标运算符和目标连接符,且基于所述业务逻辑、所述目标运算符、所述目标连接符、所述因子以及所述对比值,创建目标规则表达式;其中,所述预设规则库包括运算符以及连接符,所述目标规则表达式用于表征对所述业务数据进行处理的表达式;
拆分单元,用于基于预设拆分条件,对所述目标规则表达式进行拆分,获得目标表达式列表;所述目标表达式列表包括多个进行一次数据运算的基本表达式;
处理单元,用于基于所述目标表达式列表,对所述业务数据进行处理,获得处理结果,并将所述处理结果进行反馈。
9.一种计算机设备,其特征在于,包括程序或指令,当所述程序或指令被执行时,如权利要求1至7中任意一项所述的方法被执行。
10.一种存储介质,其特征在于,包括程序或指令,当所述程序或指令被执行时,如权利要求1至7中任意一项所述的方法被执行。
CN202110679108.8A 2021-06-18 2021-06-18 一种数据处理方法及装置 Pending CN113326407A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110679108.8A CN113326407A (zh) 2021-06-18 2021-06-18 一种数据处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110679108.8A CN113326407A (zh) 2021-06-18 2021-06-18 一种数据处理方法及装置

Publications (1)

Publication Number Publication Date
CN113326407A true CN113326407A (zh) 2021-08-31

Family

ID=77423987

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110679108.8A Pending CN113326407A (zh) 2021-06-18 2021-06-18 一种数据处理方法及装置

Country Status (1)

Country Link
CN (1) CN113326407A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116302079A (zh) * 2023-05-22 2023-06-23 北京拓普丰联信息科技股份有限公司 一种业务数据处理方法、装置、电子设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116302079A (zh) * 2023-05-22 2023-06-23 北京拓普丰联信息科技股份有限公司 一种业务数据处理方法、装置、电子设备及存储介质
CN116302079B (zh) * 2023-05-22 2023-08-15 北京拓普丰联信息科技股份有限公司 一种业务数据处理方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
US20210342369A1 (en) Method and system for implementing efficient classification and exploration of data
US10630614B2 (en) Opaque message parsing
CN107515878B (zh) 一种数据索引的管理方法及装置
CN107111625B (zh) 实现数据的高效分类和探索的方法和系统
US10133622B2 (en) Enhanced error detection in data synchronization operations
CN107885499A (zh) 一种接口文档生成方法及终端设备
US20150089415A1 (en) Method of processing big data, apparatus performing the same and storage media storing the same
CN109871311B (zh) 一种推荐测试用例的方法和装置
WO2020228063A1 (zh) 一种开发业务功能的方法和装置
CN114363042B (zh) 日志分析方法、装置、设备及可读存储介质
JP2022031625A (ja) 情報をプッシュするための方法および装置、電子機器、記憶媒体並びにコンピュータプログラム
JP7108039B2 (ja) システム全体の制御とデータ探索の自動化を可能にするための視覚的および実行テンプレートの推奨
CN112148343B (zh) 规则发布方法、装置及终端设备
CN111355696A (zh) 一种报文识别方法、装置、dpi设备及存储介质
CN104166570B (zh) 一种在线更新文件的方法、设备及系统
CN115599359A (zh) 一种代码生成方法、装置、设备及介质
CN107493370B (zh) 流量模板确定方法、流量信息识别方法及装置
CN113326407A (zh) 一种数据处理方法及装置
CN114168149A (zh) 一种数据转换方法及装置
CN111143390A (zh) 更新元数据的方法及装置
CN113792232B (zh) 页面特征计算方法、装置、电子设备、介质及程序产品
CN115794064A (zh) 任务处理流程的配置方法、装置、电子设备及存储介质
CN115269654A (zh) 一种数据缓存补充方法、装置、设备及介质
US11960560B1 (en) Methods for analyzing recurring accessibility issues with dynamic web site behavior and devices thereof
CN111158654A (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