一种订单消耗计算方法及装置与流程

文档序号:30071218发布日期:2022-05-18 02:07阅读:173来源:国知局
一种订单消耗计算方法及装置与流程

1.本技术涉及广告投放领域,具体而言,涉及一种订单消耗计算方法及装置。


背景技术:

2.在商务广告投放场景中,针对每一笔订单都需要算出订单成本,而对于广告主来讲,订单成本即订单消耗。为了便于监控广告的投放成本,需要系统地提供投放看板,计算并在投放看板上展示订单消耗,同时,计算得到的订单消耗也能够实现聚合处理以及其他分析。
3.在现有技术中,订单归因模块每小时将全量订单数据写入数据库中,离线计算订单消耗服务会批量获取遍历全量订单,循环计算每个订单的消耗金额。但是,在上述方案中,由于每小时都要获取全量订单并且需要对所有的订单进行计算,数量级在亿级,因此会导致计算订单消耗的过程计算量大且耗时长。


技术实现要素:

4.本技术实施例的目的在于提供一种订单消耗计算方法及装置,用以解决计算订单消耗的过程计算量大且耗时长的技术问题。
5.为了实现上述目的,本技术实施例所提供的技术方案如下所示:
6.第一方面,本技术实施例提供一种订单消耗计算方法,包括:获取数据库中所有订单的订单数据;根据结算规则记录表以及所述订单数据确定所有订单中满足计算消耗条件的订单;根据所述结算规则记录表以及满足所述计算消耗条件的订单对应的订单数据,计算满足所述计算消耗条件的订单对应的订单消耗。在上述方案中,可以根据结算规则记录表以及订单数据先将所有订单中满足计算消耗条件的订单筛选出来,从而可以仅对满足计算消耗条件的这部分订单的订单消耗进行计算,无需计算所有订单的订单消耗,因此,可以降低订单消耗过程的计算量以及耗时。
7.在本技术的可选实施例中,所述订单数据包括订单生成时间;所述根据结算规则记录表以及所述订单数据确定所有订单中满足计算消耗条件的订单,包括:根据所述订单生成时间查找所有订单中的增量订单;其中,所述增量订单为满足所述计算消耗条件的订单。在上述方案中,可以根据结算规则记录表以及订单生成时间先将所有订单中的增量订单筛选出来,从而可以根据计算规则记录表对该部分增量订单的订单消耗进行计算,无需计算所有订单的订单消耗,因此,可以降低订单消耗过程的计算量以及耗时。
8.在本技术的可选实施例中,所述根据所述订单生成时间查找所有订单中的增量订单,包括:查找所有订单中,所述订单生成时间与当前时间的差值小于预设时间差的订单。在上述方案中,可以根据结算规则记录表以及订单生成时间先将所有订单中的增量订单筛选出来,从而可以根据计算规则记录表对该部分增量订单的订单消耗进行计算,无需计算所有订单的订单消耗,因此,可以降低订单消耗过程的计算量以及耗时。
9.在本技术的可选实施例中,所述订单数据包括订单生成时间以及订单状态;所述
根据结算规则记录表以及所述订单数据确定所有订单中满足计算消耗条件的订单,包括:根据所述订单生成时间以及所述订单状态查找所有订单中发生退款行为的存量订单;其中,所述发生退款行为的存量订单为满足所述计算消耗条件的订单;所述根据所述结算规则记录表以及满足所述计算消耗条件的订单对应的订单数据,计算满足所述计算消耗条件的订单对应的订单消耗,包括:计算所述发生退款行为的存量订单对应的订单消耗为零。在上述方案中,可以根据结算规则记录表、订单生成时间以及订单状态先将所有订单中的发生退款行为的存量订单筛选出来,从而可以根据计算规则记录表对该部分存量订单的订单消耗进行计算,无需计算所有订单的订单消耗,因此,可以降低订单消耗过程的计算量以及耗时。
10.在本技术的可选实施例中,所述根据所述订单生成时间以及所述订单状态查找所有订单中发生退款行为的存量订单,包括:查找所有订单中,所述订单生成时间与当前时间的差值大于预设时间差,且所述订单状态表征退款的订单。在上述方案中,可以根据结算规则记录表、订单生成时间以及订单状态先将所有订单中的发生退款行为的存量订单筛选出来,从而可以根据计算规则记录表对该部分存量订单的订单消耗进行计算,无需计算所有订单的订单消耗,因此,可以降低订单消耗过程的计算量以及耗时。
11.在本技术的可选实施例中,所述订单数据包括订单生成时间以及结算规则标识,其中,所述结算规则标识对应至少一个结算规则以及每个结算规则的生效时间,所述结算规则记录表包括多个结算规则标识、每个结算规则标识与至少一个结算规则的对应关系以及每个结算规则的生效时间;所述根据结算规则记录表以及所述订单数据确定所有订单中满足计算消耗条件的订单,包括:根据所述结算规则记录表,查找结算规则改变标识;其中,所述结算规则改变标识为在预设时间段内对应的结算规则发生改变的结算规则标识;根据所述订单生成时间、所述结算规则标识以及所述结算规则改变标识查找所有订单中结算规则发生改变的存量订单;其中,所述结算规则发生改变的存量订单为满足所述计算消耗条件的订单;所述根据所述结算规则记录表以及满足所述计算消耗条件的订单对应的订单数据,计算满足所述计算消耗条件的订单对应的订单消耗,包括:根据所述订单生成时间以及所述结算规则标识从所述结算规则记录表中查找订单对应的发生改变后的结算规则;根据所述发生改变后的结算规则计算所述结算规则发生改变的存量订单对应的订单消耗。在上述方案中,可以根据结算规则记录表、订单生成时间以及结算规则标识先将所有订单中的计算规则发生改变的存量订单筛选出来,从而可以根据计算规则记录表对该部分存量订单的订单消耗进行计算,无需计算所有订单的订单消耗,因此,可以降低订单消耗过程的计算量以及耗时。
12.在本技术的可选实施例中,所述根据所述订单生成时间、所述结算规则标识以及所述结算规则改变标识查找所有订单中结算规则发生改变的存量订单,包括:查找所有订单中,所述订单生成时间与当前时间的差值大于预设时间差,且所述结算规则标识与所述结算规则改变标识匹配的订单。在上述方案中,可以根据结算规则记录表、订单生成时间以及结算规则标识先将所有订单中的计算规则发生改变的存量订单筛选出来,从而可以根据计算规则记录表对该部分存量订单的订单消耗进行计算,无需计算所有订单的订单消耗,因此,可以降低订单消耗过程的计算量以及耗时。
13.第二方面,本技术实施例提供一种订单消耗计算装置,包括:获取模块,用于获取
数据库中所有订单的订单数据;确定模块,用于根据结算规则记录表以及所述订单数据确定所有订单中满足计算消耗条件的订单;计算模块,用于根据所述结算规则记录表以及满足所述计算消耗条件的订单对应的订单数据,计算满足所述计算消耗条件的订单对应的订单消耗。在上述方案中,可以根据结算规则记录表以及订单数据先将所有订单中满足计算消耗条件的订单筛选出来,从而可以仅对满足计算消耗条件的这部分订单的订单消耗进行计算,无需计算所有订单的订单消耗,因此,可以降低订单消耗过程的计算量以及耗时。
14.在本技术的可选实施例中,所述订单数据包括订单生成时间;所述确定模块具体用于:根据所述订单生成时间查找所有订单中的增量订单;其中,所述增量订单为满足所述计算消耗条件的订单。在上述方案中,可以根据结算规则记录表以及订单生成时间先将所有订单中的增量订单筛选出来,从而可以根据计算规则记录表对该部分增量订单的订单消耗进行计算,无需计算所有订单的订单消耗,因此,可以降低订单消耗过程的计算量以及耗时。
15.在本技术的可选实施例中,所述确定模块具体用于:查找所有订单中,所述订单生成时间与当前时间的差值小于预设时间差的订单。在上述方案中,可以根据结算规则记录表以及订单生成时间先将所有订单中的增量订单筛选出来,从而可以根据计算规则记录表对该部分增量订单的订单消耗进行计算,无需计算所有订单的订单消耗,因此,可以降低订单消耗过程的计算量以及耗时。
16.在本技术的可选实施例中,所述订单数据包括订单生成时间以及订单状态;所述确定模块具体用于:根据所述订单生成时间以及所述订单状态查找所有订单中发生退款行为的存量订单;其中,所述发生退款行为的存量订单为满足所述计算消耗条件的订单;所述计算模块具体用于:计算所述发生退款行为的存量订单对应的订单消耗为零。在上述方案中,可以根据结算规则记录表、订单生成时间以及订单状态先将所有订单中的发生退款行为的存量订单筛选出来,从而可以根据计算规则记录表对该部分存量订单的订单消耗进行计算,无需计算所有订单的订单消耗,因此,可以降低订单消耗过程的计算量以及耗时。
17.在本技术的可选实施例中,所述确定模块具体用于:查找所有订单中,所述订单生成时间与当前时间的差值大于预设时间差,且所述订单状态表征退款的订单。在上述方案中,可以根据结算规则记录表、订单生成时间以及订单状态先将所有订单中的发生退款行为的存量订单筛选出来,从而可以根据计算规则记录表对该部分存量订单的订单消耗进行计算,无需计算所有订单的订单消耗,因此,可以降低订单消耗过程的计算量以及耗时。
18.在本技术的可选实施例中,所述订单数据包括订单生成时间以及结算规则标识,其中,所述结算规则标识对应至少一个结算规则以及每个结算规则的生效时间,所述结算规则记录表包括多个结算规则标识、每个结算规则标识与至少一个结算规则的对应关系以及每个结算规则的生效时间;所述确定模块具体用于:根据所述结算规则记录表,查找结算规则改变标识;其中,所述结算规则改变标识为在预设时间段内对应的结算规则发生改变的结算规则标识;根据所述订单生成时间、所述结算规则标识以及所述结算规则改变标识查找所有订单中结算规则发生改变的存量订单;其中,所述结算规则发生改变的存量订单为满足所述计算消耗条件的订单;所述计算模块具体用于:根据所述订单生成时间以及所述结算规则标识从所述结算规则记录表中查找订单对应的发生改变后的结算规则;根据所述发生改变后的结算规则计算所述结算规则发生改变的存量订单对应的订单消耗。在上述
方案中,可以根据结算规则记录表、订单生成时间以及结算规则标识先将所有订单中的计算规则发生改变的存量订单筛选出来,从而可以根据计算规则记录表对该部分存量订单的订单消耗进行计算,无需计算所有订单的订单消耗,因此,可以降低订单消耗过程的计算量以及耗时。
19.在本技术的可选实施例中,所述确定模块具体用于:查找所有订单中,所述订单生成时间与当前时间的差值大于预设时间差,且所述结算规则标识与所述结算规则改变标识匹配的订单。在上述方案中,可以根据结算规则记录表、订单生成时间以及结算规则标识先将所有订单中的计算规则发生改变的存量订单筛选出来,从而可以根据计算规则记录表对该部分存量订单的订单消耗进行计算,无需计算所有订单的订单消耗,因此,可以降低订单消耗过程的计算量以及耗时。
20.第三方面,本技术实施例提供一种电子设备,包括:处理器、存储器和总线;所述处理器和所述存储器通过所述总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如第一方面中的订单消耗计算方法。
21.第四方面,本技术实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如第一方面中的订单消耗计算方法。
22.为使本技术的上述目的、特征和优点能更明显易懂,下文特举本技术实施例,并配合所附附图,作详细说明如下。
附图说明
23.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
24.图1为本技术实施例提供的一种订单数据写入方法的流程图;
25.图2为本技术实施例提供的一种订单消耗计算方法的流程图;
26.图3为本技术实施例提供的另一种订单消耗计算方法的流程图;
27.图4为本技术实施例提供的另一种订单消耗计算方法的流程图;
28.图5为本技术实施例提供的另一种订单消耗计算方法的流程图;
29.图6为本技术实施例提供的一种订单消耗计算装置的结构框图;
30.图7为本技术实施例提供的一种电子设备的结构框图。
具体实施方式
31.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
32.首先介绍电子设备将上游业务系统中的订单数据写入数据库的过程。
33.请参照图1,图1为本技术实施例提供的一种订单数据写入方法的流程图,该订单数据写入方法可以包括如下步骤:
34.步骤s101:从上游业务系统中获取所有订单的原始数据。
35.步骤s102:根据原始数据确定每一个订单的来源渠道、订单状态以及结算规则,得到订单数据。
36.步骤s103:将订单数据写入数据库中。
37.具体的,上游业务系统指对广告投放数据进行管理的系统,该系统可以收集与投放广告相关的所有订单对应的原始数据。其中,每个订单的原始数据具体可以包括多种数据,例如:订单的来源渠道、订单的订单状态、订单的类型、订单的结算规则等,本技术实施例对此不作具体的限定,本领域技术人员可以根据实际情况进行合适的调整。
38.在上述数据中,订单的来源渠道可以包括公众号、网页等;订单的订单状态可以包括已支付状态、已预定状态、已退款状态等;订单的类型可以包括个人订单、团体订单等。
39.广告主可以采用每次行动成本(cost per action,cpa)结算、每次试玩成本(cost per try,cpt)结算或者每次销售成本(cost per sale,cps)结算等方式给投放方做结算。以cpa结算的方式为例,订单的结算规则为广告主与投放方事先约定好的订单结算规则,包括每笔订单的结算金额以及每一结算规则的生效时间。举例来说,结算规则可以为:每产生一笔订单,广告主需支付投放方十元;或者,结算规则可以为:在一月至三月,每产生一笔订单,广告主需支付投放方十元,在四月至六月,每产生一笔订单,广告主需支付投放方二十元。可以理解的是,上述结算规则仅为本技术实施例提出的示例,本领域技术人员再此基础上可以根据实际情况对结算规则进行调整;且在广告投放的过程中,结算规则也可以根据实际情况发生改变。
40.需要说明的是,上游业务系统中的所有订单,既可以指自投放广告以来产生的所有订单,在该种情况中,上游业务系统可以收集每一个订单的数据并存储;也可以指在一段时间之内的所有订单,在该种情况中,上游业务系统可以收集每一个订单的数据并存储,并在某些订单数据的存储时间超过预设时间段(如:一年、一个月等)后,清除该部分订单的数据。
41.电子设备可以通过多种方式获取上述原始数据,例如:直接接收上游业务系统发送的原始数据,或者从云端读取上游业务系统上传的原始数据等。然后,电子设备可以根据后续步骤的需求,根据原始数据确定订单数据。
42.其中,在本技术实施例中,作为一种实施方式,电子设备可以根据原始数据确定每一个订单的来源渠道、订单状态以及结算规则,并将上述订单数据写入数据库中。可以理解的是,本技术实施例对数据库的类型同样不作具体的限定,例如:kudu数据库,本领域技术人员可以根据实际情况进行合适的调整。
43.进一步的,在上述步骤s102之后,本技术实施例提供的订单数据写入方法还可以包括如下步骤:
44.根据每一个订单的来源渠道为该订单添加对应的结算规则标识。
45.具体的,由于相同来源渠道的订单对应的结算规则应该是相同的,因此可以在订单数据中加入与订单的来源渠道对应的结算规则标识,该结算规则标识与该来源渠道的结算规则对应。
46.作为一种实施方式,一个结算规则标识仅与一种结算规则对应,例如:结算规则标识与“每产生一笔订单,广告主需支付投放方十元”的结算规则对应。
47.作为另一种实施方式,一个结算规则标识与多种结算规则对应,例如:结算规则标
识与“在一月至三月,每产生一笔订单,广告主需支付投放方十元”的结算规则以及“在四月至六月,每产生一笔订单,广告主需支付投放方二十元”的计算规则对应;或者,在广告投放的过程中,结算规则发生了改变,此时结算规则标识可以同时与改变前的结算规则以及改变后的结算规则对应。
48.基于上述结算规则标识与结算规则的对应关系,可以生成一个结算规则记录表,该结算规则记录表中可以记录所有来源渠道对应的结算规则标识以及与每一个结算规则标识对应的所有结算规则。若已知一个订单的结算规则标识,通过查询上述结算规则记录表,便可以确定计算该订单的订单消耗的规则。
49.接下来,介绍电子设备根据数据库中的订单数据对订单消耗进行计算的过程。
50.请参照图2,图2为本技术实施例提供的一种订单消耗计算方法的流程图,该订单消耗计算方法可以包括如下步骤:
51.步骤s201:获取数据库中所有订单的订单数据。
52.步骤s202:根据结算规则记录表以及订单数据确定所有订单中满足计算消耗条件的订单。
53.步骤s203:根据结算规则记录表以及满足计算消耗条件的订单对应的订单数据,计算满足计算消耗条件的订单对应的订单消耗。
54.具体的,电子设备可以在预设时间(如:每日下午六点、每日早上十点等)获取数据库中所有订单的订单数据,或者,电子设备也可以每隔预设时间段(例如:每隔一小时、每隔十二小时等)获取数据库中所有订单的订单数据,本技术实施例对此不作具体的限定。
55.其中,与上述实施例类似,数据库中的所有订单,既可以指自投放广告以来产生的所有订单,在该种情况中,数据库可以获取上游业务系统中的每一个订单的数据并存储;也可以指在一段时间之内的所有订单,在该种情况中,数据库可以获取上游业务系统中每一个订单的数据并存储,并在某些订单数据的存储时间超过预设时间段(如:一年、一个月等)后,清除该部分订单的数据,或将该部分订单的数据转存储至其他位置。
56.然后,电子设备可以根据结算规则记录表以及订单数据确定所有订单中满足计算消耗条件的订单,并根据结算规则记录表以及满足计算消耗条件的订单对应的订单数据,计算满足计算消耗条件的订单对应的订单消耗。其中,结算规则记录表可以事先存储在电子设备或者数据库中,包括多个结算规则标识、每个结算规则标识与至少一个结算规则的对应关系以及每个结算规则的生效时间。
57.在本技术实施例中,可以将电子设备获取到的订单分为三种类型:第一种,增量订单,即在上一次计算之后新增的订单;第二种,需要重新计算的存量订单,即在上一次计算之前便存在,但是由于某些原因导致需要重新对订单消耗进行计算的订单;第三种,不需要重新计算的存量新单,即在上一次计算之前便存在,且不需要重新对订单消耗进行计算的订单。
58.作为一种实施方式,步骤s202中满足计算消耗条件的订单,可以包括上述第一种类型的订单以及第二种类型的订单。也就是说,本技术实施例可以仅对满足计算消耗条件的这部分订单的订单消耗进行计算,无需计算所有订单的订单消耗,因此,可以降低订单消耗过程的计算量以及耗时。
59.下面依次对上述第一种类型的订单以及第二种类型的订单的确定方式以及计算
订单消耗的过程进行详细的介绍。
60.针对第一种类型的增量订单,请参照图3,图3为本技术实施例提供的另一种订单消耗计算方法的流程图,该订单消耗计算方法可以包括如下步骤:
61.步骤s301:获取数据库中所有订单的订单数据。
62.步骤s302:根据订单生成时间查找所有订单中的增量订单。
63.步骤s303:根据结算规则记录表以及订单数据计算增量订单对应的订单消耗。
64.具体的,电子设备获取的订单数据中可以包括订单生成时间,由于增量订单为上一次计算之后新增的订单,因此可以根据订单生成时间,来对增量订单进行筛选。
65.作为一种实施方式,上述步骤s302可以包括如下步骤:
66.查找所有订单中,订单生成时间与当前时间的差值小于预设时间差的订单。
67.举例来说,若电子设备隔一小时计算一次订单消耗,则预设时间差可以为一小时。如果订单生成时间与当前时间的差值小于一小时,则可以认为该订单是在上一次计算之后新增的订单,如:订单生成时间为十四点二十分,当前时间为十五点,则该订单为增量订单。
68.作为另一种实施方式,上述步骤s302可以包括如下步骤:
69.查找所有订单中,订单生成时间在预设时间之后的订单。
70.举例来说,若电子设备在每日下午六点计算一次订单消耗,则预设时间可以为下午六点。如果订单生成时间在预设时间之后,则可以认为该订单是在上一次计算之后新增的订单,如:订单生成时间为早上六点,预设时间为下午六点,则该订单为增量订单。
71.对于增量订单,电子设备可以直接根据结算规则记录表以及订单数据计算增量订单对应的订单消耗。具体的,电子设备可以根据增量订单的结算规则标识以及订单生成时间从结算规则记录表中查询到该订单对应的结算规则,并基于查询到的结算规则计算订单消耗。
72.因此,可以根据结算规则记录表以及订单生成时间先将所有订单中的增量订单筛选出来,从而可以根据计算规则记录表对该部分增量订单的订单消耗进行计算,无需计算所有订单的订单消耗,因此,可以降低订单消耗过程的计算量以及耗时。
73.针对第二种类型的需要重新计算的存量订单,又可以细分为两种类型:第一种,发生退款行为的存量订单;第二种,结算规则发生改变的存量订单。
74.针对第一种发生退款行为的存量订单,请参照图4,图4为本技术实施例提供的另一种订单消耗计算方法的流程图,该订单消耗计算方法可以包括如下步骤:
75.步骤s401:获取数据库中所有订单的订单数据。
76.步骤s402:根据订单生成时间以及订单状态查找所有订单中发生退款行为的存量订单。
77.步骤s403:计算发生退款行为的存量订单对应的订单消耗为零。
78.具体的,电子设备获取的订单数据中可以包括订单生成时间以及订单状态。
79.首先,电子设备可以根据订单生成时间从所有订单中筛选出存量订单,与上述实施例中的增量订单相对应,存量订单即为在上一次计算之前便存在的订单,其筛选方式与增量订单的筛选方式类似,此处不再赘述。
80.然后,电子设备可以根据订单状态从所有存量订单中筛选出发生退款行为的存量订单,也就是说,上述步骤s402可以包括如下步骤:
81.查找所有订单中,订单生成时间与当前时间的差值大于预设时间差,且订单状态表征退款的订单。
82.可以理解的是,与筛选出增量订单的方式对应,筛选出存量订单的方式还可以采用查询订单生成时间在预设时间之后的订单,本技术实施例对此不作具体的限定。
83.此外,电子设备既可以先从所有订单中筛选出存量订单,再从所有的存量订单中筛选出发生退款行为的存量订单;电子设备也可以先从所有订单中筛选出发生退款行为的订单,再从所有发生退款行为的订单中筛选出存量订单,本技术实施例对此同样不作具体的限定。
84.对于发生退款行为的存量订单,可以直接将该订单的订单消耗计算为零。
85.需要说明的是,在本技术实施例中,可以采用impala引擎或者其他查询引擎在所有订单中筛选出发生退款行为的存量订单。
86.因此,可以根据结算规则记录表、订单生成时间以及订单状态先将所有订单中的发生退款行为的存量订单筛选出来,从而可以根据计算规则记录表对该部分存量订单的订单消耗进行计算,无需计算所有订单的订单消耗,因此,可以降低订单消耗过程的计算量以及耗时。
87.针对第二种结算规则发生改变的存量订单,请参照图5,图5为本技术实施例提供的另一种订单消耗计算方法的流程图,该订单消耗计算方法可以包括如下步骤:
88.步骤s501:获取数据库中所有订单的订单数据。
89.步骤s502:根据结算规则记录表,查找结算规则改变标识。
90.步骤s503:根据订单生成时间、结算规则标识以及结算规则改变标识查找所有订单中结算规则发生改变的存量订单。
91.步骤s504:根据订单生成时间以及结算规则标识从结算规则记录表中查找订单对应的发生改变后的结算规则。
92.步骤s505:根据发生改变后的结算规则计算结算规则发生改变的存量订单对应的订单消耗。
93.具体的,电子设备获取的订单数据中可以包括订单生成时间以及结算规则标识,其中,结算规则标识对应至少一个结算规则以及每个结算规则的生效时间。针对结算规则记录表中的每一结算规则标识,可以确定该结算规则标识对应的结算规则在上一次计算之后是否发生了变化,若该结算规则标识对应的结算规则在上一次计算之后发生了变化,则该结算规则标识即为结算规则改变标识。
94.然后,电子设备可以根据订单生成时间从所有订单中筛选出存量订单,再根据筛选出的结算规则改变标识以及所有存量订单的结算规则标识,筛选出所有存量订单中结算规则发生改变的存量订单。
95.可以理解的是,电子设备既可以先从所有订单中筛选出存量订单,再从所有的存量订单中筛选出结算规则发生改变的存量订单;电子设备也可以先从所有订单中筛选出结算规则发生改变的订单,再从所有结算规则发生改变的订单中筛选出存量订单,本技术实施例对此同样不作具体的限定。
96.对于结算规则发生改变的存量订单,电子设备可以根据其结算规则标识从结算规则记录表中查询到其发生改变后的结算规则,并基于查询到的结算规则计算器订单消耗。
因此,根据订单生成时间、结算规则标识以及结算规则改变标识查找所有订单中结算规则发生改变的存量订单,包括:查找所有订单中,订单生成时间与当前时间的差值大于预设时间差,且结算规则标识与结算规则改变标识匹配的订单。
97.需要说明的是,在本技术实施例中,可以采用impala引擎或者其他查询引擎在所有订单中筛选出结算规则发生改变的存量订单。
98.在上述方案中,可以根据结算规则记录表、订单生成时间以及结算规则标识先将所有订单中的计算规则发生改变的存量订单筛选出来,从而可以根据计算规则记录表对该部分存量订单的订单消耗进行计算,无需计算所有订单的订单消耗,因此,可以降低订单消耗过程的计算量以及耗时。
99.基于现有技术的方案可知,现有技术中订单消耗计算的总耗时主要由两个因子决定:第一,需要遍历的订单总数量;第二,单个订单计算订单消耗的处理时间。也就是说,现有技术中订单消耗计算的总耗时可以表示为如下公式:
100.s1=n
×
t;
101.其中,s1为现有技术中订单消耗计算的总耗时,n为需要遍历的订单总数量,t为单个订单计算订单消耗的处理时间。
102.在现有技术方案下,每小时都要获取全量订单,数量级在亿级,并且随着订单量总量n不断增加,计算订单消耗花费的时间s会越来越长,呈线性增长,在可预见的时间范围内,系统会变得越来越慢,最终不可用,不能给业务人员及时展现投放消耗,指导商务投放。
103.而基于本技术实施例中的方案,本技术实施例提供的订单消耗计算方法的总耗时可以表示为如下公式:
104.s2=n1×
t1+n2×
t2+n3×
t3;
105.其中,s2为本技术实施例提供的订单消耗计算方法的总耗时,n1为增量订单的总数量,t1为单个增量订单计算订单消耗的处理时间,n2为发生退款行为的存量订单的总数量,t2为单个发生退款行为的存量订单计算订单消耗的处理时间,n3为结算规则发生改变的存量订单的总数量,t3为单个结算规则发生改变的存量订单计算订单消耗的处理时间。
106.假设每个订单的处理时间基本一致为t

,可以将上式转换为:
107.s2=(n1+n2+n3)
×
t


108.在本技术实施例的方案下,n1为千级别,n2为百级别,n3为千级别,因此大大缩短了总耗时。
109.综上所述,可以根据结算规则记录表以及订单数据先将所有订单中满足计算消耗条件的订单筛选出来,从而可以仅对满足计算消耗条件的这部分订单的订单消耗进行计算,无需计算所有订单的订单消耗,因此,可以降低订单消耗过程的计算量以及耗时。
110.请参照图6,图6为本技术实施例提供的一种订单消耗计算装置的结构框图,该订单消耗计算装置600可以包括:获取模块601,用于获取数据库中所有订单的订单数据;确定模块602,用于根据结算规则记录表以及所述订单数据确定所有订单中满足计算消耗条件的订单;计算模块603,用于根据所述结算规则记录表以及满足所述计算消耗条件的订单对应的订单数据,计算满足所述计算消耗条件的订单对应的订单消耗。
111.在本技术实施例中,可以根据结算规则记录表以及订单数据先将所有订单中满足计算消耗条件的订单筛选出来,从而可以仅对满足计算消耗条件的这部分订单的订单消耗
进行计算,无需计算所有订单的订单消耗,因此,可以降低订单消耗过程的计算量以及耗时。
112.进一步的,所述订单数据包括订单生成时间;所述确定模块602具体用于:根据所述订单生成时间查找所有订单中的增量订单;其中,所述增量订单为满足所述计算消耗条件的订单。
113.在本技术实施例中,可以根据结算规则记录表以及订单生成时间先将所有订单中的增量订单筛选出来,从而可以根据计算规则记录表对该部分增量订单的订单消耗进行计算,无需计算所有订单的订单消耗,因此,可以降低订单消耗过程的计算量以及耗时。
114.进一步的,所述确定模块602具体用于:查找所有订单中,所述订单生成时间与当前时间的差值小于预设时间差的订单。
115.在本技术实施例中,可以根据结算规则记录表以及订单生成时间先将所有订单中的增量订单筛选出来,从而可以根据计算规则记录表对该部分增量订单的订单消耗进行计算,无需计算所有订单的订单消耗,因此,可以降低订单消耗过程的计算量以及耗时。
116.进一步的,所述订单数据包括订单生成时间以及订单状态;所述确定模块602具体用于:根据所述订单生成时间以及所述订单状态查找所有订单中发生退款行为的存量订单;其中,所述发生退款行为的存量订单为满足所述计算消耗条件的订单;所述计算模块具体用于,包括:计算所述发生退款行为的存量订单对应的订单消耗为零。
117.在本技术实施例中,可以根据结算规则记录表、订单生成时间以及订单状态先将所有订单中的发生退款行为的存量订单筛选出来,从而可以根据计算规则记录表对该部分存量订单的订单消耗进行计算,无需计算所有订单的订单消耗,因此,可以降低订单消耗过程的计算量以及耗时。
118.进一步的,所述确定模块602具体用于:查找所有订单中,所述订单生成时间与当前时间的差值大于预设时间差,且所述订单状态表征退款的订单。
119.在本技术实施例中,可以根据结算规则记录表、订单生成时间以及订单状态先将所有订单中的发生退款行为的存量订单筛选出来,从而可以根据计算规则记录表对该部分存量订单的订单消耗进行计算,无需计算所有订单的订单消耗,因此,可以降低订单消耗过程的计算量以及耗时。
120.进一步的,所述订单数据包括订单生成时间以及结算规则标识,其中,所述结算规则标识对应至少一个结算规则以及每个结算规则的生效时间,所述结算规则记录表包括多个结算规则标识、每个结算规则标识与至少一个结算规则的对应关系以及每个结算规则的生效时间;所述确定模块602具体用于:根据所述结算规则记录表,查找结算规则改变标识;其中,所述结算规则改变标识为在预设时间段内对应的结算规则发生改变的结算规则标识;根据所述订单生成时间、所述结算规则标识以及所述结算规则改变标识查找所有订单中结算规则发生改变的存量订单;其中,所述结算规则发生改变的存量订单为满足所述计算消耗条件的订单;所述计算模块具体用于:根据所述订单生成时间以及所述结算规则标识从所述结算规则记录表中查找订单对应的发生改变后的结算规则;根据所述发生改变后的结算规则计算所述结算规则发生改变的存量订单对应的订单消耗。
121.在本技术实施例中,可以根据结算规则记录表、订单生成时间以及结算规则标识先将所有订单中的计算规则发生改变的存量订单筛选出来,从而可以根据计算规则记录表
对该部分存量订单的订单消耗进行计算,无需计算所有订单的订单消耗,因此,可以降低订单消耗过程的计算量以及耗时。
122.进一步的,所述确定模块602具体用于:查找所有订单中,所述订单生成时间与当前时间的差值大于预设时间差,且所述结算规则标识与所述结算规则改变标识匹配的订单。
123.在本技术实施例中,可以根据结算规则记录表、订单生成时间以及结算规则标识先将所有订单中的计算规则发生改变的存量订单筛选出来,从而可以根据计算规则记录表对该部分存量订单的订单消耗进行计算,无需计算所有订单的订单消耗,因此,可以降低订单消耗过程的计算量以及耗时。
124.请参照图7,图7为本技术实施例提供的一种电子设备的结构框图,该电子设备700包括:至少一个处理器701,至少一个通信接口702,至少一个存储器703和至少一个通信总线704。其中,通信总线704用于实现这些组件直接的连接通信,通信接口702用于与其他节点设备进行信令或数据的通信,存储器703存储有处理器701可执行的机器可读指令。当电子设备700运行时,处理器701与存储器703之间通过通信总线704通信,机器可读指令被处理器701调用时执行上述订单消耗计算方法。
125.例如,本技术实施例的处理器701通过通信总线704从存储器703读取计算机程序并执行该计算机程序可以实现如下方法:步骤s101:从上游业务系统中获取所有订单的原始数据。步骤s102:根据原始数据确定每一个订单的来源渠道、订单状态以及结算规则,得到订单数据。步骤s103:将订单数据写入数据库中。在一些示例中,处理器701还可以对配置项进行更新,也就是说,可以执行如下步骤:步骤s201:获取数据库中所有订单的订单数据。步骤s202:根据结算规则记录表以及订单数据确定所有订单中满足计算消耗条件的订单。步骤s203:根据结算规则记录表以及满足计算消耗条件的订单对应的订单数据,计算满足计算消耗条件的订单对应的订单消耗。
126.处理器701可以是一种集成电路芯片,具有信号处理能力。上述处理器701可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。其可以实现或者执行本技术实施例中公开的各种方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
127.存储器703可以包括但不限于随机存取存储器(random access memory,ram),只读存储器(read only memory,rom),可编程只读存储器(programmable read-only memory,prom),可擦除只读存储器(erasable programmable read-only memory,eprom),电可擦除只读存储器(electric erasable programmable read-only memory,eeprom)等。
128.可以理解,图7所示的结构仅为示意,电子设备700还可包括比图7中所示更多或者更少的组件,或者具有与图7所示不同的配置。图7中所示的各组件可以采用硬件、软件或其组合实现。于本技术实施例中,电子设备700可以是,但不限于台式机、笔记本电脑、智能手机、智能穿戴设备、车载设备等实体设备,还可以是虚拟机等虚拟设备。另外,电子设备700也不一定是单台设备,还可以是多台设备的组合,例如服务器集群,等等。
129.本技术实施例还提供一种计算机程序产品,包括存储在非暂态计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被计算机执行时,计算机能够执行上述实施例中订单消耗计算方法的步骤,例如包括:获取数据库中所有订单的订单数据;根据结算规则记录表以及所述订单数据确定所有订单中满足计算消耗条件的订单;根据所述结算规则记录表以及满足所述计算消耗条件的订单对应的订单数据,计算满足所述计算消耗条件的订单对应的订单消耗。
130.在本技术所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
131.另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
132.再者,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
133.在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
134.以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1