CN112685410B - 业务规则校验方法、装置、计算机设备及存储介质 - Google Patents
业务规则校验方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN112685410B CN112685410B CN202011562146.7A CN202011562146A CN112685410B CN 112685410 B CN112685410 B CN 112685410B CN 202011562146 A CN202011562146 A CN 202011562146A CN 112685410 B CN112685410 B CN 112685410B
- Authority
- CN
- China
- Prior art keywords
- preset
- service data
- preset service
- character string
- data
- 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.)
- Active
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本申请属于智能决策技术领域,本申请提供了一种业务规则校验方法、装置、计算机设备及计算机可读存储介质。本申请通过从预设数据库表中获取进行待校验的预设业务数据,将预设业务数据加载至应用内存的预设大对象中,获取预设业务数据相对应的预设业务Drools规则类,根据预设业务Drools规则类对预设业务数据进行校验,本申请通过将业务数据提前准备至预设数据库表中,从预设数据库表中获取进行待校验的预设业务数据,将预设业务数据加载至应用内存的预设大对象中,然后获取预设业务数据相对应的预设业务Drools规则类,根据预设业务Drools规则类对预设业务数据进行校验,提高了对规则进行校验的效率。
Description
技术领域
本申请涉及智能决策技术领域,尤其涉及一种业务规则校验方法、装置、计算机设备及计算机可读存储介质。
背景技术
在多种业务情形中,存在很多的业务规则需要校验,确保具体的业务数据满足业务条件,若业务规则较多,会导致代码量很大,一般需要if-else判断语句进行各种嵌套即各种循环。发明人发现,其实在大量的嵌套和循环中,真正有用的逻辑就是if-else中的代码所对应的判断逻辑,将这些判断逻辑统一抽取出来看到的就是业务逻辑代码,复杂繁琐的逻辑一方面不利于应用项目的维护升级,另一方面也不利于新人加入到项目的开发。而采用Drools规则引擎是非常适合用来改造这样的代码块。为了发挥Drools规则引擎的最大优势,需要将要校验的数据提前准备好,在Drools中只需要执行相应的业务逻辑判断即可。例如,在新增附件险的过程中有很多的投保规则需要校验,确保投保人与被保人符合购买条件,由于需要检查的点非常多导致代码量就很大,需要if-else各种嵌套各种循环,其实在大量的嵌套和循环中,真正有用的逻辑就是if-else中的代码,将这些判断逻辑统一抽取出来看到的就是业务逻辑代码,而不是被if-else绕晕,采用Drools规则引擎是非常适合用来改造这样的代码块。为了发挥drools规则引擎的最大优势就需要将要校验的数据提前准备好,在Drools中只需要执行相应的业务逻辑判断即可。传统技术中,一般是采用运行需要使用的业务数据时,去数据库中读取相应的业务数据进行处理,这存在对业务数据处理效率较低的问题。
发明内容
本申请提供了一种业务规则校验方法、装置、计算机设备及计算机可读存储介质,能够解决传统技术中业务规则校验效率较低的问题。
第一方面,本申请提供了一种业务规则校验方法,所述方法包括:从预设数据库表中获取进行待校验的预设业务数据,并将所述预设业务数据加载至应用内存的预设大对象中;获取所述预设业务数据相对应的预设业务Drools规则类;根据所述预设业务Drools规则类,判断所述预设业务数据是否满足预设业务条件;若所述预设业务数据满足预设业务条件,判定对所述预设业务数据校验通过;若所述预设业务数据不满足预设业务条件,判定对所述预设业务数据校验未通过。
第二方面,本申请还提供了一种业务规则校验装置,包括:第一获取单元,用于从预设数据库表中获取进行待校验的预设业务数据,并将所述预设业务数据加载至应用内存的预设大对象中;第二获取单元,用于获取所述预设业务数据相对应的预设业务Drools规则类;判断单元,用于根据所述预设业务Drools规则类,判断所述预设业务数据是否满足预设业务条件;第一判定单元,用于若所述预设业务数据满足预设业务条件,判定对所述预设业务数据校验通过;第二判定单元,用于若所述预设业务数据不满足预设业务条件,判定对所述预设业务数据校验未通过。
第三方面,本申请还提供了一种计算机设备,其包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现所述业务规则校验方法的步骤。
第四方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器执行所述业务规则校验方法的步骤。
本申请提供了一种业务规则校验方法、装置、计算机设备及计算机可读存储介质。本申请通过从预设数据库表中获取进行待校验的预设业务数据,并将所述预设业务数据加载至应用内存的预设大对象中,获取所述预设业务数据相对应的预设业务Drools规则类,根据所述预设业务Drools规则类对所述预设业务数据进行校验,由于提前准备业务数据直接关系到Drools使用的效率高低,而在本申请中通过将业务数据提前准备至预设数据库表中,从预设数据库表中获取进行待校验的预设业务数据,并将所述预设业务数据加载至应用内存的预设大对象中,然后获取所述预设业务数据相对应的预设业务Drools规则类,以根据所述预设业务Drools规则类对所述预设业务数据进行校验,以得到对所述业务数据进行校验所对应的校验结果,提高了对规则进行校验的效率。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的业务规则校验方法的一个流程示意图;
图2为本申请实施例提供的业务规则校验方法的第一个子流程示意图;
图3为本申请实施例提供的业务规则校验方法的第二个子流程示意图;
图4为本申请实施例提供的业务规则校验方法的第三个子流程示意图;
图5为本申请实施例提供的业务规则校验方法的第四个子流程示意图;
图6为本申请实施例提供的业务规则校验方法的第五个子流程示意图;
图7为本申请实施例提供的业务规则校验装置的一个示意性框图;以及
图8为本申请实施例提供的计算机设备的示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
请参阅图1,图1为本申请实施例提供的业务规则校验方法的一个流程示意图。如图1所示,该方法包括以下步骤S11-S15:
S11、从预设数据库表中获取进行待校验的预设业务数据,并将所述预设业务数据加载至应用内存的预设大对象中。
其中,大对象为将所有规则校验需要用的数据对象全部定义到一个大对象中,通过该对象可以去执行校验任何一个规则。大对象为能够容纳所有类型的准备数据的对象,无论实际的准备数据中是否包含所有预设类型的数据,例如,考虑到所有的规则可能涉及到所有类型的数据为ABCDEFG 7个类型的数据,就在大对象中设置ABCDEFG,从而大对象能包容所有的可能,即使一个规则中只涉及到了ABC三个类型或者CDEF四个类型的数据,只要在ABCDEFG的子集之内,该大对象都能满足。
具体地,计算机设备运行应用程序,应用程序在计算机设备的内存中会占用一定的内存,为该应用所对应的应用内存。为了提高数据的读写速度,每个规则对应的需要准备的预设业务数据全部加载到应用内存中,所述预设业务数据在项目运行期间是不会有改动的,每个校验规则需要准备哪些预设业务数据在每个版本中都是确定并且固定不变的,可以在应用内存中设置预设大对象,从而可以将所有规则校验需要用的预设业务数据所对应的数据对象全部定义到所述预设大对象中,通过该预设大对象可以去执行校验任何一个规则,当该大对象的数据准备完毕即可调用Drools规则引擎进行逻辑判断。进行业务规则校验前,预先将需要进行校验的业务数据(即需要用的数据,且需要用的业务数据已经全部用字符串标记整理好)配置到预设数据库表中。在进行规则校验时,根据当前需要校验的规则读取所有需要准备的预设业务数据,并将所述预设业务数据加载至应用内存的预设大对象中。其中,需要用的业务数据包括年龄、姓名等需要使用预设规则进行校验的具体业务数据。
其中,判断逻辑又可以称为业务逻辑,需要用的数据就是针对每一个客户的数据,对客户而言业务逻辑都是一致的,是采用同样的判断逻辑针对不同的具体对象进行判断。其中,业务逻辑只是判断的逻辑,具体的数据都是根据当前的客户来获取的,也就是要判断每一个客户的数据是否符合当前条件。例如,在新增附加险投保规则的判断中,就要判断当前投保的客户是否符合业务逻辑(即判断逻辑),例如判断用户的年龄是否符预设投保年龄,判断逻辑就是年龄是否符合预设投保年龄,需要用的数据就是具体的投保用户的年龄数据,例如张三18岁,李四70岁等,然后用判断逻辑针对张三的年龄或者李四年龄进行判断。
S12、获取所述预设业务数据相对应的预设业务Drools规则类。
S13、根据所述预设业务Drools规则类,判断所述预设业务数据是否满足预设业务条件;
S14、若所述预设业务数据满足预设业务条件,判定对所述预设业务数据校验通过;
S15、若所述预设业务数据不满足预设业务条件,判定对所述预设业务数据校验未通过。
具体地,Java属于先编译再运行的语言,程序中对象的类型在编译期就确定下来了,而当程序在运行时可以动态加载预设类,这些预设类因为之前用不到,所以没有被加载到JVM,通过Java的预设动态加载预设类,可以在运行时动态地创建对象并调用其属性,从而获取所述预设业务数据相对应的预设业务Drools规则类,不需要提前在编译期知道运行的对象是谁。因此,Java虚拟机从预设数据库表中获取进行待校验的预设业务数据,并将所述预设业务数据加载至应用内存的预设大对象中后,根据所述预设业务数据,可以动态获取所述预设业务数据相对应的预设业务Drools规则类(即Clasaa),即动态获取各个准备的预设业务数据所对应的具体处理逻辑,再通过预设业务Drools规则类的对象进行反编译,从而获取所述预设业务数据所对应数据对象的各种信息,从而根据所述预设业务Drools规则类对所述预设业务数据进行校验,其中,反射机制常用的类包括:
Java.lang.Class;Java.lang.reflect.Constructor;Java.lang.reflect.Field;Java.lang.reflect.Method;Java.lang.reflect.Modifier等,从而通过反射方式提高对预设业务数据处理的灵活性,当要增加或去除需要准备的数据时不需要修改总的逻辑,添加方法或去掉方法即可。根据所述预设业务Drools规则类,判断所述预设业务数据是否满足预设业务条件,若所述预设业务数据满足预设业务条件,判定对所述预设业务数据校验通过,若所述预设业务数据不满足预设业务条件,判定对所述预设业务数据校验未通过,从而得到对所述预设业务数据进行校验所对应的校验结果。
在一实施例中,所述判断所述预设业务数据是否满足预设业务条件的步骤包括:
判断所述预设业务数据是否包含于预设阈值范围内;
若所述预设业务数据包含于预设阈值范围内,判定所述预设业务数据满足预设业务条件;
若所述预设业务数据未包含于预设阈值范围内,判定所述预设业务数据不满足预设业务条件。
具体地,判断所述预设业务数据是否落在了预设阈值范围内,若所述预设业务数据落在预设阈值范围内,表明所述预设业务数据满足预设数据条件,判定对所述预设业务数据进行校验通过,若所述预设业务数据未包含于预设阈值范围内,表明所述预设业务数据未满足预设数据条件,判定对所述预设业务数据进行校验未通过。例如,在保险领域,针对不同的险种,对投保人有不同年龄要求,在新增附加险的业务中,在一险种中,需要投保人年龄大于18岁及小于70岁等。
在本申请实施例中,通过从预设数据库表中获取进行待校验的预设业务数据,并将所述预设业务数据加载至应用内存的预设大对象中,采取预设JAVA反射方法调取所述预设业务数据相对应的预设业务Drools规则类,根据所述预设业务Drools规则类对所述预设业务数据进行校验,由于提前准备业务数据直接关系到Drools使用的效率高低,而在本申请中通过将业务数据提前准备至预设数据库表中,从预设数据库表中获取进行待校验的预设业务数据,并将所述预设业务数据加载至应用内存的预设大对象中,然后采取预设JAVA反射方法调取所述预设业务数据相对应的预设业务Drools规则类,以根据所述预设业务Drools规则类对所述预设业务数据进行校验,以得到对所述业务数据进行校验所对应的校验结果,提高了对规则进行校验的效率。
请参阅图2,图2为本申请实施例提供的业务规则校验方法的第一个子流程示意图。如图2所示,在该实施例中,所述预设业务数据包括预设字符串,所述从预设数据库表中获取进行待校验的预设业务数据的步骤之前,还包括:
S21、获取预设字符串与所述预设字符串所对应的预设信息之间的映射关系;
S22、根据所述映射关系,获取所述预设字符串所对应的赋值;
S23、将所述字符串及所述字符串所对应的赋值作为所述预设业务数据,并将所述预设业务数据存储至所述预设数据库表。
具体地,在本申请实施例中,可以将预设业务规则与具体的业务数据分割开来,并通过预设字符串建立预设业务规则与具体业务数据之间的关联关系,从而形成“预设业务规则-预设字符串-具体业务数据”这样的关联关系。在进行业务规则开发时,只在业务规则开通中采用通用的预设字符串进行开发即可,无需关注该字符串所对应的具体业务数据,后续针对具体业务数据进行规则校验时,通过预设字符串调用相对应的预设业务规则对所述具体业务数据进行校验即可。获取预设字符串与所述预设字符串所对应的预设信息之间的映射关系,根据所述映射关系,获取所述预设字符串所对应的赋值,将所述字符串及所述字符串所对应的赋值作为所述预设业务数据,并将所述预设业务数据存储至所述预设数据库表。例如,在进行数据准备时,将需要准备的数据事先打好标签,比如aaa代表客户信息,当需要准备aaa数据时就知道要将客户信息查询出来,并进一步放在预设大对象中。
在本申请实施例中,通过获取预设字符串与所述预设字符串所对应的预设信息之间的映射关系,根据所述映射关系,获取所述预设字符串所对应的赋值,将所述字符串及所述字符串所对应的赋值作为所述预设业务数据,并将所述预设业务数据存储至所述预设数据库表,通过将预设业务规则与具体业务数据分割开来,并通过预设字符串建立预设业务规则与所述具体业务数据之间的关联,可以在项目开发过程中,开发人员在开发预设业务规则时,无需关心其它业务规则的预设业务数据准备,也无需关注与其它业务规则间的执行顺序,更无需关注具体业务数据是如何加载进来的,只需要为当前开发的预设业务规则加上该预设业务规则校验时所使用到数据所对应的预设字符串的配置即可,完成相应的逻辑代码编写,能够做到即拿即用,所有预设业务规则使用的相同业务数据不重复准备,同一对象的不同业务数据一次准备,减少微服务间的调用次数,同时,也能够做到业务数据不用不准备,在执行预设业务规则外的业务数据是不会触发准备数据的接口调用的,实现了数据的动态准备,提高了对业务数据的规则校验的效率。
请参阅图3,图3为本申请实施例提供的业务规则校验方法的第二个子流程示意图。如图3所示,在该实施例中,所述从预设数据库表中获取进行待校验的预设业务数据的步骤包括:
S31、响应于业务处理指令,获取所述业务处理指令相对应的预设业务标识;
S32、根据所述预设业务标识,从预设数据库表中获取所述预设业务标识所对应的预设业务数据。
具体地,针对包含对多种业务进行业务规则校验的校验系统,需要对每种业务设置相对应的预设业务标识,响应于业务处理指令,获取所述业务处理指令相对应的预设业务标识,根据所述预设业务标识,从预设数据库表中获取所述预设业务标识所对应的预设业务数据,以便实现针对性的获取待校验的预设业务数据,相比将所有业务数据从预设数据库表中加载至内存,对于预设业务数据实现即用即取,不使用的业务数据不准备,在执行校验规则外的预设业务数据不触发准备的预设业务数据的接口调用,能够提高对业务数据进行获取与加载的效率,提高整个规则校验的效率。
请参阅图4,图4为本申请实施例提供的业务规则校验方法的第三个子流程示意图。如图4所示,在该实施例中,所述获取所述预设业务数据相对应的预设业务Drools规则类的步骤包括:
S41、获取所述预设业务数据中所包含的预设字符串;
S42、根据所述预设字符串,采取预设JAVA反射方式调取所述预设业务数据相对应的预设业务Drools规则类。
其中,Java反射机制是在程序运行时动态加载类并获取类的详细信息,从而操作类或对象的属性和方法,本质是JVM(JVM是JavaVirtual Machine(Java虚拟机))得到Class对象之后,再通过Class对象进行反编译,从而获取对象的各种信息。
具体地,由于Java属于先编译再运行的语言,程序中对象的类型在编译期就确定下来了,而当程序在运行时可能需要动态加载某些类,这些类因为之前用不到,所以没有被加载到JVM,通过Java的预设反射方式,可以在运行时动态地创建对象并调用其属性,不需要提前在编译期知道运行的对象是谁,因此,Java虚拟机从预设数据库表中获取进行待校验的预设业务数据,并将所述预设业务数据加载至应用内存的预设大对象中后,根据所述预设业务数据,通过预设JAVA反射方式动态调用所述预设业务数据相对应的预设业务Drools规则类(即Clasaa),即动态调用各个准备的预设业务数据所对应的具体处理逻辑,再通过预设业务Drools规则类的对象进行反编译,从而获取所述预设业务数据所对应数据对象的各种信息,从而根据所述预设业务Drools规则类对所述预设业务数据进行校验,其中,反射机制常用的类包括:
1)Java.lang.Class;2)Java.lang.reflect.Constructor;3)Java.lang.reflect.Field;4)Java.lang.reflect.Method;5)Java.lang.reflect.Modifier等。
通过反射方式提高对预设业务数据处理的灵活性,当要增加或去除需要准备的数据时不需要修改总的逻辑,添加方法或去掉方法即可。判断对所述预设业务数据进行校验是否通过,若对所述预设业务数据进行校验通过,判定所述预设业务数据满足业务条件,若对所述预设业务数据进行校验未通过,判定所述预设业务数据不满足业务条件,从而得到对所述预设业务数据进行校验所对应的校验结果。
请参阅图5,图5为本申请实施例提供的业务规则校验方法的第四个子流程示意图。如图5所示,在该实施例中,所述预设业务数据包括多个预设字符串,所述采取预设JAVA反射方法调取所述预设业务数据相对应的预设业务Drools规则类的步骤之前,还包括:
S51、根据所有所述预设字符串所对应的预设排序顺序,将所有所述预设字符串进行排序,以得到所有所述预设字符串所对应的排序队列;
S52、根据所述排序队列中所包含的所述预设字符串的先后顺序,判断每两个所述预设字符串是否相同;
S53、若每两个所述预设字符串相同,剔除其中一个所述预设字符串,保留另外一个所述预设字符串;
S54、若每两个所述预设字符串相同,将每个所述预设字符串均保留。
具体地,由于相同的字符串描述相同的业务内容,在不同的校验规则中可以通用,为了避免预设业务数据的重复准备,提高对数据的处理效率,同时也节省内存空间,获取到所有需要准备的预设业务数据所包含数据对象的字符串之后,首先需要对所述预设业务数据所包含的预设字符串进行去重的处理,去重处理是将所有数据对象字符串两两进行比对,如果是重复,去掉重复的,可以通过根据所有所述预设字符串所对应的预设排序顺序,将所有所述预设字符串进行排序,以得到所有所述预设字符串所对应的排序队列,根据所述排序队列中所包含的所述预设字符串的先后顺序,判断每两个所述预设字符串是否相同,若每两个所述预设字符串相同,剔除其中一个所述预设字符串,若每两个所述预设字符串不相同,将两个所述预设字符串均保留,从而对多个所述预设字符串进行去重处理。
请参阅图6,图6为本申请实施例提供的业务规则校验方法的第五个子流程示意图。如图6所示,在该实施例中,所述获取所述预设业务数据相对应的预设业务Drools规则类的步骤包括:
S61、获取所述预设业务数据中所包含的预设字符串;
S62、根据所述预设字符串,基于Javaassist构建所述预设字符串所对应的目标父类;
S63、通过所述目标父类调用所述预设字符串所对应的预设处理逻辑子类,以得到所述预设业务数据相对应的预设业务Drools规则类。
具体地,利用Java的反射机制,是调用预先构建好的所述预设业务数据所对应的预设业务Drools规则类,是根据方法的字符串名,调用各个具体处理逻辑的方法所对应的类,实现的好处是当增加或减少方法时开发人员无需调整准备数据调用的逻辑,符合开闭原则,对后期项目的扩展和改动非常友好。但是带来的弊端就是Java反射的调用性能不理想,如果调用次数很少或只是在加载的时候使用,对应用的性能影响可以忽略,但是若是每一次请求都会调用到Java反射的代码,在高并发情况下对系统性能的影响还是比较明显的。为了兼顾代码的扩展性和应用程序的性能,可以采用Javaassist技术,利用Javaassist提升反射的执行效率,当调用准备数据的代码时,根据需要准备的对象利用java的反射机制动态生成一个Java类作为目标父类,即获取所述预设业务数据中所包含的预设字符串,根据所述预设字符串,基于Javaassist构建所述预设字符串所对应的目标父类,通过所述目标父类调用所述预设字符串所对应的预设处理逻辑子类,以得到所述预设业务数据相对应的预设业务Drools规则类,动态生成的Drools规则类是直接根据字符串调用准备的预设业务数据的处理逻辑,动态生成的目标父类不使用反射机制调用,避免了Java反射带来的性能损耗,这样需要准备相同对象的逻辑代码只需要在第一次动态生成一个Java目标父类,后面的所有调用全部使用该新生成的目标父类,在有准备的预设业务数据的方法发生改变时无需修改准备的预设业务数据调用的逻辑,保证了代码的可扩展性,从而利用Javaassist提升反射的执行效率。
需要说明的是,上述各个实施例所述的业务规则校验方法,可以根据需要将不同实施例中包含的技术特征重新进行组合,以获取组合后的实施方案,但都在本申请要求的保护范围之内。
请参阅图7,图7为本申请实施例提供的业务规则校验装置的一个示意性框图。对应于上述所述业务规则校验方法,本申请实施例还提供一种业务规则校验装置。如图7所示,该业务规则校验装置包括用于执行上述所述业务规则校验方法的单元,该业务规则校验装置可以被配置于计算机设备中。具体地,请参阅图7,该业务规则校验装置70包括第一获取单元71、第二获取单元72、判断单元73、第一判定单元74及第二判定单元75。
其中,第一获取单元71,用于从预设数据库表中获取进行待校验的预设业务数据,并将所述预设业务数据加载至应用内存的预设大对象中;
第二获取单元72,用于获取所述预设业务数据相对应的预设业务Drools规则类;
判断单元73,用于根据所述预设业务Drools规则类,判断所述预设业务数据是否满足预设业务条件;
第一判定单元74,用于若所述预设业务数据满足预设业务条件,判定对所述预设业务数据校验通过;
第二判定单元75,用于若所述预设业务数据不满足预设业务条件,判定对所述预设业务数据校验未通过。
在一实施例中,所述判断单元73包括:
第一判断子单元,用于判断所述预设业务数据是否包含于预设阈值范围内;
第一判定子单元,用于若所述预设业务数据包含于预设阈值范围内,判定所述预设业务数据满足预设业务条件;
第二判定子单元,用于若所述预设业务数据未包含于预设阈值范围内,判定所述预设业务数据不满足预设业务条件。
在一实施例中,所述预设业务数据包括预设字符串,所述业务规则校验装置70还包括:
第三获取单元,用于获取预设字符串与所述预设字符串所对应的预设信息之间的映射关系;
第四获取单元,用于根据所述映射关系,获取所述预设字符串所对应的赋值;
存储单元,用于将所述字符串及所述字符串所对应的赋值作为所述预设业务数据,并将所述预设业务数据存储至所述预设数据库表。
在一实施例中,所述第一获取单元71包括:
第一获取子单元,用于响应于业务处理指令,获取所述业务处理指令相对应的预设业务标识;
第二获取子单元,用于根据所述预设业务标识,从预设数据库表中获取所述预设业务标识所对应的预设业务数据。
在一实施例中,所述第二获取单元72包括:
第三获取子单元,用于获取所述预设业务数据中所包含的预设字符串;
调取子单元,用于根据所述预设字符串,采取预设JAVA反射方式调取所述预设业务数据相对应的预设业务Drools规则类。
在一实施例中,所述预设业务数据包括多个预设字符串,所述第二获取单元72还包括:
排序子单元,用于根据所有所述预设字符串所对应的预设排序顺序,将所有所述预设字符串进行排序,以得到所有所述预设字符串所对应的排序队列;
第二判断子单元,用于根据所述排序队列中所包含的所述预设字符串的先后顺序,判断每两个所述预设字符串是否相同;
剔除子单元,用于若每两个所述预设字符串相同,剔除其中一个所述预设字符串。
在一实施例中,所述第二获取单元72包括:
第四获取子单元,用于获取所述预设业务数据中所包含的预设字符串;
构建子单元,用于根据所述预设字符串,基于Javaassist构建所述预设字符串所对应的目标父类;
调用子单元,用于通过所述目标父类调用所述预设字符串所对应的预设处理逻辑子类,以得到所述预设业务数据相对应的预设业务Drools规则类。
需要说明的是,所属领域的技术人员可以清楚地了解到,上述业务规则校验装置和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
同时,上述业务规则校验装置中各个单元的划分和连接方式仅用于举例说明,在其他实施例中,可将业务规则校验装置按照需要划分为不同的单元,也可将业务规则校验装置中各单元采取不同的连接顺序和方式,以完成上述业务规则校验装置的全部或部分功能。
上述业务规则校验装置可以实现为一种计算机程序的形式,该计算机程序可以在如图8所示的计算机设备上运行。
请参阅图8,图8是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备500可以是台式机电脑或者服务器等计算机设备,也可以是其他设备中的组件或者部件。
参阅图8,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504,所述存储器也可以为易失性存储介质。
该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032被执行时,可使得处理器502执行一种上述业务规则校验方法。
该处理器502用于提供计算和控制能力,以支撑整个计算机设备500的运行。
该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行一种上述业务规则校验方法。
该网络接口505用于与其它设备进行网络通信。本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。例如,在一些实施例中,计算机设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图8所示实施例一致,在此不再赘述。
其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现如下步骤:从预设数据库表中获取进行待校验的预设业务数据,并将所述预设业务数据加载至应用内存的预设大对象中;获取所述预设业务数据相对应的预设业务Drools规则类;根据所述预设业务Drools规则类,判断所述预设业务数据是否满足预设业务条件;若所述预设业务数据满足预设业务条件,判定对所述预设业务数据校验通过;若所述预设业务数据不满足预设业务条件,判定对所述预设业务数据校验未通过。
在一实施例中,所述处理器502在实现所述判断所述预设业务数据是否满足预设业务条件的步骤时,具体实现以下步骤:
判断所述预设业务数据是否包含于预设阈值范围内;
若所述预设业务数据包含于预设阈值范围内,判定所述预设业务数据满足预设业务条件;
若所述预设业务数据未包含于预设阈值范围内,判定所述预设业务数据不满足预设业务条件。
在一实施例中,所述预设业务数据包括预设字符串,所述处理器502在实现所述从预设数据库表中获取进行待校验的预设业务数据的步骤之前,还实现以下步骤:
获取预设字符串与所述预设字符串所对应的预设信息之间的映射关系;
根据所述映射关系,获取所述预设字符串所对应的赋值;
将所述字符串及所述字符串所对应的赋值作为所述预设业务数据,并将所述预设业务数据存储至所述预设数据库表。
在一实施例中,所述处理器502在实现所述从预设数据库表中获取进行待校验的预设业务数据的步骤时,具体实现以下步骤:
响应于业务处理指令,获取所述业务处理指令相对应的预设业务标识;
根据所述预设业务标识,从预设数据库表中获取所述预设业务标识所对应的预设业务数据。
在一实施例中,所述处理器502在实现所述获取所述预设业务数据相对应的预设业务Drools规则类的步骤时,具体实现以下步骤:
获取所述预设业务数据中所包含的预设字符串;
根据所述预设字符串,采取预设JAVA反射方式调取所述预设业务数据相对应的预设业务Drools规则类。
在一实施例中,所述预设业务数据包括多个预设字符串,所述处理器502在实现所述采取预设JAVA反射方法调取所述预设业务数据相对应的预设业务Drools规则类的步骤之前,还实现以下步骤:
根据所有所述预设字符串所对应的预设排序顺序,将所有所述预设字符串进行排序,以得到所有所述预设字符串所对应的排序队列;
根据所述排序队列中所包含的所述预设字符串的先后顺序,判断每两个所述预设字符串是否相同;
若每两个所述预设字符串相同,剔除其中一个所述预设字符串。
在一实施例中,所述处理器502在实现所述获取所述预设业务数据相对应的预设业务Drools规则类的步骤时,具体实现以下步骤:
获取所述预设业务数据中所包含的预设字符串;
根据所述预设字符串,基于Javaassist构建所述预设字符串所对应的目标父类;
通过所述目标父类调用所述预设字符串所对应的预设处理逻辑子类,以得到所述预设业务数据相对应的预设业务Drools规则类。
应当理解,在本申请实施例中,处理器502可以是中央处理单元(CentralProcessingUnit,CPU),该处理器502还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来完成,该计算机程序可存储于一计算机可读存储介质。该计算机程序被该计算机系统中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
因此,本申请还提供一种计算机可读存储介质。该计算机可读存储介质可以为非易失性的计算机可读存储介质,也可以为易失性的计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时使处理器执行如下步骤:
一种计算机程序产品,当其在计算机上运行时,使得计算机执行以上各实施例中所描述的所述业务规则校验方法的步骤。
所述计算机可读存储介质可以是前述设备的内部存储单元,例如设备的硬盘或内存。所述计算机可读存储介质也可以是所述设备的外部存储设备,例如所述设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述计算机可读存储介质还可以既包括所述设备的内部存储单元也包括外部存储设备。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述存储介质为实体的、非瞬时性的存储介质,例如可以是U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、磁碟或者光盘等各种可以存储计算机程序的实体存储介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本申请实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,终端,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
以上所述,仅为本申请的具体实施方式,但本申请明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (8)
1.一种业务规则校验方法,包括:
从预设数据库表中获取进行待校验的预设业务数据,并将所述预设业务数据加载至应用内存的预设大对象中;
获取所述预设业务数据相对应的预设业务Drools规则类;
根据所述预设业务Drools规则类,判断所述预设业务数据是否满足预设业务条件;
若所述预设业务数据满足预设业务条件,判定对所述预设业务数据校验通过;
若所述预设业务数据不满足预设业务条件,判定对所述预设业务数据校验未通过;
所述预设业务数据包括预设字符串,所述从预设数据库表中获取进行待校验的预设业务数据的步骤之前,还包括:
获取预设字符串与所述预设字符串所对应的预设信息之间的映射关系;
根据所述映射关系,获取所述预设字符串所对应的赋值;
将所述字符串及所述字符串所对应的赋值作为所述预设业务数据,并将所述预设业务数据存储至所述预设数据库表;
所述获取所述预设业务数据相对应的预设业务Drools规则类的步骤包括:
获取所述预设业务数据中所包含的预设字符串;
根据所述预设字符串,采取预设JAVA反射方式调取所述预设业务数据相对应的预设业务Drools规则类。
2.根据权利要求1所述业务规则校验方法,其特征在于,所述判断所述预设业务数据是否满足预设业务条件的步骤包括:
判断所述预设业务数据是否包含于预设阈值范围内;
若所述预设业务数据包含于预设阈值范围内,判定所述预设业务数据满足预设业务条件;
若所述预设业务数据未包含于预设阈值范围内,判定所述预设业务数据不满足预设业务条件。
3.根据权利要求1所述业务规则校验方法,其特征在于,所述从预设数据库表中获取进行待校验的预设业务数据的步骤包括:
响应于业务处理指令,获取所述业务处理指令相对应的预设业务标识;
根据所述预设业务标识,从预设数据库表中获取所述预设业务标识所对应的预设业务数据。
4.根据权利要求1所述业务规则校验方法,其特征在于,所述预设业务数据包括多个预设字符串,所述采取预设JAVA反射方式调取所述预设业务数据相对应的预设业务Drools规则类的步骤之前,还包括:
根据所有所述预设字符串所对应的预设排序顺序,将所有所述预设字符串进行排序,以得到所有所述预设字符串所对应的排序队列;
根据所述排序队列中所包含的所述预设字符串的先后顺序,判断每两个所述预设字符串是否相同;
若每两个所述预设字符串相同,剔除其中一个所述预设字符串。
5.根据权利要求1所述业务规则校验方法,其特征在于,所述获取所述预设业务数据相对应的预设业务Drools规则类的步骤包括:
获取所述预设业务数据中所包含的预设字符串;
根据所述预设字符串,基于Javaassist构建所述预设字符串所对应的目标父类;
通过所述目标父类调用所述预设字符串所对应的预设处理逻辑子类,以得到所述预设业务数据相对应的预设业务Drools规则类。
6.一种业务规则校验装置,其特征在于,包括:
第一获取单元,用于从预设数据库表中获取进行待校验的预设业务数据,并将所述预设业务数据加载至应用内存的预设大对象中;
第二获取单元,用于获取所述预设业务数据相对应的预设业务Drools规则类;
判断单元,用于根据所述预设业务Drools规则类,判断所述预设业务数据是否满足预设业务条件;
第一判定单元,用于若所述预设业务数据满足预设业务条件,判定对所述预设业务数据校验通过;
第二判定单元,用于若所述预设业务数据不满足预设业务条件,判定对所述预设业务数据校验未通过;
所述预设业务数据包括预设字符串,所述业务规则校验装置还包括:
第三获取单元,用于获取预设字符串与所述预设字符串所对应的预设信息之间的映射关系;
第四获取单元,用于根据所述映射关系,获取所述预设字符串所对应的赋值;
存储单元,用于将所述字符串及所述字符串所对应的赋值作为所述预设业务数据,并将所述预设业务数据存储至所述预设数据库表;
所述第二获取单元包括:
第三获取子单元,用于获取所述预设业务数据中所包含的预设字符串;
调取子单元,用于根据所述预设字符串,采取预设JAVA反射方式调取所述预设业务数据相对应的预设业务Drools规则类。
7.一种计算机设备,其特征在于,所述计算机设备包括存储器以及与所述存储器相连的处理器;所述存储器用于存储计算机程序;所述处理器用于运行所述计算机程序,以执行如权利要求1-5任一项所述方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现如权利要求1-5中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011562146.7A CN112685410B (zh) | 2020-12-25 | 2020-12-25 | 业务规则校验方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011562146.7A CN112685410B (zh) | 2020-12-25 | 2020-12-25 | 业务规则校验方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112685410A CN112685410A (zh) | 2021-04-20 |
CN112685410B true CN112685410B (zh) | 2023-08-29 |
Family
ID=75451658
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011562146.7A Active CN112685410B (zh) | 2020-12-25 | 2020-12-25 | 业务规则校验方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112685410B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312387A (zh) * | 2021-05-17 | 2021-08-27 | 远光软件股份有限公司 | 业务数据的校验方法、装置、计算机设备和存储介质 |
CN113360491B (zh) * | 2021-06-30 | 2024-03-29 | 杭州数梦工场科技有限公司 | 数据质量检验方法、装置、电子设备及存储介质 |
CN113535146A (zh) * | 2021-07-14 | 2021-10-22 | 浙江集享电子商务有限公司 | 规则校验方法、装置、电子装置和存储介质 |
CN115185616B (zh) * | 2022-09-14 | 2022-12-13 | 深圳依时货拉拉科技有限公司 | 业务规则引擎装置及业务规则引擎的处理方法 |
CN116340832A (zh) * | 2023-05-25 | 2023-06-27 | 北京城建智控科技股份有限公司 | 一种列控基础数据校验方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6868413B1 (en) * | 2001-05-10 | 2005-03-15 | Networks Associates Technology, Inc. | System and method for customizing and processing business logic rules in a business process system |
CN109800269A (zh) * | 2018-12-13 | 2019-05-24 | 中国平安财产保险股份有限公司 | 数据管理方法、装置、计算机设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005076126A2 (en) * | 2004-02-04 | 2005-08-18 | Sap Aktiengesellschaft | Method, system and software application for real time accounting data processing |
-
2020
- 2020-12-25 CN CN202011562146.7A patent/CN112685410B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6868413B1 (en) * | 2001-05-10 | 2005-03-15 | Networks Associates Technology, Inc. | System and method for customizing and processing business logic rules in a business process system |
CN109800269A (zh) * | 2018-12-13 | 2019-05-24 | 中国平安财产保险股份有限公司 | 数据管理方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112685410A (zh) | 2021-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112685410B (zh) | 业务规则校验方法、装置、计算机设备及存储介质 | |
CN109976761B (zh) | 软件开发工具包的生成方法、装置及终端设备 | |
CN107392619B (zh) | 智能合约处理方法及装置 | |
CN103069385B (zh) | 用于动态加载基于图的计算的系统和方法 | |
US20150355898A1 (en) | Hot-update method and apparatus | |
JP6469028B2 (ja) | オペレーティング・システム・リソースに対する機械語のネイティブイメージのアクセス制御のシステム及び方法 | |
JP2011170879A (ja) | 依存性グラフのパラメータのスコーピング | |
US10303467B2 (en) | Target typing-dependent combinatorial code analysis | |
US20090193444A1 (en) | Techniques for creating and managing extensions | |
WO2021022713A1 (zh) | 分布式的模块升级方法、装置及存储介质 | |
CN110968437A (zh) | 一种基于Java智能合约的单个合约并行执行的方法、装置、设备及介质 | |
US8479177B2 (en) | Attribute based method redirection | |
CN111338622B (zh) | 供应链代码识别方法、装置、服务器及可读存储介质 | |
CN115185550A (zh) | 服务部署方法、装置、计算机设备及存储介质 | |
US7987457B2 (en) | Targeted patching for native generation images | |
CN111897711A (zh) | 代码中bug的定位方法、装置、电子设备及可读存储介质 | |
CN111338716A (zh) | 基于规则引擎的数据处理方法、装置及终端设备 | |
US8762976B2 (en) | Static extensibility models with dynamic languages and scripts | |
CN110688320B (zh) | 全局变量的检测方法、装置及终端设备 | |
CN109426546B (zh) | 应用启动方法及装置、计算机存储介质及设备 | |
CN111880803B (zh) | 一种应用于多平台的软件构建方法及装置 | |
CN112667631B (zh) | 业务字段自动编辑方法、装置、设备及存储介质 | |
CN110489124B (zh) | 源代码执行方法、装置、存储介质及计算机设备 | |
CN115167862A (zh) | 补丁方法及相关设备 | |
JP2016029547A (ja) | 実行モジュール生成装置、及び電子制御装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |