CN110264281A - 乘车计费方法及装置 - Google Patents
乘车计费方法及装置 Download PDFInfo
- Publication number
- CN110264281A CN110264281A CN201910562563.2A CN201910562563A CN110264281A CN 110264281 A CN110264281 A CN 110264281A CN 201910562563 A CN201910562563 A CN 201910562563A CN 110264281 A CN110264281 A CN 110264281A
- Authority
- CN
- China
- Prior art keywords
- bus
- record
- time
- recorded
- transfer
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0207—Discounts or incentives, e.g. coupons or rebates
- G06Q30/0224—Discounts or incentives, e.g. coupons or rebates based on user history
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0283—Price estimation or determination
Landscapes
- Business, Economics & Management (AREA)
- Development Economics (AREA)
- Strategic Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Economics (AREA)
- Game Theory and Decision Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Marketing (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Traffic Control Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种乘车计费方法及装置,属于公共交通领域。所述方法包括:如果接收到用户的第一乘车记录,根据所述第一乘车记录的乘车时间,从所述用户的历史乘车记录中进行查询,得到第一时间区间内的历史乘车记录;从所述第一时间区间内的历史乘车记录中,确定乘车时间最晚的第二乘车记录;如果所述第二乘车记录的左参考时间与所述第一乘车记录的乘车时间之间的时间间隔小于或等于所述时间间隔阈值,根据所述换乘优惠策略,获取所述第一乘车记录的乘车费用信息。本申请通过将用户的乘车记录按照乘车时间,正确进行换乘优惠计算,可以避免错误扣费的问题。
Description
技术领域
本申请涉及公共交通领域,尤其涉及一种乘车计费方法及装置。
背景技术
在公共交通行业,越来越多的公交公司和轨道交通公司开始积极尝试提供二维码乘车方式,在提供二维码乘车方式的同时,公交公司和轨道交通公司希望为乘客提供换乘优惠策略,以降低用户的换乘成本。在提供换乘优惠策略时,如何进行乘车计费成为一个值得关注的问题。
目前,用户在乘坐车辆时,将手机的二维码对准车辆的刷卡机,刷卡机通过摄像头识别二维码,验证二维码是否有效,验证有效后记录用户的乘车信息,包括车辆编号、线路编号和乘车时间(刷码时间)等,并提示用户刷码成功请上车。刷卡机提示用户上车后,将该乘车信息作为一条乘车记录上传给服务器,服务器判断当前接收到的乘车记录与第一次接收到的乘车记录之间的乘车时间间隔是否在优惠时间范围内(如30分钟内),如果在优惠时间范围内,则享受换乘优惠,计算换乘优惠后的费用作为用户本次乘车的费用,如果不在优惠时间段内,则不享受换乘优惠,将原始费用作为用户本次乘车的费用。
上述技术在对当前接收到的乘车记录进行计费时,按照与第一次接收到的乘车记录之间的乘车时间间隔来提供换乘优惠,由于乘车记录的上送是一个异步过程,而且可能会经历多层传递,每个过程都可能由于网络问题或者服务器、刷码机故障等原因导致用户的乘车记录无法按照正常乘车的顺序上送,这样服务器接收到的用户乘车记录是乱序的,第一次产生的乘车记录还未上传到服务器,后产生的乘车记录可能已经上传到了服务器,如果仅按照与第一次接收到的乘车记录之间的乘车时间间隔进行计费,容易导致错误计费,例如,换乘优惠为折扣型优惠(如30分钟内5折优惠),用户四次乘车信息的顺序为A-B-C-D,A、B和C之间的乘车时间间隔在30分钟内,B、C和D之间的乘车时间间隔在30分钟内,A和D之间的乘车时间间隔超过了30分钟,原始票价为1元,则按照正常顺序计费应该依次为1元、0.5元、0.5元和1元,一共3元,但如果顺序异常为B-C-D-A,则计费依次为1元、0.5元、0.5元和0.5元,一共2.5元。因此,亟需一种乘车计费方法,来避免乘车记录乱序时的错误计费问题。
发明内容
本申请实施例提供了一种乘车计费方法及装置,可以解决相关技术中乘车记录乱序时的错误计费问题。所述技术方案如下:
第一方面,提供一种乘车计费方法,包括:
如果接收到用户的第一乘车记录,根据所述第一乘车记录的乘车时间,从所述用户的历史乘车记录中进行查询,得到第一时间区间内的历史乘车记录,所述第一时间区间的结束时间为所述第一乘车记录的乘车时间,所述第一时间区间的时间间隔等于换乘优惠策略所指示的时间间隔阈值;
从所述第一时间区间内的历史乘车记录中,确定乘车时间最晚的第二乘车记录;
如果所述第二乘车记录的左参考时间与所述第一乘车记录的乘车时间之间的时间间隔小于或等于所述时间间隔阈值,根据所述换乘优惠策略,获取所述第一乘车记录的乘车费用信息;
其中,所述第二乘车记录的左参考时间为所述第二乘车记录所属计费区间内乘车时间最早的乘车记录的乘车时间,同一个计费区间内任意两个乘车记录之间的乘车时间间隔小于或等于所述时间间隔阈值。
在一种可能实现方式中,所述如果所述第二乘车记录的左参考时间与所述第一乘车记录的乘车时间之间的时间间隔小于或等于所述时间间隔阈值,根据所述换乘优惠策略,获取所述第一乘车记录的乘车费用信息,包括:
如果所述第二乘车记录的左参考时间与所述第一乘车记录的乘车时间之间的时间间隔小于或等于所述时间间隔阈值,统计所述第二乘车记录所属计费区间的优惠使用次数;
如果所述第二乘车记录所属计费区间的优惠使用次数小于或等于所述换乘优惠策略所指示的优惠次数阈值,执行根据所述换乘优惠策略,获取所述第一乘车记录的乘车费用信息的步骤。
在一种可能实现方式中,所述如果所述第二乘车记录的左参考时间与所述第一乘车记录的乘车时间之间的时间间隔小于或等于所述时间间隔阈值,根据所述换乘优惠策略,获取所述第一乘车记录的乘车费用信息,包括:
如果所述第二乘车记录的左参考时间与所述第一乘车记录的乘车时间之间的时间间隔小于或等于所述时间间隔阈值,获取所述第一乘车记录对应的折扣优惠信息;
根据所述第一乘车记录的折扣优惠信息,获取所述第一乘车记录的乘车费用信息。
在一种可能实现方式中,所述获取所述第一乘车记录对应的折扣优惠信息,包括:
根据所述第一乘车记录的乘车时间与所述第二乘车记录的左参考时间之间的时间间隔,从所述换乘优惠策略所指示的多个换乘时间间隔中,确定所述第一乘车记录对应的换乘时间间隔;
根据所述第一乘车记录对应的换乘时间间隔,获取所述第一乘车记录对应的折扣优惠信息,不同的换乘时间间隔对应不同的折扣优惠信息。
在一种可能实现方式中,所述获取所述第一乘车记录对应的折扣优惠信息,包括:
根据所述第二乘车记录所属计费区间内乘车记录的数量,获取所述第一乘车记录对应的换乘次数;
根据所述第一乘车记录对应的换乘次数,获取所述第一乘车记录对应的折扣优惠信息,不同的换乘次数对应不同的折扣优惠信息。
在一种可能实现方式中,所述获取所述第一乘车记录对应的折扣优惠信息,包括:
根据所述第一乘车记录的乘车时间与所述第二乘车记录的左参考时间之间的时间间隔,从所述换乘优惠策略所指示的多个换乘时间间隔中,确定所述第一乘车记录对应的换乘时间间隔;
根据所述第二乘车记录所属计费区间内乘车记录的数量,获取所述第一乘车记录对应的换乘次数;
根据所述第一乘车记录对应的换乘时间间隔和换乘次数,获取所述第一乘车记录对应的折扣优惠信息,不同的换乘时间间隔和换乘次数对应不同的折扣优惠信息。
在一种可能实现方式中,所述方法还包括:
如果从所述用户的历史乘车记录中,未查询到所述第一时间区间内的历史乘车记录,根据所述第一乘车记录的乘车时间,从所述用户的历史乘车记录中进行查询,得到第二时间区间内的历史乘车记录;
其中,所述第二时间区间的开始时间为所述第一乘车记录的乘车时间,所述第二时间区间的时间间隔等于所述时间间隔阈值。
在一种可能实现方式中,所述从所述第一时间区间内的历史乘车记录中,确定乘车时间最晚的第二乘车记录之后,所述方法还包括:
如果所述第二乘车记录的左参考时间与所述第一乘车记录的乘车时间之间的时间间隔大于所述时间间隔阈值,根据所述第一乘车记录的乘车时间,从所述用户的历史乘车记录中进行查询,得到第二时间区间内的历史乘车记录,所述第二时间区间的开始时间为所述第一乘车记录的乘车时间,所述第二时间区间的时间间隔等于所述时间间隔阈值;
从所述第二时间区间内的历史乘车记录中,确定乘车时间最早的第三乘车记录;
如果所述第三乘车记录的右参考时间与所述第一乘车记录的乘车时间之间的时间间隔小于或等于所述时间间隔阈值,根据所述换乘优惠策略,获取所述第一乘车记录的乘车费用信息,第三乘车记录的右参考时间为所述第三乘车记录所属计费区间内乘车时间最晚的乘车记录的乘车时间。
在一种可能实现方式中,所述如果所述第三乘车记录的右参考时间与所述第一乘车记录的乘车时间之间的时间间隔小于或等于所述时间间隔阈值,根据所述换乘优惠策略,获取所述第一乘车记录的乘车费用信息,包括:
如果所述第三乘车记录的右参考时间与所述第一乘车记录的乘车时间之间的时间间隔小于或等于所述时间间隔阈值,统计所述第三乘车记录所属计费区间的优惠使用次数;
如果所述第三乘车记录所属计费区间的优惠使用次数小于或等于所述换乘优惠策略所指示的优惠次数阈值,执行根据所述换乘优惠策略,获取所述第一乘车记录的乘车费用信息的步骤。
在一种可能实现方式中,所述如果所述第三乘车记录的右参考时间与所述第一乘车记录的乘车时间之间的时间间隔小于或等于所述时间间隔阈值,根据所述换乘优惠策略,获取所述第一乘车记录的乘车费用信息,包括:
如果所述第三乘车记录的右参考时间与所述第一乘车记录的乘车时间之间的时间间隔小于或等于所述时间间隔阈值,获取所述第一乘车记录对应的折扣优惠信息;
根据所述第一乘车记录的折扣优惠信息,获取所述第一乘车记录的乘车费用信息。
在一种可能实现方式中,所述获取所述第一乘车记录对应的折扣优惠信息,包括:
根据所述第一乘车记录的乘车时间与所述第三乘车记录的右参考时间之间的时间间隔,从所述换乘优惠策略所指示的多个换乘时间间隔中,确定所述第一乘车记录对应的换乘时间间隔;
根据所述第一乘车记录对应的换乘时间间隔,获取所述第一乘车记录对应的折扣优惠信息,不同的换乘时间间隔对应不同的折扣优惠信息。
在一种可能实现方式中,所述获取所述第一乘车记录对应的折扣优惠信息,包括:
根据所述第三乘车记录所属计费区间内乘车记录的数量,获取所述第一乘车记录对应的换乘次数;
根据所述第一乘车记录对应的换乘次数,获取所述第一乘车记录对应的折扣优惠信息,不同的换乘次数对应不同的折扣优惠信息。
在一种可能实现方式中,所述获取所述第一乘车记录对应的折扣优惠信息,包括:
根据所述第一乘车记录的乘车时间与所述第三乘车记录的右参考时间之间的时间间隔,从所述换乘优惠策略所指示的多个换乘时间间隔中,确定所述第一乘车记录对应的换乘时间间隔;
根据所述第三乘车记录所属计费区间内乘车记录的数量,获取所述第一乘车记录对应的换乘次数;
根据所述第一乘车记录对应的换乘时间间隔和换乘次数,获取所述第一乘车记录对应的折扣优惠信息,不同的换乘时间间隔和换乘次数对应不同的折扣优惠信息。
在一种可能实现方式中,所述从所述第二时间区间内的历史乘车记录中,确定乘车时间最早的第三乘车记录之后,所述方法还包括:
如果所述第三乘车记录的右参考时间与所述第一乘车记录的乘车时间之间的时间间隔大于所述时间间隔阈值,获取所述第一乘车记录的原始费用作为所述第一乘车记录的乘车费用信息。
在一种可能实现方式中,所述方法还包括:
如果从所述用户的历史乘车记录中,未查询到所述第二时间区间内的历史乘车记录,获取所述第一乘车记录的原始费用作为所述第一乘车记录的乘车费用信息。
在一种可能实现方式中,所述接收到用户的第一乘车记录之后,所述方法还包括:
获取配置信息,所述配置信息用于指示支持换乘优惠策略的车辆运营方以及所述车辆运营方支持换乘优惠策略的乘车时间、乘车线路或车辆;
如果根据所述配置信息,确定所述第一乘车记录支持换乘优惠策略,执行从所述用户的历史乘车记录中进行查询的步骤。
在一种可能实现方式中,所述接收到用户的第一乘车记录之后,所述方法还包括:
采用分布式锁的控制方式,执行从所述用户的历史乘车记录中进行查询以及获取所述第一乘车记录的乘车费用信息的步骤,所述分布式锁的控制方式用于控制分布式系统在同一时刻对同一用户的一个乘车记录进行计费。
第二方面,提供一种乘车计费装置,包括:
查询模块,用于如果接收到用户的第一乘车记录,根据所述第一乘车记录的乘车时间,从所述用户的历史乘车记录中进行查询,得到第一时间区间内的历史乘车记录,所述第一时间区间的结束时间为所述第一乘车记录的乘车时间,所述第一时间区间的时间间隔等于换乘优惠策略所指示的时间间隔阈值;
确定模块,用于从所述第一时间区间内的历史乘车记录中,确定乘车时间最晚的第二乘车记录;
获取模块,用于如果所述第二乘车记录的左参考时间与所述第一乘车记录的乘车时间之间的时间间隔小于或等于所述时间间隔阈值,根据所述换乘优惠策略,获取所述第一乘车记录的乘车费用信息;
其中,所述第二乘车记录的左参考时间为所述第二乘车记录所属计费区间内乘车时间最早的乘车记录的乘车时间,同一个计费区间内任意两个乘车记录之间的乘车时间间隔小于或等于所述时间间隔阈值。
在一种可能实现方式中,所述获取模块用于:
如果所述第二乘车记录的左参考时间与所述第一乘车记录的乘车时间之间的时间间隔小于或等于所述时间间隔阈值,统计所述第二乘车记录所属计费区间的优惠使用次数;
如果所述第二乘车记录所属计费区间的优惠使用次数小于或等于所述换乘优惠策略所指示的优惠次数阈值,执行根据所述换乘优惠策略,获取所述第一乘车记录的乘车费用信息的步骤。
在一种可能实现方式中,所述获取模块用于:
如果所述第二乘车记录的左参考时间与所述第一乘车记录的乘车时间之间的时间间隔小于或等于所述时间间隔阈值,获取所述第一乘车记录对应的折扣优惠信息;
根据所述第一乘车记录的折扣优惠信息,获取所述第一乘车记录的乘车费用信息。
在一种可能实现方式中,所述获取模块用于:
根据所述第一乘车记录的乘车时间与所述第二乘车记录的左参考时间之间的时间间隔,从所述换乘优惠策略所指示的多个换乘时间间隔中,确定所述第一乘车记录对应的换乘时间间隔;
根据所述第一乘车记录对应的换乘时间间隔,获取所述第一乘车记录对应的折扣优惠信息,不同的换乘时间间隔对应不同的折扣优惠信息。
在一种可能实现方式中,所述获取模块用于:
根据所述第二乘车记录所属计费区间内乘车记录的数量,获取所述第一乘车记录对应的换乘次数;
根据所述第一乘车记录对应的换乘次数,获取所述第一乘车记录对应的折扣优惠信息,不同的换乘次数对应不同的折扣优惠信息。
在一种可能实现方式中,所述获取模块用于:
根据所述第一乘车记录的乘车时间与所述第二乘车记录的左参考时间之间的时间间隔,从所述换乘优惠策略所指示的多个换乘时间间隔中,确定所述第一乘车记录对应的换乘时间间隔;
根据所述第二乘车记录所属计费区间内乘车记录的数量,获取所述第一乘车记录对应的换乘次数;
根据所述第一乘车记录对应的换乘时间间隔和换乘次数,获取所述第一乘车记录对应的折扣优惠信息,不同的换乘时间间隔和换乘次数对应不同的折扣优惠信息。
在一种可能实现方式中,所述查询模块还用于如果从所述用户的历史乘车记录中,未查询到所述第一时间区间内的历史乘车记录,根据所述第一乘车记录的乘车时间,从所述用户的历史乘车记录中进行查询,得到第二时间区间内的历史乘车记录;
其中,所述第二时间区间的开始时间为所述第一乘车记录的乘车时间,所述第二时间区间的时间间隔等于所述时间间隔阈值。
在一种可能实现方式中,所述查询模块还用于如果所述第二乘车记录的左参考时间与所述第一乘车记录的乘车时间之间的时间间隔大于所述时间间隔阈值,根据所述第一乘车记录的乘车时间,从所述用户的历史乘车记录中进行查询,得到第二时间区间内的历史乘车记录,所述第二时间区间的开始时间为所述第一乘车记录的乘车时间,所述第二时间区间的时间间隔等于所述时间间隔阈值;
所述确定模块还用于从所述第二时间区间内的历史乘车记录中,确定乘车时间最早的第三乘车记录;
所述获取模块还用于如果所述第三乘车记录的右参考时间与所述第一乘车记录的乘车时间之间的时间间隔小于或等于所述时间间隔阈值,根据所述换乘优惠策略,获取所述第一乘车记录的乘车费用信息,第三乘车记录的右参考时间为所述第三乘车记录所属计费区间内乘车时间最晚的乘车记录的乘车时间。
在一种可能实现方式中,所述获取模块用于:
如果所述第三乘车记录的右参考时间与所述第一乘车记录的乘车时间之间的时间间隔小于或等于所述时间间隔阈值,统计所述第三乘车记录所属计费区间的优惠使用次数;
如果所述第三乘车记录所属计费区间的优惠使用次数小于或等于所述换乘优惠策略所指示的优惠次数阈值,执行根据所述换乘优惠策略,获取所述第一乘车记录的乘车费用信息的步骤。
在一种可能实现方式中,所述获取模块用于:
如果所述第三乘车记录的右参考时间与所述第一乘车记录的乘车时间之间的时间间隔小于或等于所述时间间隔阈值,获取所述第一乘车记录对应的折扣优惠信息;
根据所述第一乘车记录的折扣优惠信息,获取所述第一乘车记录的乘车费用信息。
在一种可能实现方式中,所述获取模块用于:
根据所述第一乘车记录的乘车时间与所述第三乘车记录的右参考时间之间的时间间隔,从所述换乘优惠策略所指示的多个换乘时间间隔中,确定所述第一乘车记录对应的换乘时间间隔;
根据所述第一乘车记录对应的换乘时间间隔,获取所述第一乘车记录对应的折扣优惠信息,不同的换乘时间间隔对应不同的折扣优惠信息。
在一种可能实现方式中,所述获取模块用于:
根据所述第三乘车记录所属计费区间内乘车记录的数量,获取所述第一乘车记录对应的换乘次数;
根据所述第一乘车记录对应的换乘次数,获取所述第一乘车记录对应的折扣优惠信息,不同的换乘次数对应不同的折扣优惠信息。
在一种可能实现方式中,所述获取模块用于:
根据所述第一乘车记录的乘车时间与所述第三乘车记录的右参考时间之间的时间间隔,从所述换乘优惠策略所指示的多个换乘时间间隔中,确定所述第一乘车记录对应的换乘时间间隔;
根据所述第三乘车记录所属计费区间内乘车记录的数量,获取所述第一乘车记录对应的换乘次数;
根据所述第一乘车记录对应的换乘时间间隔和换乘次数,获取所述第一乘车记录对应的折扣优惠信息,不同的换乘时间间隔和换乘次数对应不同的折扣优惠信息。
在一种可能实现方式中,所述获取模块还用于如果所述第三乘车记录的右参考时间与所述第一乘车记录的乘车时间之间的时间间隔大于所述时间间隔阈值,获取所述第一乘车记录的原始费用作为所述第一乘车记录的乘车费用信息。
在一种可能实现方式中,所述获取模块还用于如果从所述用户的历史乘车记录中,未查询到所述第二时间区间内的历史乘车记录,获取所述第一乘车记录的原始费用作为所述第一乘车记录的乘车费用信息。
在一种可能实现方式中,所述获取模块还用于获取配置信息,所述配置信息用于指示支持换乘优惠策略的车辆运营方以及所述车辆运营方支持换乘优惠策略的乘车时间、乘车线路或车辆;
所述查询模块还用于如果根据所述配置信息,确定所述第一乘车记录支持换乘优惠策略,执行从所述用户的历史乘车记录中进行查询的步骤。
在一种可能实现方式中,所述查询模块还用于采用分布式锁的控制方式,执行从所述用户的历史乘车记录中进行查询的步骤;
所述获取模块还用于采用分布式锁的控制方式,执行获取所述第一乘车记录的乘车费用信息的步骤,所述分布式锁的控制方式用于控制分布式系统在同一时刻对同一用户的一个乘车记录进行计费。
第三方面,提供了一种服务器,包括一个或多个处理器和一个或多个存储器;所述一个或多个存储器,用于存放计算机程序;所述一个或多个处理器,用于执行所述一个或多个存储器上所存放的计算机程序,实现第一方面任一种实现方式所述的方法步骤。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面任一种实现方式所述的方法步骤。
本申请实施例提供的技术方案带来的有益效果至少包括:
通过在接收到用户的第一乘车记录时,根据第一乘车记录的乘车时间,从用户的历史乘车记录中进行查询,得到第一时间区间内的历史乘车记录,第一时间区间内的历史乘车记录的乘车时间早于第一乘车记录的乘车时间,且与第一乘车记录的乘车时间间隔小于或等于换乘优惠策略所指示的时间间隔阈值,然后从第一时间区间内的历史乘车记录中,找到乘车时间最晚的一个乘车记录作为第二乘车记录,如果第二乘车记录的左参考时间与第一乘车记录的乘车时间之间的时间间隔未超过时间间隔阈值,则确定第一乘车记录能够享受换乘优惠,因而根据换乘优惠策略,获取第一乘车记录的乘车费用信息。通过将用户的乘车记录按照乘车时间,正确进行换乘优惠计算,可以避免错误扣费的问题。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种实施环境的示意图;
图2是本申请实施例提供的一种乘车计费方法的流程图;
图3是本申请实施例提供的一种乘车计费方法的流程图;
图4是本申请实施例提供的一种乘车计费方法的流程图;
图5是本申请实施例提供的一种乘车计费装置的结构示意图;
图6是本申请实施例提供的一种服务器600的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
图1是本申请实施例提供的一种实施环境的示意图。参见图1,该实施环境包括移动终端101、电子设备102和服务器103。
其中,移动终端101可以是手机、平板电脑等用户设备,用户可以在移动终端101上进行操作,触发移动终端101显示乘车的二维码。电子设备102可以是刷码器、闸机等,电子设备102可以通过摄像头识别移动终端101显示的二维码,并与服务器103进行交互,将用户的乘车记录上传给服务器103。服务器用于接收电子设备102上传的乘车记录,对乘车记录进行计费。
图2是本申请实施例提供的一种乘车计费方法的流程图。参见图2,该方法包括:
201、如果接收到用户的第一乘车记录,根据该第一乘车记录的乘车时间,从该用户的历史乘车记录中进行查询,得到第一时间区间内的历史乘车记录,该第一时间区间的结束时间为该第一乘车记录的乘车时间,该第一时间区间的时间间隔等于换乘优惠策略所指示的时间间隔阈值。
202、从该第一时间区间内的历史乘车记录中,确定乘车时间最晚的第二乘车记录。
203、如果该第二乘车记录的左参考时间与该第一乘车记录的乘车时间之间的时间间隔小于或等于该时间间隔阈值,根据该换乘优惠策略,获取该第一乘车记录的乘车费用信息。
其中,该第二乘车记录的左参考时间为该第二乘车记录所属计费区间内乘车时间最早的乘车记录的乘车时间,同一个计费区间内任意两个乘车记录之间的乘车时间间隔小于或等于该时间间隔阈值。
本申请实施例提供的方法,通过在接收到用户的第一乘车记录时,根据第一乘车记录的乘车时间,从用户的历史乘车记录中进行查询,得到第一时间区间内的历史乘车记录,第一时间区间内的历史乘车记录的乘车时间早于第一乘车记录的乘车时间,且与第一乘车记录的乘车时间间隔小于或等于换乘优惠策略所指示的时间间隔阈值,然后从第一时间区间内的历史乘车记录中,找到乘车时间最晚的一个乘车记录作为第二乘车记录,如果第二乘车记录的左参考时间与第一乘车记录的乘车时间之间的时间间隔未超过时间间隔阈值,则确定第一乘车记录能够享受换乘优惠,因而根据换乘优惠策略,获取第一乘车记录的乘车费用信息。通过将用户的乘车记录按照乘车时间,正确进行换乘优惠计算,可以避免错误扣费的问题。
在一种可能实现方式中,该如果该第二乘车记录的左参考时间与该第一乘车记录的乘车时间之间的时间间隔小于或等于该时间间隔阈值,根据该换乘优惠策略,获取该第一乘车记录的乘车费用信息,包括:
如果该第二乘车记录的左参考时间与该第一乘车记录的乘车时间之间的时间间隔小于或等于该时间间隔阈值,统计该第二乘车记录所属计费区间的优惠使用次数;
如果该第二乘车记录所属计费区间的优惠使用次数小于或等于该换乘优惠策略所指示的优惠次数阈值,执行根据该换乘优惠策略,获取该第一乘车记录的乘车费用信息的步骤。
在一种可能实现方式中,该如果该第二乘车记录的左参考时间与该第一乘车记录的乘车时间之间的时间间隔小于或等于该时间间隔阈值,根据该换乘优惠策略,获取该第一乘车记录的乘车费用信息,包括:
如果该第二乘车记录的左参考时间与该第一乘车记录的乘车时间之间的时间间隔小于或等于该时间间隔阈值,获取该第一乘车记录对应的折扣优惠信息;
根据该第一乘车记录的折扣优惠信息,获取该第一乘车记录的乘车费用信息。
在一种可能实现方式中,该获取该第一乘车记录对应的折扣优惠信息,包括:
根据该第一乘车记录的乘车时间与该第二乘车记录的左参考时间之间的时间间隔,从该换乘优惠策略所指示的多个换乘时间间隔中,确定该第一乘车记录对应的换乘时间间隔;
根据该第一乘车记录对应的换乘时间间隔,获取该第一乘车记录对应的折扣优惠信息,不同的换乘时间间隔对应不同的折扣优惠信息。
在一种可能实现方式中,该获取该第一乘车记录对应的折扣优惠信息,包括:
根据该第二乘车记录所属计费区间内乘车记录的数量,获取该第一乘车记录对应的换乘次数;
根据该第一乘车记录对应的换乘次数,获取该第一乘车记录对应的折扣优惠信息,不同的换乘次数对应不同的折扣优惠信息。
在一种可能实现方式中,该获取该第一乘车记录对应的折扣优惠信息,包括:
根据该第一乘车记录的乘车时间与该第二乘车记录的左参考时间之间的时间间隔,从该换乘优惠策略所指示的多个换乘时间间隔中,确定该第一乘车记录对应的换乘时间间隔;
根据该第二乘车记录所属计费区间内乘车记录的数量,获取该第一乘车记录对应的换乘次数;
根据该第一乘车记录对应的换乘时间间隔和换乘次数,获取该第一乘车记录对应的折扣优惠信息,不同的换乘时间间隔和换乘次数对应不同的折扣优惠信息。
在一种可能实现方式中,该方法还包括:
如果从该用户的历史乘车记录中,未查询到该第一时间区间内的历史乘车记录,根据该第一乘车记录的乘车时间,从该用户的历史乘车记录中进行查询,得到第二时间区间内的历史乘车记录;
其中,该第二时间区间的开始时间为该第一乘车记录的乘车时间,该第二时间区间的时间间隔等于该时间间隔阈值。
在一种可能实现方式中,该从该第一时间区间内的历史乘车记录中,确定乘车时间最晚的第二乘车记录之后,该方法还包括:
如果该第二乘车记录的左参考时间与该第一乘车记录的乘车时间之间的时间间隔大于该时间间隔阈值,根据该第一乘车记录的乘车时间,从该用户的历史乘车记录中进行查询,得到第二时间区间内的历史乘车记录,该第二时间区间的开始时间为该第一乘车记录的乘车时间,该第二时间区间的时间间隔等于该时间间隔阈值;
从该第二时间区间内的历史乘车记录中,确定乘车时间最早的第三乘车记录;
如果该第三乘车记录的右参考时间与该第一乘车记录的乘车时间之间的时间间隔小于或等于该时间间隔阈值,根据该换乘优惠策略,获取该第一乘车记录的乘车费用信息,第三乘车记录的右参考时间为该第三乘车记录所属计费区间内乘车时间最晚的乘车记录的乘车时间。
在一种可能实现方式中,该如果该第三乘车记录的右参考时间与该第一乘车记录的乘车时间之间的时间间隔小于或等于该时间间隔阈值,根据该换乘优惠策略,获取该第一乘车记录的乘车费用信息,包括:
如果该第三乘车记录的右参考时间与该第一乘车记录的乘车时间之间的时间间隔小于或等于该时间间隔阈值,统计该第三乘车记录所属计费区间的优惠使用次数;
如果该第三乘车记录所属计费区间的优惠使用次数小于或等于该换乘优惠策略所指示的优惠次数阈值,执行根据该换乘优惠策略,获取该第一乘车记录的乘车费用信息的步骤。
在一种可能实现方式中,该如果该第三乘车记录的右参考时间与该第一乘车记录的乘车时间之间的时间间隔小于或等于该时间间隔阈值,根据该换乘优惠策略,获取该第一乘车记录的乘车费用信息,包括:
如果该第三乘车记录的右参考时间与该第一乘车记录的乘车时间之间的时间间隔小于或等于该时间间隔阈值,获取该第一乘车记录对应的折扣优惠信息;
根据该第一乘车记录的折扣优惠信息,获取该第一乘车记录的乘车费用信息。
在一种可能实现方式中,该获取该第一乘车记录对应的折扣优惠信息,包括:
根据该第一乘车记录的乘车时间与该第三乘车记录的右参考时间之间的时间间隔,从该换乘优惠策略所指示的多个换乘时间间隔中,确定该第一乘车记录对应的换乘时间间隔;
根据该第一乘车记录对应的换乘时间间隔,获取该第一乘车记录对应的折扣优惠信息,不同的换乘时间间隔对应不同的折扣优惠信息。
在一种可能实现方式中,该获取该第一乘车记录对应的折扣优惠信息,包括:
根据该第三乘车记录所属计费区间内乘车记录的数量,获取该第一乘车记录对应的换乘次数;
根据该第一乘车记录对应的换乘次数,获取该第一乘车记录对应的折扣优惠信息,不同的换乘次数对应不同的折扣优惠信息。
在一种可能实现方式中,该获取该第一乘车记录对应的折扣优惠信息,包括:
根据该第一乘车记录的乘车时间与该第三乘车记录的右参考时间之间的时间间隔,从该换乘优惠策略所指示的多个换乘时间间隔中,确定该第一乘车记录对应的换乘时间间隔;
根据该第三乘车记录所属计费区间内乘车记录的数量,获取该第一乘车记录对应的换乘次数;
根据该第一乘车记录对应的换乘时间间隔和换乘次数,获取该第一乘车记录对应的折扣优惠信息,不同的换乘时间间隔和换乘次数对应不同的折扣优惠信息。
在一种可能实现方式中,该从该第二时间区间内的历史乘车记录中,确定乘车时间最早的第三乘车记录之后,该方法还包括:
如果该第三乘车记录的右参考时间与该第一乘车记录的乘车时间之间的时间间隔大于该时间间隔阈值,获取该第一乘车记录的原始费用作为该第一乘车记录的乘车费用信息。
在一种可能实现方式中,该方法还包括:
如果从该用户的历史乘车记录中,未查询到该第二时间区间内的历史乘车记录,获取该第一乘车记录的原始费用作为该第一乘车记录的乘车费用信息。
在一种可能实现方式中,该接收到用户的第一乘车记录之后,该方法还包括:
获取配置信息,该配置信息用于指示支持换乘优惠策略的车辆运营方以及该车辆运营方支持换乘优惠策略的乘车时间、乘车线路或车辆;
如果根据该配置信息,确定该第一乘车记录支持换乘优惠策略,执行从该用户的历史乘车记录中进行查询的步骤。
在一种可能实现方式中,该接收到用户的第一乘车记录之后,该方法还包括:
采用分布式锁的控制方式,执行从该用户的历史乘车记录中进行查询以及获取该第一乘车记录的乘车费用信息的步骤,该分布式锁的控制方式用于控制分布式系统在同一时刻对同一用户的一个乘车记录进行计费。
上述所有可选技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
图3是本申请实施例提供的一种乘车计费方法的流程图。该方法由服务器执行,参见图3,该方法包括:
301、如果接收到用户的第一乘车记录,根据该第一乘车记录的乘车时间,从该用户的历史乘车记录中进行查询,得到第一时间区间内的历史乘车记录。
其中,该第一时间区间的结束时间为该第一乘车记录的乘车时间,该第一时间区间的时间间隔等于换乘优惠策略所指示的时间间隔阈值。例如,第一乘车记录的乘车时间为C,换乘优惠策略所指示的时间间隔阈值为K,则第一时间区间为[C-K,C]。
其中,用户的第一乘车记录是服务器当前接收到的该用户的乘车记录,用户的历史乘车记录是服务器之前接收到的该用户的乘车记录。
本申请实施例中,用户每次采用二维码方式乘车时,刷卡机可以将用户本次的乘车记录上传给服务器,该乘车记录中可以包括乘车时间、车辆、线路、车辆运营方等。由于服务器接收到的乘车记录可能是乱序的,因此,服务器在当前接收到第一乘车记录之前,可能已经接收到了乘车时间早于该第一乘车记录的乘车记录,或者乘车时间晚于该第一乘车记录的乘车记录,这些乘车记录可以作为该用户的历史乘车记录。
服务器在接收到第一乘车记录时,可以从用户的历史乘车记录中先执行左查询过程,也即是,根据第一乘车记录的乘车时间,查询乘车时间位于第一时间区间[C-K,C]内的历史乘车记录,也即是,查询乘车时间早于该第一乘车记录的乘车时间且与第一乘车记录的乘车时间间隔不大于时间间隔阈值的历史乘车记录。
在一种可能实现方式中,服务器在接收到用户的第一乘车记录后,可以获取配置信息,该配置信息用于指示支持换乘优惠策略的车辆运营方以及该车辆运营方支持换乘优惠策略的乘车时间、乘车线路或车辆;如果根据该配置信息,确定该第一乘车记录支持换乘优惠策略,执行从该用户的历史乘车记录中进行查询的步骤。其中,车辆运营方可以是公交公司或轨道交通,该配置信息还可以指示车辆运营方的基础票价信息,发生换乘的车辆之间保持票价一致。
服务器在接收到第一乘车记录时,可以获取预先存储的配置信息。如果第一乘车记录的乘车时间、线路或车辆满足车辆运营方的要求,也即是,配置信息指示支持换乘优惠策略的车辆运营方包括第一乘车记录中的车辆运营方,配置信息指示的车辆运营方支持的乘车时间、车辆或线路包括第一乘车记录的乘车时间、车辆或线路,则服务器可以确定第一乘车记录支持换乘优惠策略,从而执行查询步骤,以计算第一乘车记录的乘车费用。
在一些实施例中,服务器在接收到第一乘车记录时,可以进行计费去重,也即是,判断第一乘车记录是否已经根据换乘优惠策略计算过乘车费用信息了,如果是,则无需再次对该乘车记录执行步骤301的查询过程以及后续获取乘车费用信息的步骤。这样可以避免一个乘车记录进行优惠计算后,由于扣款失败导致重新扣款时又重新对该乘车记录进行优惠计算的问题。
302、从该第一时间区间内的历史乘车记录中,确定乘车时间最晚的第二乘车记录,执行步骤303或步骤304。
本申请实施例中,如果服务器查询到第一时间区间内的历史乘车记录,服务器可以从第一时间区间内的历史乘车记录中,确定出乘车时间最晚的一个历史乘车记录作为第二乘车记录。例如,服务器可以对第一时间区间内的历史乘车记录进行降序排序,从右往左,乘车时间越早的历史乘车记录排序越靠左,乘车时间越晚的历史乘车记录排序越靠右,服务器可以将排在最右边的历史乘车记录作为第二乘车记录。
服务器可以根据换乘优惠策略判断第一乘车记录能否享受优惠,换乘优惠策略用于指示用户在某一时间间隔阈值内换乘时能够享受优惠以及如何享受优惠,因此,服务器在确定出第二乘车记录后,可以确定该第二乘车记录的左参考时间,该第二乘车记录的左参考时间为该第二乘车记录所属计费区间内乘车时间最早的乘车记录的乘车时间,同一个计费区间内任意两个乘车记录之间的乘车时间间隔小于或等于该时间间隔阈值。然后,服务器可以对该第一乘车记录进行左参考时间匹配,计算第二乘车记录的左参考时间与第一乘车记录的乘车时间之间的时间间隔,根据该时间间隔与换乘优惠策略指示的时间间隔阈值之间的关系,执行相应的步骤,获取第一乘车记录的乘车费用信息。
具体地,如果第二乘车记录的左参考时间与第一乘车记录的乘车时间之间的时间间隔小于或等于时间间隔阈值,执行步骤303,如果第二乘车记录的左参考时间与第一乘车记录的乘车时间之间的时间间隔大于时间间隔阈值,执行步骤304。
303、如果该第二乘车记录的左参考时间与该第一乘车记录的乘车时间之间的时间间隔小于或等于时间间隔阈值,根据换乘优惠策略,获取该第一乘车记录的乘车费用信息。
本申请实施例中,如果第二乘车记录的左参考时间与第一乘车记录的乘车时间之间的时间间隔小于或等于时间间隔阈值,服务器可以确定该第一乘车记录属于该第二乘车记录所属的计费区间,此时,服务器可以根据换乘优惠策略,计算第一乘车记录的乘车费用。
在一种可能实现方式中,换乘优惠策略可以有优惠次数的限制,当前还剩余优惠次数时才能享受优惠。相应地,该步骤303可以包括:如果该第二乘车记录的左参考时间与该第一乘车记录的乘车时间之间的时间间隔小于或等于该时间间隔阈值,统计该第二乘车记录所属计费区间的优惠使用次数;如果该优惠使用次数小于或等于该换乘优惠策略所指示的优惠次数阈值,执行根据该换乘优惠策略,获取该第一乘车记录的乘车费用信息的步骤。
对于第二乘车记录所属计费区间的历史乘车记录,服务器可能针对其中的某些乘车记录已经使用过优惠,也即是,根据换乘优惠策略获取这些乘车记录的乘车费用。因此,服务器可以统计该计费区间内的优惠使用次数,如果优惠使用次数未达到优惠次数阈值,则表明服务器可以对当前的第一乘车记录使用优惠,此时,服务器可以执行根据该换乘优惠策略,获取该第一乘车记录的乘车费用信息的步骤。其中,针对优惠使用次数的统计,服务器可以通过一条记录来统计第二乘车记录所属计费区间的优惠使用次数,例如,服务器每针对该计费区间内的乘车记录使用一次优惠,则可以更新该记录中的优惠使用次数,即将优惠使用次数加1。
在一种可能实现方式中,换乘优惠策略可以指示对乘车记录进行折扣优惠。相应地,该步骤303可以包括:如果第二乘车记录的左参考时间与该第一乘车记录的乘车时间之间的时间间隔小于或等于该时间间隔阈值,获取该第一乘车记录对应的折扣优惠信息;根据该第一乘车记录的折扣优惠信息,获取该第一乘车记录的乘车费用信息。
如果换乘优惠策略为折扣优惠,服务器可以根据换乘优惠策略,获取该第一乘车记录对应的折扣优惠信息,然后根据折扣优惠信息,计算第一乘车记录折扣优惠后的乘车费用。
在一种可能实现方式中,换乘优惠策略可以指示不同换乘时间间隔的梯度折扣优惠,如30分钟内免费,120分钟内5折。相应地,该获取该第一乘车记录对应的折扣优惠信息,包括:根据该第一乘车记录的乘车时间与第二乘车记录的左参考时间之间的时间间隔,从该换乘优惠策略所指示的多个换乘时间间隔中,确定该第一乘车记录对应的换乘时间间隔;根据该第一乘车记录对应的换乘时间间隔,获取该第一乘车记录对应的折扣优惠信息,不同的换乘时间间隔对应不同的折扣优惠信息。
服务器可以根据第一乘车记录的乘车时间与第二乘车记录的左参考时间之间的时间间隔,从换乘优惠策略所指示的多个换乘时间间隔中,确定大于该时间间隔的换乘时间间隔,从大于该时间间隔的换乘时间间隔中选取最小的换乘时间间隔作为第一乘车记录的换乘时间间隔,服务器可以获取该换乘时间间隔对应的折扣优惠信息作为第一乘车记录对应的折扣优惠信息。
在一种可能实现方式中,换乘优惠策略可以指示不同换乘次数的梯度折扣优惠,如换乘1次免费,之后每次都5折。相应地,该获取该第一乘车记录对应的折扣优惠信息,包括:根据该第二乘车记录所属计费区间内乘车记录的数量,获取该第一乘车记录对应的换乘次数;根据该第一乘车记录对应的换乘次数,获取该第一乘车记录对应的折扣优惠信息,不同的换乘次数对应不同的折扣优惠信息。
服务器可以统计第二乘车记录所属计费区间内的历史乘车记录的数量,将历史乘车记录的数量减1得到用户当前的历史换乘次数,将历史换乘次数加1得到第一乘车记录对应的换乘次数,服务器可以获取该换乘次数对应的折扣优惠信息作为第一乘车记录对应的折扣优惠信息。
在一种可能实现方式中,换乘优惠策略可以指示不同换乘时间间隔不同换乘次数的梯度折扣优惠,如30分钟内1次免费,120分钟内不限次数5折。相应地,该获取该第一乘车记录对应的折扣优惠信息,包括:根据该第一乘车记录的乘车时间与第二乘车记录的左参考时间之间的时间间隔,从该换乘优惠策略所指示的多个换乘时间间隔中,确定该第一乘车记录对应的换乘时间间隔;根据该第二乘车记录所属计费区间内乘车记录的数量,获取该第一乘车记录对应的换乘次数;根据该第一乘车记录对应的换乘时间间隔和换乘次数,获取该第一乘车记录对应的折扣优惠信息,不同的换乘时间间隔和换乘次数对应不同的折扣优惠信息。
服务器在确定第一乘车记录对应的换乘时间间隔和换乘次数后,可以将该第换乘时间间隔和换乘次数对应的折扣优惠信息作为第一乘车记录对应的折扣优惠信息。
在一些实施例中,换乘优惠策略还可以指示不同线路不同车辆的不同折扣优惠,如针对线路1和车辆A的折扣为6折,针对线路1和车辆B的折扣为5折,针对线路2和车辆B的折扣为4折。相应地,该获取该第一乘车记录对应的折扣优惠信息,包括:根据该第一乘车记录的车辆和线路,确定该第一乘车记录对应的折扣优惠信息。例如,第一乘车记录的车辆为车辆A、线路为线路1,则可以确定第一乘车记录能够享受6折优惠。
304、如果第二乘车记录的左参考时间与该第一乘车记录的乘车时间之间的时间间隔大于该时间间隔阈值,根据该第一乘车记录的乘车时间,从该用户的历史乘车记录中进行查询,得到第二时间区间内的历史乘车记录。
其中,该第二时间区间的开始时间为该第一乘车记录的乘车时间,该第二时间区间的时间间隔等于该时间间隔阈值。
本申请实施例中,如果服务器在步骤301中先执行左查询过程,得到第二乘车记录,但第二乘车记录的左参考时间与第一乘车记录的乘车时间之间的时间间隔大于时间间隔阈值,则服务器可以确定该第一乘车记录不属于该第二乘车记录所属的计费区间,此时,服务器可以执行右查询过程,也即是,根据第一乘车记录的乘车时间,查询乘车时间位于第二时间区间[C,C+K]内的历史乘车记录,也即是,查询乘车时间晚于该第一乘车记录的乘车时间且与第一乘车记录的乘车时间间隔不大于时间间隔阈值的历史乘车记录。
该步骤304是以服务器查询到第二时间区间内的历史乘车记录为例进行说明,在一些实施例中,在该步骤304中,如果从该用户的历史乘车记录中,未查询到第二时间区间内的历史乘车记录,服务器可以获取该第一乘车记录的原始费用作为该第一乘车记录的乘车费用信息。如果服务器未查询到第二时间区间内的历史乘车记录,则服务器可以确认第一乘车记录不能享受换乘优惠,此时,服务器可以将第一乘车记录计费为原始费用。
需要说明的是,该步骤304是在步骤301中先查询到第一时间区间内的历史乘车记录的前提下,查询第二时间区间内的历史乘车记录的一种情况。服务器还可以在其他情况下查询第二时间区间内的历史乘车记录,例如,如果从该用户的历史乘车记录中,未查询到该第一时间区间内的历史乘车记录,则服务器根据该第一乘车记录的乘车时间,从该用户的历史乘车记录中进行查询,得到第二时间区间内的历史乘车记录,然后执行后续步骤305。
305、从该第二时间区间内的历史乘车记录中,确定乘车时间最早的第三乘车记录,执行步骤306或步骤307。
本申请实施例中,如果服务器查询到第二时间区间内的历史乘车记录,服务器可以从第二时间区间内的历史乘车记录中,确定出乘车时间最早的一个历史乘车记录作为第三乘车记录。例如,服务器可以对第一时间区间内的历史乘车记录进行升序排序,从左往右,乘车时间越早的历史乘车记录排序越靠左,乘车时间越晚的历史乘车记录排序越靠右,服务器可以将排在最左边的历史乘车记录作为第三乘车记录。
服务器在确定出第三乘车记录后,可以确定该第三乘车记录的右参考时间,第三乘车记录的右参考时间为该第三乘车记录所属计费区间内乘车时间最晚的乘车记录的乘车时间。然后,服务器可以对该第一乘车记录进行右参考时间匹配,计算第三乘车记录的右参考时间与第一乘车记录的乘车时间之间的时间间隔,根据该时间间隔与换乘优惠策略指示的时间间隔阈值之间的关系,执行相应的步骤,获取第一乘车记录的乘车费用信息。
具体地,如果第三乘车记录的右参考时间与第一乘车记录的乘车时间之间的时间间隔小于或等于时间间隔阈值,执行步骤306,如果第二乘车记录的右参考时间与第一乘车记录的乘车时间之间的时间间隔大于时间间隔阈值,执行步骤307。
306、如果该第三乘车记录的右参考时间与该第一乘车记录的乘车时间之间的时间间隔小于或等于该时间间隔阈值,根据该换乘优惠策略,获取该第一乘车记录的乘车费用信息,第三乘车记录的右参考时间为该第三乘车记录所属计费区间内乘车时间最晚的乘车记录的乘车时间。
本申请实施例中,如果第三乘车记录的右参考时间与第一乘车记录的乘车时间之间的时间间隔小于或等于时间间隔阈值,服务器可以确定该第一乘车记录属于该第二乘车记录所属的计费区间,此时,服务器可以根据换乘优惠策略,计算第一乘车记录的乘车费用。
在一种可能实现方式中,换乘优惠策略可以有优惠次数的限制,当前还剩余优惠次数时才能享受优惠。相应地,该步骤306可以包括:如果该第三乘车记录的右参考时间与该第一乘车记录的乘车时间之间的时间间隔小于或等于该时间间隔阈值,统计该第三乘车记录所属计费区间的优惠使用次数;如果该第三乘车记录所属计费区间的优惠使用次数小于或等于该换乘优惠策略所指示的优惠次数阈值,执行根据该换乘优惠策略,获取该第一乘车记录的乘车费用信息的步骤。
对于第三乘车记录所属计费区间的历史乘车记录,服务器可能针对其中的某些乘车记录已经使用过优惠,也即是,根据换乘优惠策略获取这些乘车记录的乘车费用。因此,服务器可以统计该计费区间内的优惠使用次数,如果优惠使用次数未达到优惠次数阈值,则表明服务器可以对当前的第一乘车记录使用优惠,此时,服务器可以执行根据该换乘优惠策略,获取该第一乘车记录的乘车费用信息的步骤。其中,针对优惠使用次数的统计,服务器可以通过一条记录来统计第三乘车记录所属计费区间的优惠使用次数,例如,服务器每针对该计费区间内的乘车记录使用一次优惠,则可以更新该记录中的优惠使用次数,即将优惠使用次数加1。
在一种可能实现方式中,换乘优惠策略可以指示对乘车记录进行折扣优惠。相应地,该步骤303可以包括:如果该第三乘车记录的右参考时间与该第一乘车记录的乘车时间之间的时间间隔小于或等于该时间间隔阈值,获取该第一乘车记录对应的折扣优惠信息;根据该第一乘车记录的折扣优惠信息,获取该第一乘车记录的乘车费用信息。
在一种可能实现方式中,换乘优惠策略可以指示不同换乘时间间隔的梯度折扣优惠,如30分钟内免费,120分钟内5折。相应地,该获取该第一乘车记录对应的折扣优惠信息,包括:根据该第一乘车记录的乘车时间与该第三乘车记录的右参考时间之间的时间间隔,从该换乘优惠策略所指示的多个换乘时间间隔中,确定该第一乘车记录对应的换乘时间间隔;根据该第一乘车记录对应的换乘时间间隔,获取该第一乘车记录对应的折扣优惠信息,不同的换乘时间间隔对应不同的折扣优惠信息。
服务器可以根据第一乘车记录的乘车时间与第三乘车记录的右参考时间之间的时间间隔,从换乘优惠策略所指示的多个换乘时间间隔中,确定大于该时间间隔的换乘时间间隔,从大于该时间间隔的换乘时间间隔中选取最小的换乘时间间隔作为第一乘车记录的换乘时间间隔,服务器可以获取该换乘时间间隔对应的折扣优惠信息作为第一乘车记录对应的折扣优惠信息。
在一种可能实现方式中,换乘优惠策略可以指示不同换乘次数的梯度折扣优惠,如换乘1次免费,之后每次都5折。相应地,该获取该第一乘车记录对应的折扣优惠信息,包括:根据该第三乘车记录所属计费区间内乘车记录的数量,获取该第一乘车记录对应的换乘次数;根据该第一乘车记录对应的换乘次数,获取该第一乘车记录对应的折扣优惠信息,不同的换乘次数对应不同的折扣优惠信息。
服务器可以统计第三乘车记录所属计费区间内的历史乘车记录的数量,将历史乘车记录的数量减1得到用户当前的历史换乘次数,将历史换乘次数加1得到第一乘车记录对应的换乘次数,服务器可以获取该换乘次数对应的折扣优惠信息作为第一乘车记录对应的折扣优惠信息。
在一种可能实现方式中,换乘优惠策略可以指示不同换乘时间间隔不同换乘次数的梯度折扣优惠,如30分钟内1次免费,120分钟内不限次数5折。相应地,获取该第一乘车记录对应的折扣优惠信息,包括:根据该第一乘车记录的乘车时间与该第三乘车记录的右参考时间之间的时间间隔,从该换乘优惠策略所指示的多个换乘时间间隔中,确定该第一乘车记录对应的换乘时间间隔;根据该第三乘车记录所属计费区间内乘车记录的数量,获取该第一乘车记录对应的换乘次数;根据该第一乘车记录对应的换乘时间间隔和换乘次数,获取该第一乘车记录对应的折扣优惠信息,不同的换乘时间间隔和换乘次数对应不同的折扣优惠信息。
307、如果第三乘车记录的右参考时间与该第一乘车记录的乘车时间之间的时间间隔大于该时间间隔阈值,获取该第一乘车记录的原始费用作为该第一乘车记录的乘车费用信息。
本申请实施例中,步骤307是在左查询到的第二乘车记录的左参考时间与第一乘车记录的乘车时间之间的时间间隔大于时间间隔阈值,也即是,第一乘车记录不属于第二乘车记录所属计费区间的前提下执行的步骤,如果右查询到的第三乘车记录的右参考时间与第一乘车记录的乘车时间之间的时间间隔也大于时间间隔阈值,也即是,第一乘车记录不属于第三乘车记录所属计费区间,则表明第一乘车记录不能享受换乘优惠,此时,服务器可以将第一乘车记录计费为原始费用。
上述步骤301至步骤307是服务器在接收到第一乘车记录时,根据第一乘车记录的乘车时间,从该用户的历史乘车记录中进行查询,根据查询结果获取第一乘车记录的乘车费用信息的过程。在一种可能实现方式中,服务器可以采用分布式锁的控制方式,执行从该用户的历史乘车记录中进行查询以及获取该第一乘车记录的乘车费用信息的步骤,该分布式锁的控制方式用于控制分布式系统在同一时刻对同一用户的一个乘车记录进行计费。通过根据用户维度进行分布式锁控制,可以保证相同用户在同一时刻仅有一笔记录在计费,提高了计费结果的准确性。
为了更直观的描述本申请实施例提供的上述技术方案,下面将结合图4所示的流程图,对上述技术方案进行说明。参见图4,提供了一种乘车计费方法的流程图,如图4所示,服务器在当前接收到乘车记录后,可以进行计费去重,也即是,判断当前乘车记录是否已经计算过优惠了,如果是,则不再对该乘车记录进行优惠计算,这样可以避免一个乘车记录进行优惠计算后,由于扣款失败导致重新扣款时又重新对该乘车记录进行优惠计算的问题。服务器可以获取配置信息,判断当前乘车记录是否支持换乘优惠策略。如果当前乘车记录不支持换乘优惠策略,则服务器可以采用其他折扣计算策略,获取当前乘车记录的乘车费用信息。如果当前乘车记录支持换乘优惠策略,则标记当前乘车记录为支持换乘优惠策略的乘车记录,根据用户维度获取分布式锁,采用分布式锁的控制方式,计算当前乘车记录的乘车费用。服务器可以获取换乘优惠策略,读取最大优惠时间宽度K,也即是,换乘优惠策略所指示的时间间隔阈值K。
服务器可以先执行左查询,根据当前乘车记录的乘车时间查询乘车时间位于区间[C-K,C]的乘车记录,C是第一乘车记录的乘车时间,K是换乘优惠策略指示的时间间隔阈值,对这些乘车记录进行降序排序,从右往左,乘车时间越早的乘车记录排序越靠左。如果左查询结果不为空,则根据乘车时间由近及远遍历这些降序排序后的乘车记录,找到最近的第一个乘车记录作为第二乘车记录,确定其左参考时间LT。服务器可以进行左参考时间匹配,也即是,判断找到的第二乘车记录是否符合条件,该条件为第二乘车记录的左参考时间与第一乘车记录的乘车时间之间的时间间隔小于或等于换乘优惠策略所指示的时间间隔阈值,也即是,第二乘车记录的左参考时间与第一乘车记录的乘车时间处于区间[C-K,C]中。如果服务器找到符合条件的第二乘车记录,则服务器可以统计优惠使用次数,也即是,统计乘车时间处于第二乘车记录所属计费区间内的历史乘车记录已经使用优惠的次数,第二乘车记录所属计费区间的左参考时间为该计费区间内乘车时间最早的乘车记录的乘车时间,右参考时间为该计费区间中乘车时间最晚的乘车记录的乘车时间。如果优惠使用次数未超过优惠次数阈值,则服务器可以根据第一乘车记录对应的折扣优惠信息,计算第一乘车记录折扣优惠后的乘车费用,如果换乘优惠策略指示30分钟内只有一次免费,120分钟内不限次数5折,那么第一次享受优惠时会计费为0元,之后会计费为5折后的费用。服务器可以将该第一乘车记录划分到第二乘车记录所属计费区间内,服务器还可以更新第二乘车记录所属计费区间的右参考时间,具体地,如果第一乘车记录的乘车时间晚于该计费区间内的任一乘车记录的乘车时间,则服务器可以将该计费区间的右参考时间更新为该第一乘车记录的乘车时间。
如图4所示,如果执行左查询后,左查询结果为空,或者,左查询结果不为空但服务器未找到符合条件的第二乘车记录,则执行右查询,根据当前乘车时间查询乘车时间位于区间[C,C+K]的乘车记录,对这些乘车记录进行升序排序,从左往右,乘车时间越晚的乘车记录排序越靠右。如果右查询结果不为空,则根据乘车时间由近及远遍历这些升序排序后的乘车记录,找到最近的第一个乘车记录作为第三乘车记录,确定其右参考时间RT。服务器可以进行右参考时间匹配,也即是,判断找到的第三乘车记录是否符合条件,该条件为第三乘车记录的右参考时间与第一乘车记录的乘车时间之间的时间间隔小于或等于换乘优惠策略所指示的时间间隔阈值,也即是,第三乘车记录的右参考时间与第一乘车记录的乘车时间处于区间[C,C+K]中。如果服务器找到符合条件的第三乘车记录,则服务器可以统计优惠使用次数,也即是,统计乘车时间处于第三乘车记录所属计费区间内的历史乘车记录已经使用优惠的次数,第三乘车记录所属计费区间的右参考时间为该计费区间内乘车时间最晚的乘车记录的乘车时间,左参考时间为该计费区间内乘车时间最早的乘车记录的乘车时间。如果优惠使用次数未超过优惠次数阈值,则服务器可以根据第一乘车记录对应的折扣优惠信息,计算第一乘车记录折扣优惠后的乘车费用,如果换乘优惠策略指示30分钟内只有一次免费,120分钟内不限次数5折,那么第一次享受优惠时会计费为0元,之后会计费为5折后的费用。服务器可以将该第一乘车记录划分到第三乘车记录所属计费区间内,服务器还可以更新第三乘车记录所属计费区间的左参考时间,具体地,如果第一乘车记录的乘车时间早于该计费区间内的任一乘车记录的乘车时间,则服务器可以将该计费区间的左参考时间更新为该第一乘车记录的乘车时间。
如图4所示,如果执行右查询后,右查询结果为空,或者,右查询结果不为空但服务器未找到符合条件的第三乘车记录,则服务器对第一乘车记录计费为原始费用。
服务器在获取到第一乘车记录的乘车费用后,可以向终端返回第一乘车记录的乘车费用信息,该乘车费用信息可以是折扣优惠后的乘车费用,也可以是原始费用,该乘车费用是按照策略获取的符合车辆运营方要求的乘车费用。
上述技术方案对于当前接收到的乘车记录,先从当天的历史乘车记录中,查询第一时间区间内的乘车记录,再从中找到乘车时间最晚的一个乘车记录作为第二乘车记录,根据第二乘车记录的左参考时间与第一乘车记录的乘车时间之间的时间间隔,确定当前乘车记录是否能享受换乘优惠。如果未查询到第一时间区间内的乘车记录,则可以从天的历史乘车记录中,查询第二时间区间内的乘车记录,再从中找到乘车时间最早的一个乘车记录作为第三乘车记录,根据第三乘车记录的右参考时间与第一乘车记录的乘车时间之间的时间间隔,确定当前乘车记录是否能享受换乘优惠。
假设某公交公式有以下的换乘优惠策略:换乘线路的基础票价为1元,全天用户两次乘车如果发生在30分钟之内(当前乘车与当天的第一次乘车之间的乘车时间间隔不超过30分钟)5折优惠,用户四次乘车记录的顺序为A-B-C-D,A、B和C之间的乘车时间间隔在30分钟内,B、C和D之间的乘车时间间隔在30分钟内,A和D之间的乘车时间间隔超过了30分钟,按照正常顺序计费应该依次为1元、0.5元、0.5元和1元,一共3元。
如果按照相关技术的乘车计费方法,用户四次乘车记录的顺序发生如下乱序时,计费如表1所示:
表1
从表1可以看出,理应计费3元但是因为乱序上送会给用户计费2.5元。例如,如果顺序异常为B-C-D-A,则计费依次为1元、0.5元、0.5元和0.5元,一共2.5元。
本申请实施例提供的技术方案在假设用户换乘车辆的基础票价一致时,使用二维码乘车换乘时如果避免异步上送行程产生的扣费总额不一致问题。本申请提出了扣费区间的概念,可以将乘车记录按照用户乘车时间正确进行计费,避免乘车记录异步上送产生的错误计费问题。
使用本申请实施例提供的技术方案进行计费时,假设仍使用上述换乘优惠策略,对于表1中的各种上送顺序的计费如下:
表2
由表2可知,对于所有的上送顺序,如果用户的所有乘车记录都被上送时只会有一种计费结果即3元。其中“|”表示计费区间的划分,同一个计费区间内任意两个乘车记录之间的乘车时间间隔均小于时间间隔阈值,如30分钟。
例如,如果顺序异常为B-C-D-A,则按照本申请实施例提供的技术方案,如果接收到乘车记录B,左查询结果为空,右查询结果为空,则乘车记录B的乘车费用为原始费用1元。如果接收到乘车记录C,左查询得到乘车记录B,C与B之间的乘车时间间隔未超过30分钟,则将B和A划分到一个计费区间,乘车记录A的乘车费用为0.5元。如果接收到乘车记录D,左查询得到乘车记录B,D与B之间的乘车时间间隔未超过30分钟,则将D与C和B划分到一个计费区间,乘车记录D的乘车费用为0.5元。如果接收到乘车记录A,左查询结果为空,右查询得到乘车记录D,A与D之间的乘车时间间隔超过了30分钟,则将A划分到另一个计费区间,乘车记录A的乘车费用为原始费用1元。
本申请提供的方法,可以基于二维码乘公交或地铁时实行换乘且能保证用户的乘车记录乱序上送时仍可以正确计费,在计算时可以采用梯度折扣优惠的算法,可以满足公交或地铁公司对于不同时间段、不同换乘次数的梯度折扣优惠需求,还可扩充到针对不同线路不同车辆不同折扣的需求。
本申请实施例提供的方法,通过在接收到用户的第一乘车记录时,根据第一乘车记录的乘车时间,从用户的历史乘车记录中进行查询,得到第一时间区间内的历史乘车记录,第一时间区间内的历史乘车记录的乘车时间早于第一乘车记录的乘车时间,且与第一乘车记录的乘车时间间隔小于或等于换乘优惠策略所指示的时间间隔阈值,然后从第一时间区间内的历史乘车记录中,找到乘车时间最晚的一个乘车记录作为第二乘车记录,如果第二乘车记录的左参考时间与第一乘车记录的乘车时间之间的时间间隔未超过时间间隔阈值,则确定第一乘车记录能够享受换乘优惠,因而根据换乘优惠策略,获取第一乘车记录的乘车费用信息。通过将用户的乘车记录按照乘车时间,正确进行换乘优惠计算,可以避免错误扣费的问题。
图5是本申请实施例提供的一种乘车计费装置的结构示意图。参照图5,该装置包括:
查询模块501,用于如果接收到用户的第一乘车记录,根据该第一乘车记录的乘车时间,从该用户的历史乘车记录中进行查询,得到第一时间区间内的历史乘车记录,该第一时间区间的结束时间为该第一乘车记录的乘车时间,该第一时间区间的时间间隔等于换乘优惠策略所指示的时间间隔阈值;
确定模块502,用于从该第一时间区间内的历史乘车记录中,确定乘车时间最晚的第二乘车记录;
获取模块503,用于如果该第二乘车记录的左参考时间与该第一乘车记录的乘车时间之间的时间间隔小于或等于该时间间隔阈值,根据该换乘优惠策略,获取该第一乘车记录的乘车费用信息;
其中,该第二乘车记录的左参考时间为该第二乘车记录所属计费区间内乘车时间最早的乘车记录的乘车时间,同一个计费区间内任意两个乘车记录之间的乘车时间间隔小于或等于该时间间隔阈值。
在一种可能实现方式中,该获取模块503用于:
如果该第二乘车记录的左参考时间与该第一乘车记录的乘车时间之间的时间间隔小于或等于该时间间隔阈值,统计该第二乘车记录所属计费区间的优惠使用次数;
如果该第二乘车记录所属计费区间的优惠使用次数小于或等于该换乘优惠策略所指示的优惠次数阈值,执行根据该换乘优惠策略,获取该第一乘车记录的乘车费用信息的步骤。
在一种可能实现方式中,该获取模块503用于:
如果该第二乘车记录的左参考时间与该第一乘车记录的乘车时间之间的时间间隔小于或等于该时间间隔阈值,获取该第一乘车记录对应的折扣优惠信息;
根据该第一乘车记录的折扣优惠信息,获取该第一乘车记录的乘车费用信息。
在一种可能实现方式中,该获取模块503用于:
根据该第一乘车记录的乘车时间与该第二乘车记录的左参考时间之间的时间间隔,从该换乘优惠策略所指示的多个换乘时间间隔中,确定该第一乘车记录对应的换乘时间间隔;
根据该第一乘车记录对应的换乘时间间隔,获取该第一乘车记录对应的折扣优惠信息,不同的换乘时间间隔对应不同的折扣优惠信息。
在一种可能实现方式中,该获取模块503用于:
根据该第二乘车记录所属计费区间内乘车记录的数量,获取该第一乘车记录对应的换乘次数;
根据该第一乘车记录对应的换乘次数,获取该第一乘车记录对应的折扣优惠信息,不同的换乘次数对应不同的折扣优惠信息。
在一种可能实现方式中,该获取模块503用于:
根据该第一乘车记录的乘车时间与该第二乘车记录的左参考时间之间的时间间隔,从该换乘优惠策略所指示的多个换乘时间间隔中,确定该第一乘车记录对应的换乘时间间隔;
根据该第二乘车记录所属计费区间内乘车记录的数量,获取该第一乘车记录对应的换乘次数;
根据该第一乘车记录对应的换乘时间间隔和换乘次数,获取该第一乘车记录对应的折扣优惠信息,不同的换乘时间间隔和换乘次数对应不同的折扣优惠信息。
在一种可能实现方式中,该查询模块501还用于如果从该用户的历史乘车记录中,未查询到该第一时间区间内的历史乘车记录,根据该第一乘车记录的乘车时间,从该用户的历史乘车记录中进行查询,得到第二时间区间内的历史乘车记录;
其中,该第二时间区间的开始时间为该第一乘车记录的乘车时间,该第二时间区间的时间间隔等于该时间间隔阈值。
在一种可能实现方式中,该查询模块501还用于如果该第二乘车记录的左参考时间与该第一乘车记录的乘车时间之间的时间间隔大于该时间间隔阈值,根据该第一乘车记录的乘车时间,从该用户的历史乘车记录中进行查询,得到第二时间区间内的历史乘车记录,该第二时间区间的开始时间为该第一乘车记录的乘车时间,该第二时间区间的时间间隔等于该时间间隔阈值;
该确定模块502还用于从该第二时间区间内的历史乘车记录中,确定乘车时间最早的第三乘车记录;
该获取模块503还用于如果该第三乘车记录的右参考时间与该第一乘车记录的乘车时间之间的时间间隔小于或等于该时间间隔阈值,根据该换乘优惠策略,获取该第一乘车记录的乘车费用信息,第三乘车记录的右参考时间为该第三乘车记录所属计费区间内乘车时间最晚的乘车记录的乘车时间。
在一种可能实现方式中,该获取模块503用于:
如果该第三乘车记录的右参考时间与该第一乘车记录的乘车时间之间的时间间隔小于或等于该时间间隔阈值,统计该第三乘车记录所属计费区间的优惠使用次数;
如果该第三乘车记录所属计费区间的优惠使用次数小于或等于该换乘优惠策略所指示的优惠次数阈值,执行根据该换乘优惠策略,获取该第一乘车记录的乘车费用信息的步骤。
在一种可能实现方式中,该获取模块503用于:
如果该第三乘车记录的右参考时间与该第一乘车记录的乘车时间之间的时间间隔小于或等于该时间间隔阈值,获取该第一乘车记录对应的折扣优惠信息;
根据该第一乘车记录的折扣优惠信息,获取该第一乘车记录的乘车费用信息。
在一种可能实现方式中,该获取模块503用于:
根据该第一乘车记录的乘车时间与该第三乘车记录的右参考时间之间的时间间隔,从该换乘优惠策略所指示的多个换乘时间间隔中,确定该第一乘车记录对应的换乘时间间隔;
根据该第一乘车记录对应的换乘时间间隔,获取该第一乘车记录对应的折扣优惠信息,不同的换乘时间间隔对应不同的折扣优惠信息。
在一种可能实现方式中,该获取模块503用于:
根据该第三乘车记录所属计费区间内乘车记录的数量,获取该第一乘车记录对应的换乘次数;
根据该第一乘车记录对应的换乘次数,获取该第一乘车记录对应的折扣优惠信息,不同的换乘次数对应不同的折扣优惠信息。
在一种可能实现方式中,该获取模块503用于:
根据该第一乘车记录的乘车时间与该第三乘车记录的右参考时间之间的时间间隔,从该换乘优惠策略所指示的多个换乘时间间隔中,确定该第一乘车记录对应的换乘时间间隔;
根据该第三乘车记录所属计费区间内乘车记录的数量,获取该第一乘车记录对应的换乘次数;
根据该第一乘车记录对应的换乘时间间隔和换乘次数,获取该第一乘车记录对应的折扣优惠信息,不同的换乘时间间隔和换乘次数对应不同的折扣优惠信息。
在一种可能实现方式中,该获取模块503还用于如果该第三乘车记录的右参考时间与该第一乘车记录的乘车时间之间的时间间隔大于该时间间隔阈值,获取该第一乘车记录的原始费用作为该第一乘车记录的乘车费用信息。
在一种可能实现方式中,该获取模块503还用于如果从该用户的历史乘车记录中,未查询到该第二时间区间内的历史乘车记录,获取该第一乘车记录的原始费用作为该第一乘车记录的乘车费用信息。
在一种可能实现方式中,该获取模块503还用于获取配置信息,该配置信息用于指示支持换乘优惠策略的车辆运营方以及该车辆运营方支持换乘优惠策略的乘车时间、乘车线路或车辆;
该查询模块501还用于如果根据该配置信息,确定该第一乘车记录支持换乘优惠策略,执行从该用户的历史乘车记录中进行查询的步骤。
在一种可能实现方式中,该查询模块501还用于采用分布式锁的控制方式,执行从该用户的历史乘车记录中进行查询的步骤;
该获取模块503还用于采用分布式锁的控制方式,执行获取该第一乘车记录的乘车费用信息的步骤,该分布式锁的控制方式用于控制分布式系统在同一时刻对同一用户的一个乘车记录进行计费。
本申请实施例中,通过在接收到用户的第一乘车记录时,根据第一乘车记录的乘车时间,从用户的历史乘车记录中进行查询,得到第一时间区间内的历史乘车记录,第一时间区间内的历史乘车记录的乘车时间早于第一乘车记录的乘车时间,且与第一乘车记录的乘车时间间隔小于或等于换乘优惠策略所指示的时间间隔阈值,然后从第一时间区间内的历史乘车记录中,找到乘车时间最晚的一个乘车记录作为第二乘车记录,如果第二乘车记录的左参考时间与第一乘车记录的乘车时间之间的时间间隔未超过时间间隔阈值,则确定第一乘车记录能够享受换乘优惠,因而根据换乘优惠策略,获取第一乘车记录的乘车费用信息。通过将用户的乘车记录按照乘车时间,正确进行换乘优惠计算,可以避免错误扣费的问题。
需要说明的是:上述实施例提供的乘车计费装置在乘车计费时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的乘车计费装置与乘车计费方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图6是本申请实施例提供的一种服务器600的结构示意图,该服务器600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processingunits,CPU)601和一个或一个以上的存储器602,其中,该存储器602中存储有至少一条指令,该至少一条指令由该处理器601加载并执行以实现上述各个方法实施例提供的方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种存储有计算机程序的计算机可读存储介质,例如存储有计算机程序的存储器,上述计算机程序被处理器执行时实现上述实施例中的乘车计费方法。例如,该计算机可读存储介质可以是只读内存(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上该仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (20)
1.一种乘车计费方法,其特征在于,所述方法包括:
如果接收到用户的第一乘车记录,根据所述第一乘车记录的乘车时间,从所述用户的历史乘车记录中进行查询,得到第一时间区间内的历史乘车记录,所述第一时间区间的结束时间为所述第一乘车记录的乘车时间,所述第一时间区间的时间间隔等于换乘优惠策略所指示的时间间隔阈值;
从所述第一时间区间内的历史乘车记录中,确定乘车时间最晚的第二乘车记录;
如果所述第二乘车记录的左参考时间与所述第一乘车记录的乘车时间之间的时间间隔小于或等于所述时间间隔阈值,根据所述换乘优惠策略,获取所述第一乘车记录的乘车费用信息;
其中,所述第二乘车记录的左参考时间为所述第二乘车记录所属计费区间内乘车时间最早的乘车记录的乘车时间,同一个计费区间内任意两个乘车记录之间的乘车时间间隔小于或等于所述时间间隔阈值。
2.根据权利要求1所述的方法,其特征在于,所述如果所述第二乘车记录的左参考时间与所述第一乘车记录的乘车时间之间的时间间隔小于或等于所述时间间隔阈值,根据所述换乘优惠策略,获取所述第一乘车记录的乘车费用信息,包括:
如果所述第二乘车记录的左参考时间与所述第一乘车记录的乘车时间之间的时间间隔小于或等于所述时间间隔阈值,统计所述第二乘车记录所属计费区间的优惠使用次数;
如果所述第二乘车记录所属计费区间的优惠使用次数小于或等于所述换乘优惠策略所指示的优惠次数阈值,执行根据所述换乘优惠策略,获取所述第一乘车记录的乘车费用信息的步骤。
3.根据权利要求1所述的方法,其特征在于,所述如果所述第二乘车记录的左参考时间与所述第一乘车记录的乘车时间之间的时间间隔小于或等于所述时间间隔阈值,根据所述换乘优惠策略,获取所述第一乘车记录的乘车费用信息,包括:
如果所述第二乘车记录的左参考时间与所述第一乘车记录的乘车时间之间的时间间隔小于或等于所述时间间隔阈值,获取所述第一乘车记录对应的折扣优惠信息;
根据所述第一乘车记录的折扣优惠信息,获取所述第一乘车记录的乘车费用信息。
4.根据权利要求3所述的方法,其特征在于,所述获取所述第一乘车记录对应的折扣优惠信息,包括:
根据所述第一乘车记录的乘车时间与所述第二乘车记录的左参考时间之间的时间间隔,从所述换乘优惠策略所指示的多个换乘时间间隔中,确定所述第一乘车记录对应的换乘时间间隔;
根据所述第一乘车记录对应的换乘时间间隔,获取所述第一乘车记录对应的折扣优惠信息,不同的换乘时间间隔对应不同的折扣优惠信息。
5.根据权利要求3所述的方法,其特征在于,所述获取所述第一乘车记录对应的折扣优惠信息,包括:
根据所述第二乘车记录所属计费区间内乘车记录的数量,获取所述第一乘车记录对应的换乘次数;
根据所述第一乘车记录对应的换乘次数,获取所述第一乘车记录对应的折扣优惠信息,不同的换乘次数对应不同的折扣优惠信息。
6.根据权利要求3所述的方法,其特征在于,所述获取所述第一乘车记录对应的折扣优惠信息,包括:
根据所述第一乘车记录的乘车时间与所述第二乘车记录的左参考时间之间的时间间隔,从所述换乘优惠策略所指示的多个换乘时间间隔中,确定所述第一乘车记录对应的换乘时间间隔;
根据所述第二乘车记录所属计费区间内乘车记录的数量,获取所述第一乘车记录对应的换乘次数;
根据所述第一乘车记录对应的换乘时间间隔和换乘次数,获取所述第一乘车记录对应的折扣优惠信息,不同的换乘时间间隔和换乘次数对应不同的折扣优惠信息。
7.根据权利要求1所述的方法,其特征在于,所述从所述第一时间区间内的历史乘车记录中,确定乘车时间最晚的第二乘车记录之后,所述方法还包括:
如果所述第二乘车记录的左参考时间与所述第一乘车记录的乘车时间之间的时间间隔大于所述时间间隔阈值,根据所述第一乘车记录的乘车时间,从所述用户的历史乘车记录中进行查询,得到第二时间区间内的历史乘车记录,所述第二时间区间的开始时间为所述第一乘车记录的乘车时间,所述第二时间区间的时间间隔等于所述时间间隔阈值;
从所述第二时间区间内的历史乘车记录中,确定乘车时间最早的第三乘车记录;
如果所述第三乘车记录的右参考时间与所述第一乘车记录的乘车时间之间的时间间隔小于或等于所述时间间隔阈值,根据所述换乘优惠策略,获取所述第一乘车记录的乘车费用信息,第三乘车记录的右参考时间为所述第三乘车记录所属计费区间内乘车时间最晚的乘车记录的乘车时间。
8.根据权利要求7所述的方法,其特征在于,所述如果所述第三乘车记录的右参考时间与所述第一乘车记录的乘车时间之间的时间间隔小于或等于所述时间间隔阈值,根据所述换乘优惠策略,获取所述第一乘车记录的乘车费用信息,包括:
如果所述第三乘车记录的右参考时间与所述第一乘车记录的乘车时间之间的时间间隔小于或等于所述时间间隔阈值,统计所述第三乘车记录所属计费区间的优惠使用次数;
如果所述第三乘车记录所属计费区间的优惠使用次数小于或等于所述换乘优惠策略所指示的优惠次数阈值,执行根据所述换乘优惠策略,获取所述第一乘车记录的乘车费用信息的步骤。
9.根据权利要求7所述的方法,其特征在于,所述如果所述第三乘车记录的右参考时间与所述第一乘车记录的乘车时间之间的时间间隔小于或等于所述时间间隔阈值,根据所述换乘优惠策略,获取所述第一乘车记录的乘车费用信息,包括:
如果所述第三乘车记录的右参考时间与所述第一乘车记录的乘车时间之间的时间间隔小于或等于所述时间间隔阈值,获取所述第一乘车记录对应的折扣优惠信息;
根据所述第一乘车记录的折扣优惠信息,获取所述第一乘车记录的乘车费用信息。
10.根据权利要求9所述的方法,其特征在于,所述获取所述第一乘车记录对应的折扣优惠信息,包括:
根据所述第一乘车记录的乘车时间与所述第三乘车记录的右参考时间之间的时间间隔,从所述换乘优惠策略所指示的多个换乘时间间隔中,确定所述第一乘车记录对应的换乘时间间隔;
根据所述第一乘车记录对应的换乘时间间隔,获取所述第一乘车记录对应的折扣优惠信息,不同的换乘时间间隔对应不同的折扣优惠信息。
11.根据权利要求9所述的方法,其特征在于,所述获取所述第一乘车记录对应的折扣优惠信息,包括:
根据所述第三乘车记录所属计费区间内乘车记录的数量,获取所述第一乘车记录对应的换乘次数;
根据所述第一乘车记录对应的换乘次数,获取所述第一乘车记录对应的折扣优惠信息,不同的换乘次数对应不同的折扣优惠信息。
12.根据权利要求9所述的方法,其特征在于,所述获取所述第一乘车记录对应的折扣优惠信息,包括:
根据所述第一乘车记录的乘车时间与所述第三乘车记录的右参考时间之间的时间间隔,从所述换乘优惠策略所指示的多个换乘时间间隔中,确定所述第一乘车记录对应的换乘时间间隔;
根据所述第三乘车记录所属计费区间内乘车记录的数量,获取所述第一乘车记录对应的换乘次数;
根据所述第一乘车记录对应的换乘时间间隔和换乘次数,获取所述第一乘车记录对应的折扣优惠信息,不同的换乘时间间隔和换乘次数对应不同的折扣优惠信息。
13.根据权利要求7所述的方法,其特征在于,所述从所述第二时间区间内的历史乘车记录中,确定乘车时间最早的第三乘车记录之后,所述方法还包括:
如果所述第三乘车记录的右参考时间与所述第一乘车记录的乘车时间之间的时间间隔大于所述时间间隔阈值,获取所述第一乘车记录的原始费用作为所述第一乘车记录的乘车费用信息。
14.根据权利要求7所述的方法,其特征在于,所述方法还包括:
如果从所述用户的历史乘车记录中,未查询到所述第二时间区间内的历史乘车记录,获取所述第一乘车记录的原始费用作为所述第一乘车记录的乘车费用信息。
15.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果从所述用户的历史乘车记录中,未查询到所述第一时间区间内的历史乘车记录,根据所述第一乘车记录的乘车时间,从所述用户的历史乘车记录中进行查询,得到第二时间区间内的历史乘车记录,所述第二时间区间的开始时间为所述第一乘车记录的乘车时间,所述第二时间区间的时间间隔等于所述时间间隔阈值;
从所述第二时间区间内的历史乘车记录中,确定乘车时间最早的第三乘车记录;
如果所述第三乘车记录的右参考时间与所述第一乘车记录的乘车时间之间的时间间隔小于或等于所述时间间隔阈值,根据所述换乘优惠策略,获取所述第一乘车记录的乘车费用信息,第三乘车记录的右参考时间为所述第三乘车记录所属计费区间内乘车时间最晚的乘车记录的乘车时间。
16.根据权利要求1所述的方法,其特征在于,所述接收到用户的第一乘车记录之后,所述方法还包括:
获取配置信息,所述配置信息用于指示支持换乘优惠策略的车辆运营方以及所述车辆运营方支持换乘优惠策略的乘车时间、乘车线路或车辆;
如果根据所述配置信息,确定所述第一乘车记录支持换乘优惠策略,执行从所述用户的历史乘车记录中进行查询的步骤。
17.根据权利要求1至16任一项所述的方法,其特征在于,所述接收到用户的第一乘车记录之后,所述方法还包括:
采用分布式锁的控制方式,执行从所述用户的历史乘车记录中进行查询以及获取所述第一乘车记录的乘车费用信息的步骤,所述分布式锁的控制方式用于控制分布式系统在同一时刻对同一用户的一个乘车记录进行计费。
18.一种乘车计费装置,其特征在于,所述装置包括:
查询模块,用于如果接收到用户的第一乘车记录,根据所述第一乘车记录的乘车时间,从所述用户的历史乘车记录中进行查询,得到第一时间区间内的历史乘车记录,所述第一时间区间的结束时间为所述第一乘车记录的乘车时间,所述第一时间区间的时间间隔等于换乘优惠策略所指示的时间间隔阈值;
确定模块,用于从所述第一时间区间内的历史乘车记录中,确定乘车时间最晚的第二乘车记录;
获取模块,用于如果所述第二乘车记录的左参考时间与所述第一乘车记录的乘车时间之间的时间间隔小于或等于所述时间间隔阈值,根据所述换乘优惠策略,获取所述第一乘车记录的乘车费用信息;
其中,所述第二乘车记录的左参考时间为所述第二乘车记录所属计费区间内乘车时间最早的乘车记录的乘车时间,同一个计费区间内任意两个乘车记录之间的乘车时间间隔小于或等于所述时间间隔阈值。
19.一种服务器,其特征在于,包括一个或多个处理器和一个或多个存储器;所述一个或多个存储器,用于存放计算机程序;所述一个或多个处理器,用于执行所述一个或多个存储器上所存放的计算机程序,实现权利要求1-17任一项所述的方法步骤。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-17任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910562563.2A CN110264281A (zh) | 2019-06-26 | 2019-06-26 | 乘车计费方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910562563.2A CN110264281A (zh) | 2019-06-26 | 2019-06-26 | 乘车计费方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110264281A true CN110264281A (zh) | 2019-09-20 |
Family
ID=67921841
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910562563.2A Pending CN110264281A (zh) | 2019-06-26 | 2019-06-26 | 乘车计费方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110264281A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111640209A (zh) * | 2020-05-15 | 2020-09-08 | 支付宝(杭州)信息技术有限公司 | 一种乘车计费方法、装置及电子设备 |
CN113421110A (zh) * | 2021-06-03 | 2021-09-21 | 中国联合网络通信集团有限公司 | 共享单车计费方法、装置、服务器和系统 |
CN115545696A (zh) * | 2022-04-15 | 2022-12-30 | 荣耀终端有限公司 | 支付方法、服务器及移动终端 |
-
2019
- 2019-06-26 CN CN201910562563.2A patent/CN110264281A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111640209A (zh) * | 2020-05-15 | 2020-09-08 | 支付宝(杭州)信息技术有限公司 | 一种乘车计费方法、装置及电子设备 |
CN113421110A (zh) * | 2021-06-03 | 2021-09-21 | 中国联合网络通信集团有限公司 | 共享单车计费方法、装置、服务器和系统 |
CN113421110B (zh) * | 2021-06-03 | 2023-12-08 | 中国联合网络通信集团有限公司 | 共享单车计费方法、装置、服务器和系统 |
CN115545696A (zh) * | 2022-04-15 | 2022-12-30 | 荣耀终端有限公司 | 支付方法、服务器及移动终端 |
CN115545696B (zh) * | 2022-04-15 | 2023-08-29 | 荣耀终端有限公司 | 支付方法、服务器及移动终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110264281A (zh) | 乘车计费方法及装置 | |
EP2297986B1 (en) | Synchronizing real-time and off-line accounts for communications | |
CN106537430A (zh) | 用于车队共享的系统和方法 | |
EP2556335A2 (en) | Public transport optimization | |
EP2243119A1 (en) | Systems, methods and computer program products for performing mass transit merchant transactions | |
CN105813047B (zh) | 一种流量调控方法、装置及系统 | |
CN102387486B (zh) | Gprs分割话单的计费方法及装置 | |
CN110177348B (zh) | 流量授权控制方法及装置 | |
Ulmer | Anticipation versus reactive reoptimization for dynamic vehicle routing with stochastic requests | |
CN110347675A (zh) | 一种数据存储方法及装置 | |
US20230306535A1 (en) | Networked Utility Services and Vehicle Charging Stations | |
CN102315956A (zh) | 一种流量监管方法和装置 | |
CN102810216B (zh) | 一种进行不停车收费的方法和系统 | |
CN109600726A (zh) | 流量分类控制方法、装置、系统、设备以及存储介质 | |
CN110084655A (zh) | 电子票据处理方法、装置、计算机设备及计算机存储介质 | |
CN112529660A (zh) | 基于区块链的电子售票方法及系统、电子设备和存储介质 | |
CN108200551A (zh) | 一种加油数据的记录方法、装置、终端设备和服务器 | |
JP2013050844A (ja) | 通行料金算出装置、制御方法、及びプログラム | |
CN109920071A (zh) | 优惠停车管理方法、停车管理终端及可读存储介质 | |
CN109547222A (zh) | 网络请求的流量统计方法及装置 | |
CN107808290A (zh) | 接送机服务授信方法和服务器 | |
CN107945295A (zh) | 一种基于mtc车道的不停车收费的云支付方法及装置 | |
CN110363592A (zh) | 一种用车计费系统 | |
CN113793062B (zh) | 一种提高网约车运力下单效率的派单方法 | |
CN112737796B (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 |