CN108718241B - 一种计费方法和装置 - Google Patents
一种计费方法和装置 Download PDFInfo
- Publication number
- CN108718241B CN108718241B CN201810437111.7A CN201810437111A CN108718241B CN 108718241 B CN108718241 B CN 108718241B CN 201810437111 A CN201810437111 A CN 201810437111A CN 108718241 B CN108718241 B CN 108718241B
- Authority
- CN
- China
- Prior art keywords
- charging
- service data
- link
- charged
- rule
- 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
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000005538 encapsulation Methods 0.000 claims abstract description 48
- 230000014509 gene expression Effects 0.000 claims abstract description 23
- 238000011156 evaluation Methods 0.000 claims abstract description 6
- 238000005253 cladding Methods 0.000 claims description 130
- 238000013515 script Methods 0.000 claims description 104
- 230000006870 function Effects 0.000 claims description 47
- 238000004364 calculation method Methods 0.000 claims description 22
- 238000004806 packaging method and process Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 9
- 230000008878 coupling Effects 0.000 abstract description 8
- 238000010168 coupling process Methods 0.000 abstract description 8
- 238000005859 coupling reaction Methods 0.000 abstract description 8
- 238000012423 maintenance Methods 0.000 abstract description 8
- 238000012937 correction Methods 0.000 abstract description 7
- 235000019580 granularity Nutrition 0.000 description 22
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000013517 stratification Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000000739 chaotic effect Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000002075 main ingredient Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/14—Charging, metering or billing arrangements for data wireline or wireless communications
- H04L12/1403—Architecture for metering, charging or billing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M15/00—Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
- H04M15/70—Administration or customization aspects; Counter-checking correct charges
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种计费方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:根据待计费业务数据执行预设操作,以确定所述待计费业务数据的责任计费链路,所述预设操作包括判断赋值操作、对象封装操作、接口调用操作;根据所述责任计费链路的预配置计费类型对应的计费运算关系式,以及所述待计费业务数据在所述责任计费链路下的计费运算量值、调计费规则对象属性值集合,生成对所述待计费业务数据的计费结果。使计费规则前置集中化,无需结果修正,逻辑清晰易理解,减少规则重复混乱调用,减少计费耦合性与错误率,可复用性强,新计费规则接入灵活、维护简单、工作量小。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种计费方法和装置。
背景技术
随着互联网技术的发展,财务软件的计费功能不断受到挑战,业务种类越来越多的,且每种业务的计费复杂性越来越高,例如物流计费,全国不同发送站点与接收站点,而且运费的计费有按照体积、重量及包裹数等,不同的运输商家或个人又有不同优惠方案等。
现有的计费方法与装置是按照计费标识信息找到计费节点,然后触发该计费节点下计费规则进行计费。在获得计费结果后需要再次重复进行判断、赋值、调用接口、再次运算以过滤或修正计费结果等操作,计费逻辑非常复杂,并且计费规则是为某个计费标识对应的一套规则,每增加一个业务就建立一条计费规则,导致工作量大、不灵活。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
现有方案在获得计费结果后需要再次重复进行判断、赋值、调用接口、再次运算以过滤或修正计费结果等操作,计费逻辑非常复杂,计费规则不清晰、不易理解、容易出错,整个计费方案难以整体理出成套的计费体系;
在增加新的计费规则时工作量大、不灵活,可复用性差。
发明内容
有鉴于此,本发明实施例提供一种计费方法和装置,能够实现计费规则前置集中化,无需后续的结果修正步骤即可得到正确的计费结果,计费逻辑清晰易理解,减少同样规则重复混乱调用,并减少计费的耦合性与错误率,计费规则层次清晰,便于形成直观化的计费体系,计费规则以最小粒度划分,且最小粒度可组合为不同等级粒度,实现不同粒度自由组合、灵活调度,可复用性强,新的计费规则接入灵活、维护简单、工作量小。
为实现上述目的,根据本发明实施例的一个方面,提供了一种计费方法。
一种计费方法,包括:根据待计费业务数据执行预设操作,以确定所述待计费业务数据的责任计费链路,所述预设操作包括判断赋值操作、对象封装操作、接口调用操作;根据所述责任计费链路的预配置计费类型对应的计费运算关系式,以及所述待计费业务数据在所述责任计费链路下的计费运算量值、调计费规则对象属性值集合,生成对所述待计费业务数据的计费结果。
可选地,所述判断赋值操作是按照判断赋值规则组装待计费业务数据的操作,所述对象封装操作是按照对象封装规则生成调计费规则对象集合的操作,所述接口调用操作是通过脚本集调用业务计费规则接口的操作。
可选地,根据待计费业务数据执行预设操作,以确定所述待计费业务数据的责任计费链路的步骤,包括:遍历预先配置的各计费链路,其中,在被遍历到的每一计费链路,按照对应该计费链路的判断赋值规则组装待计费业务数据,以生成所述待计费业务数据在该计费链路下的调计费规则对象属性值集合;根据所述调计费规则对象属性值集合,按照对应该计费链路的对象封装规则,生成所述待计费业务数据在该计费链路下的调计费规则对象集合;根据所述调计费规则对象集合,通过对应该计费链路的脚本集调用业务计费规则接口,得到所述待计费业务数据在该计费链路下的计费类型和计费运算量值;当所述待计费业务数据在该计费链路下的计费类型与该计费链路的预配置计费类型一致时,终止遍历,并将该计费链路作为所述待计费业务数据的责任计费链路。
可选地,所述判断赋值规则、所述对象封装规则、所述脚本集可在不同计费链路间复用。
可选地,按照对应该计费链路的判断赋值规则组装待计费业务数据,以生成所述待计费业务数据在该计费链路下的调计费规则对象属性值集合的步骤,包括:按照对应该计费链路的判断赋值规则,判断所述待计费业务数据是否符合预设条件,并根据判断结果,对与该计费链路的预配置计费类型相应的调计费规则对象属性赋值,以生成所述待计费业务数据在该计费链路下的调计费规则对象属性值集合。
可选地,根据所述调计费规则对象属性值集合,按照对应该计费链路的对象封装规则,生成所述待计费业务数据在该计费链路下的调计费规则对象集合的步骤,包括:按照与该计费链路的预配置计费类型相应的对象封装规则,从所述调计费规则对象属性值集合中选取一组或多组调计费规则对象属性值;将选取的每组调计费规则对象属性值分别封装为调计费规则对象,以生成所述待计费业务数据在该计费链路下的调计费规则对象集合。
可选地,生成对所述待计费业务数据的计费结果的步骤之后,还包括:输出对所述待计费业务数据的计费结果数据,其中,所述计费结果数据包括所述计费结果和所述计费结果的关联信息,所述关联信息为所述待计费业务数据在所述责任计费链路下的调计费规则对象属性值集合中,除被选取的一组或多组调计费规则对象属性值之外的剩余调计费规则对象属性值。
可选地,所述待计费业务数据在所述责任计费链路下的计费运算量值包括:第一计费运算量值和第二计费运算量值,根据所述责任计费链路的预配置计费类型对应的计费运算关系式,以及所述待计费业务数据在所述责任计费链路下的计费运算量值、调计费规则对象属性值集合,生成对所述待计费业务数据的计费结果的步骤,包括:根据所述责任计费链路的预配置计费类型对应的计费运算关系式、所述待计费业务数据在所述责任计费链路下的调计费规则对象属性值集合中的特定调计费规则对象属性值,以及所述第一计费运算量值,生成对所述待计费业务数据的第一计费结果;根据所述第二计费运算量值以及目标调计费规则对象属性值,按照预配置的运算规则,生成对所述待计费业务数据的第二计费结果,其中,从所述待计费业务数据在责任计费链路下的调计费规则对象属性值集合中,获取所述目标调计费规则对象属性值;根据所述第一计费结果和所述第二计费结果生成对所述待计费业务数据的计费结果。
根据本发明实施例的另一方面,提供了一种计费装置。
一种计费装置,其特征在于,包括:基础数据决策集可复用模块,包括分别对应各计费链路的基础数据包层;调计费规则对象维度组装可复用模块,包括分别对应各计费链路的服务数据包层;脚本接口集可复用模块,包括分别对应各计费链路的脚本函数包层;计费运算模块,包括分别对应各计费链路的计费运算包层;其中,基础数据包层、服务数据包层、脚本函数包层,用于根据待计费业务数据执行预设操作,以确定所述待计费业务数据的责任计费链路;计费运算包层用于当对应的计费链路为所述待计费业务数据的责任计费链路时,根据所述责任计费链路的预配置计费类型对应的计费运算关系式,以及所述待计费业务数据在所述责任计费链路下的计费运算量值、调计费规则对象属性值集合,生成对所述待计费业务数据的计费结果。
可选地,每一基础数据包层配置至少一个基础数据决策集单元,每一服务数据包层配置至少一个调计费规则对象维度组装单元,每一脚本函数包层配置至少一个脚本接口集单元,对应任一所述计费链路:所述基础数据包层用于按照配置的各基础数据决策集单元中的判断赋值规则组装待计费业务数据,以生成所述待计费业务数据在该计费链路下的调计费规则对象属性值集合;所述服务数据包层用于根据所述调计费规则对象属性值集合,按照配置的各调计费规则对象维度组装单元中的对象封装规则,生成所述待计费业务数据在该计费链路下的调计费规则对象集合;所述脚本函数包层用于根据所述调计费规则对象集合,通过配置的各脚本接口集单元中的脚本集调用业务计费规则接口,得到所述待计费业务数据在该计费链路下的计费类型和计费运算量值,当所述待计费业务数据在该计费链路下的计费类型与该计费链路的预配置计费类型一致时,确定该计费链路为所述待计费业务数据的责任计费链路。
可选地,所述基础数据决策集可复用模块还用于:将同一基础数据决策集单元在不同基础数据包层间复用;所述调计费规则对象维度组装可复用模块还用于:将同一调计费规则对象维度组装单元在不同服务数据包层间复用;所述脚本接口集可复用模块还用于:将同一脚本接口集单元在不同脚本函数包层间复用。
可选地,所述基础数据决策集可复用模块还用于:将同一基础数据包层在不同计费链路间复用;所述调计费规则对象维度组装可复用模块还用于:将同一服务数据包层在不同链路间复用;所述脚本接口集可复用模块还用于:将同一脚本函数包层在不同计费链路间复用。
可选地,所述基础数据包层还用于:按照配置的各基础数据决策集单元中的判断赋值规则,判断所述待计费业务数据是否符合预设条件,并根据判断结果,对与所述该计费链路的预配置计费类型相应的调计费规则对象属性赋值,以生成所述待计费业务数据在所述该计费链路下的调计费规则对象属性值集合。
可选地,所述服务数据包层还用于:按照配置的各调计费规则对象维度组装单元中的对象封装规则,从所述调计费规则对象属性值集合中选取一组或多组调计费规则对象属性值;将选取的每组调计费规则对象属性值分别封装为调计费规则对象,以生成所述待计费业务数据在所述该计费链路下的调计费规则对象集合。
可选地,还包括计费结果数据输出模块,用于:输出对所述待计费业务数据的计费结果数据,其中,所述计费结果数据包括所述计费结果和所述计费结果的关联信息,所述关联信息为所述待计费业务数据在所述责任计费链路下的调计费规则对象属性值集合中,除被选取的一组或多组调计费规则对象属性值之外的剩余调计费规则对象属性值。
可选地,所述待计费业务数据在所述责任计费链路下的计费运算量值包括:第一计费运算量值和第二计费运算量值,所述计费运算包层还用于:根据所述责任计费链路的预配置计费类型对应的计费运算关系式、所述待计费业务数据在所述责任计费链路下的调计费规则对象属性值集合中的特定调计费规则对象属性值,以及所述第一计费运算量值,生成对所述待计费业务数据的第一计费结果;根据所述第二计费运算量值以及目标调计费规则对象属性值,按照预配置的运算规则,生成对所述待计费业务数据的第二计费结果,其中,从所述待计费业务数据在责任计费链路下的调计费规则对象属性值集合中,获取所述目标调计费规则对象属性值;根据所述第一计费结果和所述第二计费结果生成对所述待计费业务数据的计费结果。
根据本发明实施例的又一方面,提供了一种电子设备。
一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现本发明提供的计费方法。
根据本发明实施例的又一方面,提供了一种计算机可读介质。
一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明提供的计费方法。
上述发明中的一个实施例具有如下优点或有益效果:本发明实施例把所有的判断、赋值、调用接口、计费运算放在获得计费结果之前,而无需在获得计费结果后重复地判断、赋值、调用接口、再次运算去过滤或修正计算出的计费结果。能够实现计费规则前置集中化,无需后续的结果修正步骤即可得到正确的计费结果,计费逻辑清晰易理解,减少同样规则重复混乱调用,并减少计费的耦合性与错误率,每一计费链路对应各自的判断赋值规则、对象封装规则、脚本集、计费运算关系式,构成垂直分层计费体系,且各层的判断赋值规则、对象封装规则、脚本集可在不同计费链路间复用,构成水平分层计费体系,并且,计费装置通过基础数据包层、服务数据包层、脚本函数包层、计费运算包层实现垂直分层,且基础数据决策集单元、调计费规则对象维度组装单元、脚本接口集单元、基础数据包层、服务数据包层、脚本函数包层均可在不同计费链路间复用,体现水平分层。计费规则层次清晰,便于形成直观化的计费体系,使得计费规则以最小粒度划分,且最小粒度可组合为不同等级粒度,实现不同粒度自由组合、灵活调度,可复用性强,新的计费规则接入灵活、维护简单、工作量小。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的计费方法的主要步骤示意图;
图2是根据本发明实施例的计费装置的主要模块示意图;
图3是根据本发明实施例的计费装置的示例性构成框图;
图4是本发明实施例可以应用于其中的示例性系统架构图;
图5是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明实施例的计费方法的主要步骤示意图。
如图1所示,本发明实施例的计费方法主要包括如下的步骤S101至步骤S106。
步骤S101:接收到待计费业务数据之后,遍历预先配置的各计费链路,其中,在被遍历到的每一计费链路,执行步骤S102至步骤S104。
在步骤S102至步骤S104中,根据待计费业务数据执行预设操作,以在步骤S105确定待计费业务数据的责任计费链路,该预设操作包括判断赋值操作、对象封装操作、接口调用操作,判断赋值操作是按照判断赋值规则组装待计费业务数据的操作,具体地,即按照判断赋值规则,判断待计费业务数据是否符合预设条件,并根据判断结果,对调计费规则对象属性赋值以得到调计费规则对象属性值集合的操作。对象封装操作是按照对象封装规则生成调计费规则对象集合的操作。接口调用操作是通过脚本集调用业务计费规则接口的操作。其中,判断赋值规则、对象封装规则、脚本集是针对某一计费链路而言的,不同的计费链路对应各自的判断赋值规则、对象封装规则、脚本集,判断赋值操作、对象封装操作、接口调用操作的详细执行过程在下文将详细介绍。
其中,预先配置的每一计费链路对应一预配置计费类型,预配置计费类型是根据计费业务需求预先配置的一个或多个计费类型,当根据计费业务需求,需要按照某计费类型来对业务数据计费,则设置该计费类型作为预配置计费类型。
计费链路是根据计费业务需求而生成的、与预配置计费类型相对应的计费逻辑链,在本发明实施例的的计费方法中,各计费链路有对应的判断赋值规则、对象封装规则、调用业务计费规则接口所使用的脚本集、和计费运算关系式。从而,使得本发明实施例的计费规则以最小粒度划分,灵活调度。
以下为了便于说明,将当前被遍历到的一个计费链路称为当前计费链路。
步骤S102:按照对应当前计费链路的判断赋值规则组装待计费业务数据,以生成待计费业务数据在当前计费链路下的调计费规则对象属性值集合。
待计费业务数据可以通过业务系统推送获得。
按照对应当前计费链路的判断赋值规则组装待计费业务数据,即将待计费业务数据通过对应当前计费链路的判断赋值规则,以待生成的调计费规则对象属性维度进行判断赋值的过程,组装公式如下:O=AB。其中:
其中,
m是待生成的调计费规则对象属性个数;n为待计费业务数据的属性个数,O为调计费规则对象属性值集合,B为待计费业务数据的属性集合,A为当前计费链路的判断赋值规则的集合,A矩阵中的每一行对应一个判断赋值规则,每一个Aij,(1≤i≤m,1≤j≤n)表示一个判断赋值关系式。
根据上述组装公式生成O的过程,即:按照对应当前计费链路的判断赋值规则,判断待计费业务数据是否符合预设条件,并根据判断结果,对与当前计费链路的预配置计费类型相应的调计费规则对象属性赋值,以生成待计费业务数据在当前计费链路下的调计费规则对象属性值集合。
与当前计费链路的预配置计费类型相应的调计费规则对象属性,是根据计费业务需求而设置的一个或多个属性。根据计费业务需求,预先设置了对应每一预配置计费类型的调计费规则对象属性,例如,根据业务需求,对应某一预配置计费类型的调计费规则对象属性可以包括商家ID(标识)、重量、件型、运单类型、支付方式、保险费、报价类型、起始地、目的地等,具体设置哪些调计费规则对象属性与业务需求相关。
对应每一计费链路的判断赋值规则可以配置一个或多个,配置的判断赋值规则的数量与该计费链路的预配置计费类型相应的调计费规则对象属性个数相关,每一判断赋值规则对应一个调计费规则对象属性。可以根据计费需求和调计费规则对象属性的个数,从多个已存判断赋值规则中选取所需的判断赋值规则,每个判断赋值规则包括至少一个判断赋值关系式,判断赋值关系式的特殊形式可以为大于零的常数值,当判断赋值关系式为大于零的常数值时,执行判断的预设条件可以视为空,即无需判断步骤,而直接根据待计费业务数据对相应的调计费规则对象属性赋值。如果上述A矩阵中某项Aij,(1≤i≤m,1≤j≤n)=0,则表示不配置该项判断赋值关系式。
按照对应当前计费链路的判断赋值规则,判断待计费业务数据是否符合预设条件,即:对于当前计费链路的预配置计费类型相应的每一调计费规则对象属性,根据与该调计费规则对象属性对应的判断赋值规则中的判断赋值关系式,判断待计费业务数据的一个或多个属性是否符合判断赋值关系式中的预设条件。如果符合,则对该调计费规则对象属性赋一个预设值,如果不符合,则对该调计费规则对象属性赋另一个预设值。例如,某一判断赋值规则中的判断赋值关系式用于判断待计费业务数据中的重量这一属性的值是否大于10千克,如果重量大于10千克,则对件型这一调计费规则对象属性赋值为大件,如果重量小于或等于10千克,则对件型赋值为小件。
步骤S103:根据待计费业务数据在当前计费链路下的调计费规则对象属性值集合,按照对应当前计费链路的对象封装规则,生成待计费业务数据在当前计费链路下的调计费规则对象集合。
步骤S103即根据待计费业务数据在当前计费链路下的调计费规则对象属性值集合,按照对应当前计费链路的对象封装规则,以调计费规则对象维度封装生成调计费规则对象集合的过程,具体可以包括:按照与该计费链路的预配置计费类型相应的对象封装规则,从调计费规则对象属性值集合中选取一组或多组调计费规则对象属性值;将选取的每组调计费规则对象属性值分别封装为一个对象,例如封装为一个Java对象,这些对象称为调计费规则对象,用作调用业务计费规则接口的入参(输入参数),具体调用一个业务计费规则接口需要哪些调计费规则对象作为入参是根据业务需求预先确定的。生成的调计费规则对象的集合即待计费业务数据在该计费链路下的调计费规则对象集合。
以S表示调计费规则对象集合,S=[S1 S2 ... SI],其中,S1、S2…SI为调计费规则对象集合中的I个调计费规则对象,每个调计费规则对象由调计费规则对象属性值集合O中的一个或多个属性值Op、Oq…Oj封装得到,i=1,2…I,1≤p≤m,1≤q≤m,1≤j≤m。
步骤S104:根据待计费业务数据在当前计费链路下的调计费规则对象集合,通过对应当前计费链路的脚本集调用业务计费规则接口,得到待计费业务数据在当前计费链路下的计费类型和计费运算量值。
脚本集可以是通过代码编辑调用接口的脚本的集合,接口的输入是调计费规则对象集合S中的调计费规则对象,接口的输出是计费类型或计费运算量值。该接口称为业务计费规则接口,调用该接口可以查询得到待计费业务数据在当前计费链路下的计费类型和计费运算量值。
对应各计费链路的对象封装规则从多个已存对象封装规则中选取,对应各计费链路的脚本集从多个已存脚本集中选取,且每个判断赋值规则、每个对象封装规则、每个脚本集可在不同计费链路间复用。从而,实现不同粒度可自由组合、灵活调度,可复用性强,新的计费规则接入灵活、维护简单、工作量小。
步骤S105:当待计费业务数据在当前计费链路下的计费类型与当前计费链路的预配置计费类型一致时,终止遍历,并将当前计费链路作为待计费业务数据的责任计费链路。
需要说明的是,步骤S105中的终止遍历是指终止全部遍历过程(终止遍历所有计费链路),即:当待计费业务数据在当前计费链路下的计费类型与当前计费链路的预配置计费类型一致时,终止遍历所有计费链路。如果待计费业务数据在当前计费链路下的计费类型与当前计费链路的预配置计费类型不一致,则结束对当前计费链路的遍历,而继续遍历当前计费链路的下一计费链路。
待计费业务数据的责任计费链路的含义可以解释为:负责对待计费业务数据执行计费运算的计费链路。本发明实施例的计费方法基于责任链模式形成一套完整的计费决策流体系,以计费类型为责任判断点,每种预配置计费类型对应一个计费链路,每一计费链路对应各自的判断赋值规则、对象封装规则、脚本集、计费运算关系式,构成垂直分层计费体系,且各层的判断赋值规则、对象封装规则、脚本集可在不同计费链路间复用,构成水平分层计费体系,计费逻辑清晰易理解,减少同样规则重复混乱调用,并减少计费的耦合性与错误率,计费规则层次清晰,便于形成直观化的计费体系,新的计费规则接入灵活、维护简单、工作量小。
步骤S106:根据该责任计费链路的预配置计费类型对应的计费运算关系式,以及待计费业务数据在责任计费链路下的计费运算量值、调计费规则对象属性值集合,生成对待计费业务数据的计费结果。
每一预配置计费类型对应一类计费运算关系式f,预配置计费类型与计费运算关系式的对应关系可以根据计费业务需求预先设定并保存。
步骤S106之后,还可以输出对待计费业务数据的计费结果数据,其中,计费结果数据可以包括计费结果和计费结果的关联信息,该关联信息可以为待计费业务数据在责任计费链路下的调计费规则对象属性值集合中,除步骤S103中被选取的一组或多组调计费规则对象属性值之外的剩余调计费规则对象属性值。
待计费业务数据在责任计费链路下的计费运算量值可以包括:第一计费运算量值和第二计费运算量值。需要说明的是,待计费业务数据在各计费链路下的计费运算量值均包括上述的第一计费运算量值和第二计费运算量值两部分。但是,对于除待计费业务数据的责任计费链路之外的其他计费链路,在步骤S104之后便停止当前遍历而继续遍历其他计费链路,因此在该其他计费链路不执行步骤S105至步骤S106,因此,步骤S106只需要待计费业务数据在责任计费链路下的计费运算量值(第一计费运算量值和第二计费运算量值)。
步骤S106具体可以包括:根据责任计费链路的预配置计费类型对应的计费运算关系式、待计费业务数据在责任计费链路下的调计费规则对象属性值集合中的特定调计费规则对象属性值,以及第一计费运算量值,生成对待计费业务数据的第一计费结果;根据第二计费运算量值以及目标调计费规则对象属性值,按照预配置的运算规则,生成对待计费业务数据的第二计费结果,其中,从待计费业务数据在责任计费链路下的调计费规则对象属性值集合中,获取目标调计费规则对象属性值;根据第一计费结果和第二计费结果生成对待计费业务数据的计费结果。
目标调计费规则对象属性值是与预配置的运算规则中各变量对应的调计费规则对象属性值。例如预配置的运算规则用于计算拒收保险费用,其中一个变量对应为保险费,则从待计费业务数据在责任计费链路下的调计费规则对象属性值集合中,获取保险费这一调计费规则对象属性值即为目标调计费规则对象属性值。
特定调计费规则对象属性值是待计费业务数据在责任计费链路下的调计费规则对象属性值集合中,与责任计费链路的预配置计费类型对应的计费运算关系式中的一个变量对应的调计费规则对象属性值。例如计费运算关系式中一变量表示重量,则从该调计费规则对象属性值集合获取重量这一调计费规则对象属性值,即为特定调计费规则对象属性值。
根据责任计费链路的预配置计费类型对应的计费运算关系式、待计费业务数据在责任计费链路下的调计费规则对象属性值集合中的特定调计费规则对象属性值,以及第一计费运算量值,生成对待计费业务数据的第一计费结果,具体地,可以将第一计费运算量值和该特定调计费规则对象属性值代入该计费运算关系式,得到第一计费结果。由于该计费运算关系式是与预配置计费类型相对应的,因此,第一计费结果也是与预配置计费类型相关的。在对运单计费等应用场景下,该第一计费结果可以是该运单对应的运费。
根据第二计费运算量值以及目标调计费规则对象属性值,按照预配置的运算规则,生成对待计费业务数据的第二计费结果,具体地,将第二计费运算量值以及目标调计费规则对象属性值,代入预配置的运算规则中的运算关系式,得到第二计费结果。在对运单计费等应用场景下,该第二计费结果可以是与各商家对应的一些费用(不包括运费),例如,拒收保险费用。预配置的运算规则可以为w1=w2*V1,其中,w1表示第二计费结果,w2表示目标调计费规则对象属性值,V1表示第二计费运算量值。以w1为拒收保险费用为例,当生成的待计费业务数据在责任计费链路下的调计费规则对象属性值集合中某一调计费规则对象属性值为商家的保险费,待计费业务数据在责任计费链路下的计费运算量值中包括拒收保险费率,则按照w1=w2*V1便可以自动生成该商家的拒收保险费用。该第二计费结果通常是与预配置计费类型不相关的。
下面通过具体的计费应用场景介绍本发明实施例的计费方法。
以待计费业务数据为运单数据为例,接收到运单数据之后,遍历预先配置的各计费链路。
对于当前被遍历到的一个计费链路(即当前计费链路),可以按照对应当前计费链路的判断赋值规则组装该运单数据。
运单数据具有多个属性,具体包括:商家ID(标识)、配送状态、重量(即该运单中商品的重量)、体积(即该运单中商品的体积)、保险费、实收金额、起始地(即该运单的起始地)、目的地(即该运单的目的地)。
本例中假设当前计费链路的预配置计费类型相应的调计费规则对象属性包括:商家ID(标识)、重量(运单中商品的重量)、件型(运单中商品的件型)、运单类型、支付方式、保险费、报价类型、起始地(即运单的起始地)、目的地(即运单的目的地)。
以A表示当前计费链路的判断赋值规则的集合,以B表示运单数据的属性的集合,以O表示与当前计费链路的预配置计费类型相应的调计费规则对象属性值集合,需要说明的是,O在按照下式赋值之前,O中各项(O1至O9)分别对应为各个调计费规则对象属性,在赋值之后O1至O9对应的即为各个调计费规则对象属性值。按照对应当前计费链路的判断赋值规则组装该运单数据的方法为:O=AB。具体为:
其中,O中,O1至O9分别表示商家ID、重量、件型、运单类型、支付方式、保险费、报价类型、起始地、目的地;B中,B1至B8分别表示商家ID、配送状态、重量、体积、保险费、实收金额、起始地、目的地;A中,各判断赋值规则中的判断赋值关系式分别包括(其中每个“()”对应一个判断赋值规则:(1)、(1)、(A33和A34)、(A45)、(A56)、(1)、(A72和A75)、(1)、(1)。本例总计包括9个判断赋值规则。
通过上述组装该运单数据的方法,即可对O1至O9分别赋值,其中,“1”是判断赋值关系式的特殊形式,表示无需判断步骤,而直接根据运单数据的属性对相应的调计费规则对象属性赋值,以O1为例,根据上述矩阵运算O=AB,即根据B1对O1赋值:O1=B1。A33、A34、A45、A56、A72和A75均为非常数值的判断赋值关系式,需判断运单数据的一个或多个属性是否符合判断赋值关系式中的预设条件,根据判断结果对调计费规则对象属性赋予相应的预设值,以O3为例,O3=A33B3+A34B4,即判断B3(重量)是否大于10千克,且B4(体积)是否大于1立方米,若是,则O3(件型)为大件,否则O3(件型)为小件。对该O=AB执行运算,最后得到运单数据在当前计费链路下的各调计费规则对象属性值例如分别为:
商家ID:O1=111111;重量:O2=重量;件型:O3=大件;运单类型:O4=普通;支付方式:O5=货到付款;保险费:O6=保险费;报价类型:O7=普通报价;起始地:O8=北京;目的地:O9=上海,根据各调计费规则对象属性值即得到调计费规则对象属性值集合O。
根据计费业务需求,预先设定了与各预配置计费类型相应的对象封装规则,例如,从调计费规则对象属性值集合中选取哪些调计费规则对象属性值作为一组,并选取一组或多组调计费规则对象属性值分别封装为调计费规则对象,以生成待计费业务数据在该计费链路下的调计费规则对象集合。对于本例,选取多组调计费规则对象属性值分别为{O1}、{O1、O4、O8}、{O1、O4、O8、O9}。生成的当前计费链路下的调计费规则对象集合S={S1,S2,S3},其中,S1包括商家ID,即O1;S2包括商家ID、运单类型、起始地,即O1、O4、O8;S3包括商家ID、运单类型、起始地、目的地,即O1、O4、O8、O9。。
根据运单数据在当前计费链路下的调计费规则对象集合S,通过对应当前计费链路的脚本集调用业务计费规则接口,得到运单数据在当前计费链路下的计费类型和计费运算量值。计费链路与业务计费规则接口的对应关系是预先配置的,当前计费链路对应的业务计费规则接口记作接口1、接口2、接口3,每一接口通过对应当前计费链路的脚本集中的一个脚本来调用。每一接口的入参(即输入参数)为一个或多个调计费规则对象,出参(即输出参数)为计费类型或计费运算量值。计费运算量值可以包括计费属性值、费率信息等,计费属性值可以是价目信息,例如按照重量、体积等的计价信息,这些计价信息可以以价目表的形式体现。对于本例,接口1的入参为S1(商家ID),出参V1为商家拒收保险费率;接口2的入参为S2(商家ID、运单类型、起始地),出参V2为运单数据在当前计费链路下的计费类型;接口3的入参为S3(商家ID、运单类型、起始地、目的地),出参V3为计费属性值,V3具体包括首重,续重,首重价,续重价。V1和V3属于计费运算量值。
当运单数据在当前计费链路下的计费类型与当前计费链路的预配置计费类型一致时,终止遍历所有计费链路,并将当前计费链路作为运单数据的责任计费链路。如果运单数据在当前计费链路下的计费类型与当前计费链路的预配置计费类型不一致,则结束对当前计费链路的遍历,而继续遍历当前计费链路的下一计费链路。
本例为了便于介绍整个计费流程,假设当前计费链路即为运单数据的责任计费链路。根据与计费类型V2对应的计费运算关系式f1,以及调计费规则对象属性值集合O中的特定调计费规则对象属性值(本例为重量O2)、计费运算量值V1和V3,生成对待计费业务数据的计费结果。其中,f1=首重价+(重量-首重)*(续重价/续重),首重,续重,首重价,续重价从计费运算量值V3中获取,重量从调计费规则对象属性值O2获取,从而运算得到第一计费结果,即该运单对应的运费。根据预配置的运算规则w1=w2*V1,其中,w2为商家的保险费,从调计费规则对象属性值集合O中的O6得到,V1为商家拒收保险费率,从而运算得到w1即商家拒收保险费用,即第二计费结果。
输出对运单数据的计费结果数据,其中,计费结果数据可以包括计费结果(含第一计费结果、第二计费结果)和计费结果的关联信息,该关联信息为运单数据在责任计费链路下的调计费规则对象属性值集合O中,除被选取用于生成调计费规则对象集合S的调计费规则对象属性值之外的剩余调计费规则对象属性值,即O中除O1、O4、O8、O9之外的调计费规则对象属性值O2、O3、O5、O6、O7(重量(具体千克数)、大件、货到付款、保险费(具体数值)、普通报价(具体数值)),通常,根据业务需要除了输出计费结果,还需输出这些关联信息。根据业务需要,还可以分别输出上述第一计费结果、第二计费结果。
本发明实施例的计费方法实现了计费规则的前置集中化,即:把所有的判断、赋值、调用接口、计费运算放在获得计费结果之前,而同于现有方案在获得计费结果后再重复的判断、赋值、调用接口、再次运算去过滤或修正计算出的计费结果,而导致计费逻辑非常复杂不易理解而且容易出错、造成不必要的资源浪费的问题,本发明由于将计费规则前置集中化,从而使得获得的计费结果就是正确的计费结果,计费逻辑清晰易理解,并且无需后续的结果修正等操作,节约资源,降低错误率。
图2是根据本发明实施例的计费装置的主要模块示意图。
如图2所示,本发明实施例的计费装置200主要包括:基础数据决策集可复用模块201、调计费规则对象维度组装可复用模块202、脚本接口集可复用模块203、计费运算模块204。
基础数据决策集可复用模块201,包括分别对应各计费链路的基础数据包层,每一基础数据包层配置至少一个基础数据决策集单元,每个基础数据决策集单元配置一个判断赋值规则,每个判断赋值规则包括至少一个判断赋值关系式,判断赋值关系式的特殊形式可以为大于零常数值。每个基础数据决策集单元在功能上相当于一个判断赋值模块,用于根据配置的判断赋值规则对一个调计费规则对象属性赋值。
调计费规则对象维度组装可复用模块202,包括分别对应各计费链路的服务数据包层,每一服务数据包层配置至少一个调计费规则对象维度组装单元,每个调计费规则对象维度组装单元对应一对象封装规则,每个调计费规则对象维度组装单元用于从调计费规则对象属性值集合中选取一组调计费规则对象属性值;将选取的该组调计费规则对象属性值封装为调计费规则对象。
脚本接口集可复用模块203,包括分别对应各计费链路的脚本函数包层,每一脚本函数包层配置至少一个脚本接口集单元。每个脚本接口集单元包括一个脚本,脚本可以通过代码编辑调用接口,接口的输入是调计费规则对象集合S中的调计费规则对象,接口的输出是计费类型或计费运算量值。接口为业务计费规则接口,调用各业务计费规则接口可以查询得到待计费业务数据在当前计费链路下的计费类型和计费运算量值。
计费运算模块204,包括分别对应各计费链路的计费运算包层。每个计费运算包层可具体实现为一个运算决策集单元,该运算决策集单元执行计费运算包层的相应功能,下文将详细介绍该相应功能。
基础数据包层、服务数据包层、脚本函数包层,用于根据待计费业务数据执行预设操作,以确定待计费业务数据的责任计费链路,预设操作包括判断赋值操作、对象封装操作、接口调用操作,其中,判断赋值操作是按照判断赋值规则组装待计费业务数据的操作,对象封装操作是按照对象封装规则生成调计费规则对象集合的操作,接口调用操作是通过脚本集调用业务计费规则接口的操作。
对应任一计费链路,以下分别介绍基础数据包层、服务数据包层、脚本函数包层、计费运算包层的功能。
基础数据包层用于按照配置的各基础数据决策集单元中的判断赋值规则组装待计费业务数据,以生成待计费业务数据在该计费链路下的调计费规则对象属性值集合(调计费规则对象属性值集合可记作O)。
基础数据包层具体可以用于:按照配置的各基础数据决策集单元中的判断赋值规则,判断待计费业务数据是否符合预设条件,并根据判断结果,对与该计费链路的预配置计费类型相应的调计费规则对象属性赋值,以生成待计费业务数据在该计费链路下的调计费规则对象属性值集合。
服务数据包层用于根据调计费规则对象属性值集合,按照配置的各调计费规则对象维度组装单元中的对象封装规则,生成待计费业务数据在该计费链路下的调计费规则对象集合(调计费规则对象集合可记作S)。
服务数据包层具体可以用于:按照配置的各调计费规则对象维度组装单元中的对象封装规则,从调计费规则对象属性值集合中选取一组或多组调计费规则对象属性值;将选取的每组调计费规则对象属性值分别封装为调计费规则对象,以生成待计费业务数据在该计费链路下的调计费规则对象集合。
脚本函数包层用于根据调计费规则对象集合,通过配置的各脚本接口集单元中的脚本集调用业务计费规则接口,得到待计费业务数据在该计费链路下的计费类型和计费运算量值。
计费运算包层,或运算决策集单元,用于当该计费链路为待计费业务数据的责任计费链路时,获取该责任计费链路的预配置计费类型对应的计费运算关系式,并根据该计费运算关系式以及待计费业务数据在该责任计费链路下的计费运算量值、调计费规则对象属性值集合,生成对待计费业务数据的计费结果,其中,当待计费业务数据在该计费链路下的计费类型与该计费链路的预配置计费类型一致时,该计费链路为待计费业务数据的责任计费链路。
待计费业务数据在责任计费链路下的计费运算量值具体可以包括:第一计费运算量值和第二计费运算量值。
计费运算包层具体可以用于:根据责任计费链路的预配置计费类型对应的计费运算关系式、待计费业务数据在责任计费链路下的调计费规则对象属性值集合中的特定调计费规则对象属性值,以及第一计费运算量值,生成对待计费业务数据的第一计费结果;根据第二计费运算量值以及目标调计费规则对象属性值,按照预配置的运算规则,生成对待计费业务数据的第二计费结果,其中,从待计费业务数据在责任计费链路下的调计费规则对象属性值集合中,获取目标调计费规则对象属性值;根据第一计费结果和第二计费结果生成对待计费业务数据的计费结果。
基础数据决策集可复用模块201可以用于将同一基础数据决策集单元在不同基础数据包层间复用,还可以用于将同一基础数据包层在不同计费链路间复用。
调计费规则对象维度组装可复用模块202可以用于将同一调计费规则对象维度组装单元在不同服务数据包层间复用,还可以用于将同一服务数据包层在不同链路间复用。
脚本接口集可复用模块203可以用于将同一脚本接口集单元在不同脚本函数包层间复用,还可以用于将同一脚本函数包层在不同计费链路间复用。
通过上述模块和/或包层复用的机制,使得计费规则以最小粒度划分,且最小粒度可组合为不同等级粒度,实现不同粒度自由组合、灵活调度,可复用性强,新的计费规则接入灵活、维护简单、工作量小。
计费装置200还可以包括计费结果数据输出模块,用于:输出对待计费业务数据的计费结果数据,其中,计费结果数据包括计费结果和所述计费结果的关联信息,该关联信息为待计费业务数据在责任计费链路下的调计费规则对象属性值集合中,除被选取的一组或多组调计费规则对象属性值之外的剩余调计费规则对象属性值。
本发明实施例将基础数据包层、服务数据包层、脚本函数包层、计费运算包层,以责任链模式生成一套完整的计费决策流体系L。以计费类型为责任判断点,对于每一预配置计费类型的计费链路,计费装置在模块构成上垂直分层,分为基础数据包层、服务数据包层、脚本函数包层、计费运算包层四层,按照各模块先后顺序及入参出参顺序关系以数据流的形式串入基础数据包层、服务数据包层、脚本函数包层、计费运算包层,最终调用计费运算关系式f(C),获取到计费结果RE=f(C),其中,C是通过脚本函数包层得到的计费运算量值和通过基础数据包层得到的调计费规则对象属性值,脚本函数包层的入参是服务数据包层生成的调计费规则对象集合S,服务数据包层生成的调计费规则对象集合S,又通过基础数据包层生成的调计费规则对象属性值集合O组合获取,基础数据包层生成的调计费规则对象属性值集合O,又由待计费业务数据B通过各基础数据决策集单元生成,计费运算关系式f(C)由计费运算包层获取,从而,从上而下,进行层层数据打包,形成一套完整的计费决策流体系Li 1≤i≤J,J为预配置计费类型的种数,也即计费链路的数量,各个计费决策流L1,L2,...LJ无耦合,当有新的业务接入时互不影响。在水平分层上,L1,L2,...LJ有可复用的基础数据包层、服务数据包层、脚本函数包层,并且,各基础数据决策集单元可在不同的基础数据包层间复用、各调计费规则对象维度组装单元可在不同的服务数据包层间复用、各脚本接口集单元可在不同的脚本函数包层间复用,对应各计费决策流有的各自对应的计费运算包层,使得本发明实施例的基础数据决策集可复用模块201、调计费规则对象维度组装可复用模块202、脚本接口集可复用模块203、计费运算模块204在模块配置上又体现了水平分层的计费体系。
本发明实施例能够实现计费规则以不同粒度前置集中分类,把所有的判断、赋值、调用接口、计费运算放在获得计费结果之前,无需后续的结果修正步骤即可得到正确的计费结果,计费逻辑清晰易理解,减少同样规则重复混乱调用,并减少计费的耦合性与错误率,计费规则层次清晰,便于形成直观化的计费体系,计费规则以最小粒度划分,且最小粒度可组合为不同等级粒度,实现不同粒度自由组合、灵活调度,可复用性强,不同层次间层层衔接,自上而下,新的计费规则接入灵活、维护简单、工作量小。
图3是根据本发明实施例的计费装置的示例性构成框图。
图3更直观了提供了本发明实施例的计费装置的垂直分层和水平分层的构成框图。如图3所示,本发明实施例的计费装置的一个示例性构成中,在垂直分层上,包括基础数据决策集可复用模块(包括J个基础数据包层)、调计费规则对象维度组装可复用模块(包括J个服务数据包层)、脚本接口集可复用模块(包括J个脚本函数包层)、计费运算模块(包括J个计费运算包层),在水平分层上包括J个计费链路,其中,每个虚线框图对应一个计费链路,每个计费链路对应一个预配置计费类型。以图3中计费链路1为例,基础数据包层包括基础数据决策集单元1和基础数据决策集单元2,服务数据包层包括调计费规则对象维度组装单元1,脚本函数包层包括脚本接口集单元1和脚本接口集单元2,计费运算包层通过运算决策集单元1来实现。同样地,对应计费链路2中,基础数据包层包括基础数据决策集单元1、基础数据决策集单元2和基础数据决策集单元5,服务数据包层包括调计费规则对象维度组装单元1和调计费规则对象维度组装单元2,脚本函数包层包括脚本接口集单元2,计费运算包层通过运算决策集单元2来实现,以此类推。
当需要设计与新的预配置类型对应的计费链路时,只需要通过基础数据决策集可复用模块在已存的基础数据决策集单元中,选取需要的基础数据决策集单元,从而得到对应该计费链路的基础数据包层,以及,调计费规则对象维度组装可复用模块从已存的调计费规则对象维度组装单元中,选取需要的调计费规则对象维度组装单元,得到对应该计费链路的服务数据包层,从脚本接口集可复用模块从已存的脚本接口集单元中选取需要的脚本接口集单元,得到对应计费链路的脚本函数包层,并通过计费运算模块得到对应该计费类型的计费运算包层,即得到与新的预配置类型对应的计费链路。并且,各已有的计费链路和新的计费链路之间,任何两个计费链路都可以复用基础数据包层、服务数据包层、脚本函数包层,例如,当两个计费链路复用的包层中包括相同的单元的情况下,假设计费链路1和计费链路3的基础数据包层都包括基础数据决策集单元1和基础数据决策集单元2,则该两个链路可以复用同一基础数据包层。此外,两个计费链路间还可复用同一基础数据决策集单元、调计费规则对象维度组装单元、脚本接口集单元。
因此,本发明实施例的计费装置通过建立水平计费单元(即基础数据决策集单元、调计费规则对象维度组装单元、脚本接口集单元等),实现计费单元复用与灵活调度计费单元,新的计费规则接入与维护简单。通过建立垂直计费分层,实现基础数据包层、服务数据包层、脚本函数包层、计费运算包层,四个包层形成一套计费体系,实现计费规则前置集中化,无需后续的结果修正步骤即可得到正确的计费结果,且便于新的计费规则接入与维护简单,更能清晰体现计费的规则层次,便于形成计费体系,且计费体系直观化,减少同样规则重复混乱调用,减少计费的耦合性与错误率。
另外,在本发明实施例中所述计费装置的具体实施内容,在上面所述计费方法中已经详细说明了,故在此重复内容不再说明。
图4示出了可以应用本发明实施例的计费方法或计费装置的示例性系统架构400。
如图4所示,系统架构400可以包括终端设备401、402、403,网络404和服务器405。网络404用以在终端设备401、402、403和服务器405之间提供通信链路的介质。网络404可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备401、402、403通过网络404与服务器405交互,以接收或发送消息等。终端设备401、402、403上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备401、402、403可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器405可以是提供各种服务的服务器,例如对用户利用终端设备401、402、403所浏览的购物类网站提供支持的后台管理服务器。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息)反馈给终端设备。
需要说明的是,本发明实施例所提供的计费方法可由终端设备401、402、403或服务器405执行,相应地,计费装置可设置于终端设备401、402、403或服务器405中。
应该理解,图4中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图5,其示出了适于用来实现本申请实施例的终端设备或服务器的计算机系统500的结构示意图。图5示出的终端设备或服务器仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有系统500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括:基础数据决策集可复用模块201、调计费规则对象维度组装可复用模块202、脚本接口集可复用模块203、计费运算模块204。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,基础数据决策集可复用模块201还可以被描述为“用于通过各基础数据包层按照配置的各基础数据决策集单元中的判断赋值规则组装待计费业务数据,以生成待计费业务数据在各计费链路下的调计费规则对象属性值集合的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:根据待计费业务数据执行预设操作,以确定所述待计费业务数据的责任计费链路,所述预设操作包括判断赋值操作、对象封装操作、接口调用操作,其中,所述判断赋值操作是按照判断赋值规则组装待计费业务数据的操作,所述对象封装操作是按照对象封装规则生成调计费规则对象集合的操作,所述接口调用操作是通过脚本集调用业务计费规则接口的操作;根据所述责任计费链路的预配置计费类型对应的计费运算关系式,以及所述待计费业务数据在所述责任计费链路下的计费运算量值、调计费规则对象属性值集合,生成对所述待计费业务数据的计费结果。
根据本发明实施例的技术方案,本发明实施例把所有的判断、赋值、调用接口、计费运算放在获得计费结果之前,而无需在获得计费结果后重复地判断、赋值、调用接口、再次运算去过滤或修正计算出的计费结果。能够实现计费规则前置集中化,无需后续的结果修正步骤即可得到正确的计费结果,计费逻辑清晰易理解,减少同样规则重复混乱调用,并减少计费的耦合性与错误率,每一计费链路对应各自的判断赋值规则、对象封装规则、脚本集、计费运算关系式,构成垂直分层计费体系,且各层的判断赋值规则、对象封装规则、脚本集可在不同计费链路间复用,构成水平分层计费体系,并且,计费装置通过基础数据包层、服务数据包层、脚本函数包层、计费运算包层实现垂直分层,且基础数据决策集单元、调计费规则对象维度组装单元、脚本接口集单元、基础数据包层、服务数据包层、脚本函数包层均可在不同计费链路间复用,体现水平分层。计费规则层次清晰,便于形成直观化的计费体系,使得计费规则以最小粒度划分,且最小粒度可组合为不同等级粒度,实现不同粒度自由组合、灵活调度,可复用性强,新的计费规则接入灵活、维护简单、工作量小。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (17)
1.一种计费方法,其特征在于,包括:
根据待计费业务数据执行预设操作,以确定所述待计费业务数据的责任计费链路,所述预设操作包括判断赋值操作、对象封装操作、接口调用操作;所述判断赋值操作是按照判断赋值规则组装待计费业务数据的操作,所述对象封装操作是按照对象封装规则生成调计费规则对象集合的操作,所述接口调用操作是通过脚本集调用业务计费规则接口的操作;
根据所述责任计费链路的预配置计费类型对应的计费运算关系式,以及所述待计费业务数据在所述责任计费链路下的计费运算量值、调计费规则对象属性值集合,生成对所述待计费业务数据的计费结果。
2.根据权利要求1所述的方法,其特征在于,根据待计费业务数据执行预设操作,以确定所述待计费业务数据的责任计费链路的步骤,包括:
遍历预先配置的各计费链路,其中,在被遍历到的每一计费链路,
按照对应该计费链路的判断赋值规则组装待计费业务数据,以生成所述待计费业务数据在该计费链路下的调计费规则对象属性值集合;
根据所述调计费规则对象属性值集合,按照对应该计费链路的对象封装规则,生成所述待计费业务数据在该计费链路下的调计费规则对象集合;
根据所述调计费规则对象集合,通过对应该计费链路的脚本集调用业务计费规则接口,得到所述待计费业务数据在该计费链路下的计费类型和计费运算量值;
当所述待计费业务数据在该计费链路下的计费类型与该计费链路的预配置计费类型一致时,终止遍历,并将该计费链路作为所述待计费业务数据的责任计费链路。
3.根据权利要求2所述的方法,其特征在于,所述判断赋值规则、所述对象封装规则、所述脚本集可在不同计费链路间复用。
4.根据权利要求2所述的方法,其特征在于,按照对应该计费链路的判断赋值规则组装待计费业务数据,以生成所述待计费业务数据在该计费链路下的调计费规则对象属性值集合的步骤,包括:
按照对应该计费链路的判断赋值规则,判断所述待计费业务数据是否符合预设条件,并根据判断结果,对与该计费链路的预配置计费类型相应的调计费规则对象属性赋值,以生成所述待计费业务数据在该计费链路下的调计费规则对象属性值集合。
5.根据权利要求2所述的方法,其特征在于,根据所述调计费规则对象属性值集合,按照对应该计费链路的对象封装规则,生成所述待计费业务数据在该计费链路下的调计费规则对象集合的步骤,包括:
按照与该计费链路的预配置计费类型相应的对象封装规则,从所述调计费规则对象属性值集合中选取一组或多组调计费规则对象属性值;
将选取的每组调计费规则对象属性值分别封装为调计费规则对象,以生成所述待计费业务数据在该计费链路下的调计费规则对象集合。
6.根据权利要求5所述的方法,其特征在于,生成对所述待计费业务数据的计费结果的步骤之后,还包括:
输出对所述待计费业务数据的计费结果数据,其中,
所述计费结果数据包括所述计费结果和所述计费结果的关联信息,所述关联信息为所述待计费业务数据在所述责任计费链路下的调计费规则对象属性值集合中,除被选取的一组或多组调计费规则对象属性值之外的剩余调计费规则对象属性值。
7.根据权利要求2所述的方法,其特征在于,所述待计费业务数据在所述责任计费链路下的计费运算量值包括:第一计费运算量值和第二计费运算量值,
根据所述责任计费链路的预配置计费类型对应的计费运算关系式,以及所述待计费业务数据在所述责任计费链路下的计费运算量值、调计费规则对象属性值集合,生成对所述待计费业务数据的计费结果的步骤,包括:
根据所述责任计费链路的预配置计费类型对应的计费运算关系式、所述待计费业务数据在所述责任计费链路下的调计费规则对象属性值集合中的特定调计费规则对象属性值,以及所述第一计费运算量值,生成对所述待计费业务数据的第一计费结果;
根据所述第二计费运算量值以及目标调计费规则对象属性值,按照预配置的运算规则,生成对所述待计费业务数据的第二计费结果,其中,从所述待计费业务数据在责任计费链路下的调计费规则对象属性值集合中,获取所述目标调计费规则对象属性值;
根据所述第一计费结果和所述第二计费结果生成对所述待计费业务数据的计费结果。
8.一种计费装置,其特征在于,包括:
基础数据决策集可复用模块,包括分别对应各计费链路的基础数据包层;
调计费规则对象维度组装可复用模块,包括分别对应各计费链路的服务数据包层;
脚本接口集可复用模块,包括分别对应各计费链路的脚本函数包层;
计费运算模块,包括分别对应各计费链路的计费运算包层;
其中,基础数据包层、服务数据包层、脚本函数包层,用于根据待计费业务数据执行预设操作,以确定所述待计费业务数据的责任计费链路,所述预设操作包括判断赋值操作、对象封装操作、接口调用操作;所述判断赋值操作是按照判断赋值规则组装待计费业务数据的操作,所述对象封装操作是按照对象封装规则生成调计费规则对象集合的操作,所述接口调用操作是通过脚本集调用业务计费规则接口的操作;
计费运算包层用于当对应的计费链路为所述待计费业务数据的责任计费链路时,根据所述责任计费链路的预配置计费类型对应的计费运算关系式,以及所述待计费业务数据在所述责任计费链路下的计费运算量值、调计费规则对象属性值集合,生成对所述待计费业务数据的计费结果。
9.根据权利要求8所述的装置,其特征在于,每一基础数据包层配置至少一个基础数据决策集单元,每一服务数据包层配置至少一个调计费规则对象维度组装单元,每一脚本函数包层配置至少一个脚本接口集单元,
对应任一所述计费链路:
所述基础数据包层用于按照配置的各基础数据决策集单元中的判断赋值规则组装待计费业务数据,以生成所述待计费业务数据在该计费链路下的调计费规则对象属性值集合;
所述服务数据包层用于根据所述调计费规则对象属性值集合,按照配置的各调计费规则对象维度组装单元中的对象封装规则,生成所述待计费业务数据在该计费链路下的调计费规则对象集合;
所述脚本函数包层用于根据所述调计费规则对象集合,通过配置的各脚本接口集单元中的脚本集调用业务计费规则接口,得到所述待计费业务数据在该计费链路下的计费类型和计费运算量值,当所述待计费业务数据在该计费链路下的计费类型与该计费链路的预配置计费类型一致时,确定该计费链路为所述待计费业务数据的责任计费链路。
10.根据权利要求9所述的装置,其特征在于,所述基础数据决策集可复用模块还用于:将同一基础数据决策集单元在不同基础数据包层间复用;
所述调计费规则对象维度组装可复用模块还用于:将同一调计费规则对象维度组装单元在不同服务数据包层间复用;
所述脚本接口集可复用模块还用于:将同一脚本接口集单元在不同脚本函数包层间复用。
11.根据权利要求9所述的装置,其特征在于,所述基础数据决策集可复用模块还用于:将同一基础数据包层在不同计费链路间复用;
所述调计费规则对象维度组装可复用模块还用于:将同一服务数据包层在不同链路间复用;
所述脚本接口集可复用模块还用于:将同一脚本函数包层在不同计费链路间复用。
12.根据权利要求9所述的装置,其特征在于,所述基础数据包层还用于:
按照配置的各基础数据决策集单元中的判断赋值规则,判断所述待计费业务数据是否符合预设条件,并根据判断结果,对与所述该计费链路的预配置计费类型相应的调计费规则对象属性赋值,以生成所述待计费业务数据在所述该计费链路下的调计费规则对象属性值集合。
13.根据权利要求9所述的装置,其特征在于,所述服务数据包层还用于:
按照配置的各调计费规则对象维度组装单元中的对象封装规则,从所述调计费规则对象属性值集合中选取一组或多组调计费规则对象属性值;
将选取的每组调计费规则对象属性值分别封装为调计费规则对象,以生成所述待计费业务数据在所述该计费链路下的调计费规则对象集合。
14.根据权利要求12所述的装置,其特征在于,还包括计费结果数据输出模块,用于:
输出对所述待计费业务数据的计费结果数据,其中,
所述计费结果数据包括所述计费结果和所述计费结果的关联信息,所述关联信息为所述待计费业务数据在所述责任计费链路下的调计费规则对象属性值集合中,除被选取的一组或多组调计费规则对象属性值之外的剩余调计费规则对象属性值。
15.根据权利要求9所述的装置,其特征在于,所述待计费业务数据在所述责任计费链路下的计费运算量值包括:第一计费运算量值和第二计费运算量值,
所述计费运算包层还用于:
根据所述责任计费链路的预配置计费类型对应的计费运算关系式、所述待计费业务数据在所述责任计费链路下的调计费规则对象属性值集合中的特定调计费规则对象属性值,以及所述第一计费运算量值,生成对所述待计费业务数据的第一计费结果;
根据所述第二计费运算量值以及目标调计费规则对象属性值,按照预配置的运算规则,生成对所述待计费业务数据的第二计费结果,其中,从所述待计费业务数据在责任计费链路下的调计费规则对象属性值集合中,获取所述目标调计费规则对象属性值;
根据所述第一计费结果和所述第二计费结果生成对所述待计费业务数据的计费结果。
16.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-7中任一所述的方法。
17.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810437111.7A CN108718241B (zh) | 2018-05-09 | 2018-05-09 | 一种计费方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810437111.7A CN108718241B (zh) | 2018-05-09 | 2018-05-09 | 一种计费方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108718241A CN108718241A (zh) | 2018-10-30 |
CN108718241B true CN108718241B (zh) | 2021-11-09 |
Family
ID=63899564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810437111.7A Active CN108718241B (zh) | 2018-05-09 | 2018-05-09 | 一种计费方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108718241B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113780921B (zh) * | 2021-01-06 | 2023-12-05 | 北京京东振世信息技术有限公司 | 一种询价处理方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101582776A (zh) * | 2008-05-15 | 2009-11-18 | 浙江大学 | 服务计费的方法及服务计费系统 |
CN102332138A (zh) * | 2011-11-01 | 2012-01-25 | 安徽省一一通信息科技有限公司 | 包含有不规则货物分拣系统的电子商务物流系统 |
CN105005883A (zh) * | 2015-07-22 | 2015-10-28 | 上海递道信息技术有限公司 | 快递物流结算系统 |
CN106372963A (zh) * | 2016-08-29 | 2017-02-01 | 石化盈科信息技术有限责任公司 | 基于推理引擎的物流计费系统及物流计费方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8364560B2 (en) * | 2010-03-31 | 2013-01-29 | Ebay Inc. | User segmentation for listings in online publications |
-
2018
- 2018-05-09 CN CN201810437111.7A patent/CN108718241B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101582776A (zh) * | 2008-05-15 | 2009-11-18 | 浙江大学 | 服务计费的方法及服务计费系统 |
CN102332138A (zh) * | 2011-11-01 | 2012-01-25 | 安徽省一一通信息科技有限公司 | 包含有不规则货物分拣系统的电子商务物流系统 |
CN105005883A (zh) * | 2015-07-22 | 2015-10-28 | 上海递道信息技术有限公司 | 快递物流结算系统 |
CN106372963A (zh) * | 2016-08-29 | 2017-02-01 | 石化盈科信息技术有限责任公司 | 基于推理引擎的物流计费系统及物流计费方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108718241A (zh) | 2018-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8965801B2 (en) | Provision of support services as a service | |
CN113259144B (zh) | 一种仓储网络规划方法和装置 | |
CN111047243A (zh) | 一种确定物流配送费用的方法和装置 | |
CN109981322A (zh) | 基于标签的云资源管理的方法和装置 | |
CN110473036A (zh) | 一种生成订单号的方法和装置 | |
CN104901927A (zh) | 业务处理方法和装置 | |
CN108460062A (zh) | 一种物流面单信息的获取方法及相关装置 | |
CN110135770A (zh) | 出库方案的生成方法和装置 | |
CN108876338A (zh) | 一种三单合一报关报检方法、装置、服务器及存储介质 | |
CN113076153A (zh) | 一种接口调用方法和装置 | |
CN113392093A (zh) | 一种业务处理方法、装置、电子设备及计算机可读介质 | |
CN113393219A (zh) | 物流业务数据的处理方法、装置、电子设备及存储介质 | |
CN111833037A (zh) | 一种账户管理的方法及装置 | |
CN108718241B (zh) | 一种计费方法和装置 | |
CN112990991B (zh) | 合并开发票的方法和装置 | |
CN112446712A (zh) | 合并退货处理方法、装置、电子设备和存储介质 | |
CN113379523A (zh) | 账单生成方法、装置、介质及电子设备 | |
CN110858350A (zh) | 订单处理方法及系统、计算机系统和计算机可读存储介质 | |
CN113780922B (zh) | 货品流向流量确定方法和装置 | |
CN113762548A (zh) | 一种数据处理的方法和装置 | |
CN111260269A (zh) | 提升配送效率的门店订单处理的方法和装置 | |
CN112785358A (zh) | 一种订单履约商家的接入方法和装置 | |
CN111526184A (zh) | 业务审核的方法和装置 | |
Schmidt | Conceptualisation and lifecycle of cloud based information systems | |
CN112785361A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |