CN111694835B - 物流电子面单的号段存取方法及系统、设备及存储介质 - Google Patents
物流电子面单的号段存取方法及系统、设备及存储介质 Download PDFInfo
- Publication number
- CN111694835B CN111694835B CN201910510277.1A CN201910510277A CN111694835B CN 111694835 B CN111694835 B CN 111694835B CN 201910510277 A CN201910510277 A CN 201910510277A CN 111694835 B CN111694835 B CN 111694835B
- Authority
- CN
- China
- Prior art keywords
- logistics
- service provider
- available
- sub
- segments
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- 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
- G06Q10/00—Administration; Management
- G06Q10/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
- G06Q10/083—Shipping
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Economics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Marketing (AREA)
- Data Mining & Analysis (AREA)
- Development Economics (AREA)
- Software Systems (AREA)
- Entrepreneurship & Innovation (AREA)
- Human Resources & Organizations (AREA)
- Databases & Information Systems (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Strategic Management (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种物流电子面单的号段存取方法及系统、设备及存储介质,物流电子面单的号段存取方法包括以下步骤:接收至少一个物流服务商提供的新增号段资源;将各物流服务商提供的所述新增号段资源分别分割成多个子号段;对分割出的子号段进行存储,并根据存储的子号段来更新针对各物流服务商的可用单号额度。本发明能够对物流服务商提供的数量巨大的电子面单单号号段进行分割处理,从而降低了对系统性能的要求,保障了系统的效率,有利于对整个系统的维护,使得系统能够稳定、高效、安全地对单号进行存储、维护和提取。
Description
技术领域
本发明涉及物流领域,特别涉及一种物流电子面单的号段存取方法及系统、设备及存储介质。
背景技术
近些年电商业务高速发展,每年产生大量的快递包裹,对于大型物流快递公司每年都会产生非常多的物流电子面单单号,一般数量都在10亿级,如此数量巨大的单号并不利于存储、维护和提取,对系统的稳定性、处理效率和处理能力都提出了非常高的要求。
发明内容
本发明要解决的技术问题是为了克服现有技术中物流快递公司产生的数量巨大的单号不利于存储、维护和提取的缺陷,提供一种物流电子面单的号段存取方法及系统、设备及存储介质。
本发明是通过下述技术方案来解决上述技术问题:
本发明提供了一种物流电子面单的号段存取方法,包括以下步骤:
接收至少一个物流服务商提供的新增号段资源;
将各物流服务商提供的所述新增号段资源分别分割成多个子号段;
对分割出的子号段进行存储,并根据存储的子号段来更新针对各物流服务商的可用单号额度。
较佳地,所述将各物流服务商提供的所述新增号段资源分别分割成多个子号段的步骤具体包括:
计算针对各物流服务商的单号使用速度;
根据所述单号使用速度将各物流服务商提供的所述新增号段资源分别分割成多个子号段;
其中,所述单号使用速度与所述子号段中所包含的单号数量呈正相关。
较佳地,所述对分割出的子号段进行存储的步骤具体包括:
计算针对各物流服务商的单号使用速度;
根据所述单号使用速度从分割出的多个子号段中选取特定数量的子号段,并对选取的所述特定数量的子号段进行存储;
其中,所述单号使用速度与所述特定数量呈正相关。
较佳地,所述计算针对各物流服务商的单号使用速度的步骤具体包括:
通过在一使用周期内的使用单号数量与所述使用周期的比值计算在所述使用周期内的单号使用速度。
较佳地,所述对分割出的子号段进行存储的步骤具体包括:
将所述子号段按照目标存储结构进行存储,所述目标存储结构的参数字段包括起始号、终止号、长度、初始化时间以及当前使用位置。
较佳地,所述根据存储的子号段来更新针对各物流服务商的可用单号额度的步骤具体包括:
采用如下公式更新可用单号额度:
其中,A表示针对物流服务商的可用单号额度,B表示针对物流服务商的现有单号余额,Ci表示存储的第i个子号段的终止号,Di表示存储的第i个子号段的起始号,N表示存储的子号段的数量,E表示针对物流服务商的剩余单号告警阈值,F表示校验保留系数且0<F≤1。
较佳地,所述号段存取方法还包括:获取针对各物流服务商的号段分配规则;
所述接收至少一个物流服务商提供的新增号段资源的步骤之后还包括:
判断各物流服务商提供的新增号段资源是否符合对应的号段分配规则的要求,并对不符合要求的新增号段资源返回错误提示,对符合要求的新增号段资源继续判断是否包括已使用的单号,若包括,则返回错误提示,若不包括,则继续执行所述分割成多个子号段的步骤;
其中,所述已使用的单号包括历史使用的单号和正在使用的单号,所述正在使用的单号具体包括物流生命周期尚未结束的物流电子面单单号以及在规定投诉时间范围内的物流电子面单单号。
较佳地,所述号段存取方法还包括:获取针对各物流服务商的号段分配规则;
所述将各物流服务商提供的所述新增号段资源分别分割成多个子号段的步骤之后还包括:
判断分割出的各子号段是否符合对应的号段分配规则的要求,并对不符合要求的子号段返回错误提示,对符合要求的子号段继续判断是否包括已使用的单号,若包括,则返回错误提示,若不包括,则继续执行对子号段进行存储的步骤;
其中,所述已使用的单号包括历史使用的单号和正在使用的单号,所述正在使用的单号具体包括物流生命周期尚未结束的物流电子面单单号以及在规定投诉时间范围内的物流电子面单单号。
较佳地,所述对分割出的子号段进行存储,并根据存储的子号段来更新针对各物流服务商的可用单号额度的步骤之后还包括:
接收单号获取请求;
从缓存中获取可用单号;
检测所述可用单号是否为已使用的单号,若否,则继续检测所述可用单号是否被取消过或回收过,若未被取消过且未被回收过,则返回所述可用单号。
较佳地,所述单号获取请求中包含对应的物流服务商信息;
所述接收单号获取请求的步骤之后还包括:
判断缓存中是否存在与所述单号获取请求对应的物流服务商的剩余单号,若是,则执行从缓存中获取可用单号的步骤;若否,则从存储的号段中选取一可用号段加载至缓存中,然后执行从缓存中获取可用单号的步骤。
较佳地,所述单号获取请求的数量为多个,对于每个单号获取请求,在判断出缓存中不存在对应的物流服务商的剩余单号时,均会执行从存储的号段中选取一可用号段加载至缓存中的步骤,且随机设置针对不同的物流服务商的可用号段的选取时间。
较佳地,所述从存储的号段中选取一可用号段加载至缓存中的步骤具体还包括:
调用线程来执行从存储的号段中选取一可用号段加载至缓存中的操作,并采用乐观锁的加锁机制对所述线程进行加锁。
较佳地,所述单号获取请求的数量为多个,所述从缓存中获取可用单号的步骤具体包括:
对于每个单号获取请求,均调用一个对应的线程执行从缓存中获取可用单号的操作,并采用乐观锁的加锁机制对所述线程进行加锁。
较佳地,所述从缓存中获取可用单号的步骤之后还包括:获取所述单号获取请求对应的物流服务商针对物流电子面单单号的个性化校验需求;对获取到的可用单号进行个性化校验需求的校验,若校验通过,则继续执行所述检测所述可用单号是否为已使用的单号的步骤;若校验未通过,则返回所述判断缓存中是否存在与所述单号获取请求对应的物流服务商的剩余单号的步骤;
或,所述继续检测所述可用单号是否被取消过或回收过的步骤之后具体包括:若检测结果为未被取消过且未被回收过,则获取所述单号获取请求对应的物流服务商针对物流电子面单单号的个性化校验需求;对获取到的可用单号进行个性化校验需求的校验,若校验通过,则返回所述可用单号;若校验未通过,则返回所述判断缓存中是否存在与所述单号获取请求对应的物流服务商的剩余单号的步骤。
较佳地,所述对获取到的可用单号进行个性化校验需求的校验的步骤之前还包括:
对所述可用单号进行号码混淆处理。
本发明还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的物流电子面单的号段存取方法。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的物流电子面单的号段存取方法的步骤。
本发明还提供了一种物流电子面单的号段存取系统,包括:
号段资源接收模块,用于接收至少一个物流服务商提供的新增号段资源;
分割模块,用于将各物流服务商提供的所述新增号段资源分别分割成多个子号段;
存储模块,用于对分割出的子号段进行存储,并根据存储的子号段来更新针对各物流服务商的可用单号额度。
较佳地,所述分割模块具体包括:
计算单元,用于计算针对各物流服务商的单号使用速度;
分割单元,用于根据所述单号使用速度将各物流服务商提供的所述新增号段资源分别分割成多个子号段;
其中,所述单号使用速度与所述子号段中所包含的单号数量呈正相关。
较佳地,所述存储模块具体用于根据所述单号使用速度从分割出的多个子号段中选取特定数量的子号段,并对选取的所述特定数量的子号段进行存储;
其中,所述单号使用速度与所述特定数量呈正相关。
较佳地,所述计算单元具体用于通过在一使用周期内的使用单号数量与所述使用周期的比值计算在所述使用周期内的单号使用速度。
较佳地,所述存储模块用于将所述子号段按照目标存储结构进行存储,所述目标存储结构的参数字段包括起始号、终止号、长度、初始化时间以及当前使用位置。
较佳地,所述存储模块具体用于采用如下公式更新可用单号额度:
其中,A表示针对物流服务商的可用单号额度,B表示针对物流服务商的现有单号余额,Ci表示存储的第i个子号段的终止号,Di表示存储的第i个子号段的起始号,N表示存储的子号段的数量,E表示针对物流服务商的剩余单号告警阈值,F表示校验保留系数且0<F≤1。
较佳地,所述号段存取系统还包括:
规则获取模块,用于获取针对各物流服务商的号段分配规则;
第一判断模块,用于判断各物流服务商提供的新增号段资源是否符合对应的号段分配规则的要求,并对不符合要求的新增号段资源返回错误提示,对符合要求的新增号段资源继续判断是否包括已使用的单号,若包括,则返回错误提示,若不包括,则调用所述分割模块;
其中,所述已使用的单号包括历史使用的单号和正在使用的单号,所述正在使用的单号具体包括物流生命周期尚未结束的物流电子面单单号以及在规定投诉时间范围内的物流电子面单单号。
较佳地,所述号段存取系统还包括:
规则获取模块,用于获取针对各物流服务商的号段分配规则;
第二判断模块,用于判断分割出的各子号段是否符合对应的号段分配规则的要求,并对不符合要求的子号段返回错误提示,对符合要求的子号段继续判断是否包括已使用的单号,若包括,则返回错误提示,若不包括,则调用所述存储模块;
其中,所述已使用的单号包括历史使用的单号和正在使用的单号,所述正在使用的单号具体包括物流生命周期尚未结束的物流电子面单单号以及在规定投诉时间范围内的物流电子面单单号。
较佳地,所述号段存取系统还包括:
请求接收模块,用于接收单号获取请求;
可用单号获取模块,用于从缓存中获取可用单号;
检测模块,用于检测所述可用单号是否为已使用的单号,若否,则继续检测所述可用单号是否被取消过或回收过,若未被取消过且未被回收过,则调用返回模块;
所述返回模块用于返回所述可用单号。
较佳地,所述号段存取系统还包括第三判断模块;
所述第三判断模块用于在所述请求接收模块接收到单号获取请求后,判断缓存中是否存在与所述单号获取请求对应的物流服务商的剩余单号,若是,则调用所述可用单号获取模块;若否,则从存储的号段中选取一可用号段加载至缓存中,然后调用所述可用单号获取模块。
较佳地,所述单号获取请求的数量为多个,对于每个单号获取请求,所述第三判断模块在判断出缓存中不存在对应的物流服务商的剩余单号时,均会从存储的号段中选取一可用号段加载至缓存中,且所述第三判断模块还用于随机设置针对不同的物流服务商的可用号段的选取时间。
较佳地,所述第三判断模块具体用于调用线程来从存储的号段中选取一可用号段加载至缓存中,并采用乐观锁的加锁机制对所述线程进行加锁。
较佳地,所述单号获取请求的数量为多个,对于每个单号获取请求,所述可用单号获取模块均调用一个对应的线程从缓存中获取可用单号,并采用乐观锁的加锁机制对所述线程进行加锁。
较佳地,所述号段存取系统还包括校验模块;
所述校验模块用于在所述可用单号获取模块从缓存中获取可用单号之后,获取所述单号获取请求对应的物流服务商针对物流电子面单单号的个性化校验需求;对获取到的可用单号进行个性化校验需求的校验,若校验通过,则调用所述检测模块;若校验未通过,则调用所述第三判断模块判断缓存中是否存在与所述单号获取请求对应的物流服务商的剩余单号;
或,所述校验模块用于在所述检测模块检测出所述可用单号未被取消过且未被回收过后,获取所述单号获取请求对应的物流服务商针对物流电子面单单号的个性化校验需求;对获取到的可用单号进行个性化校验需求的校验,若校验通过,则调用所述返回模块;若校验未通过,则调用所述第三判断模块判断缓存中是否存在与所述单号获取请求对应的物流服务商的剩余单号。
较佳地,所述号段存取系统还包括:
混淆模块,用于对所述可用单号进行号码混淆处理,并在进行号码混淆处理后调用所述校验模块。
本发明的积极进步效果在于:本发明能够对物流服务商提供的数量巨大的电子面单单号号段进行分割处理,从而降低了对系统性能的要求,保障了系统的效率,有利于对整个系统的维护,使得系统能够稳定、高效、安全地对单号进行存储、维护和提取。
附图说明
图1为本发明实施例1的物流电子面单的号段存取方法的流程图。
图2为本发明实施例2的物流电子面单的号段存取方法的流程图。
图3为本发明实施例3的物流电子面单的号段存取方法的部分流程图。
图4为本发明实施例4的物流电子面单的号段存取方法的部分流程图。
图5为本发明实施例5的电子设备的硬件结构示意图。
图6为本发明实施例7的物流电子面单的号段存取系统的模块示意图。
图7为本发明实施例8的物流电子面单的号段存取系统的模块示意图。
图8为本发明实施例9的物流电子面单的号段存取系统的部分模块示意图。
图9为本发明实施例10的物流电子面单的号段存取系统的部分模块示意图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例1
本实施例提供了一种物流电子面单的号段存取方法,如图1所示,具体包括以下步骤:
步骤101、获取针对至少一个物流服务商的号段分配规则;
具体地,国家邮政管理局针对各物流服务商都设有相应的号段分配规则要求,步骤101中可以获取相应的号段分配规则并保存到本地系统中;
步骤102、接收至少一个物流服务商提供的新增号段资源;
其中,接收的频率、接收的时间以及接收的数量都可以根据实际需要进行设置。
针对接收到的每个物流服务商的新增号段资源,均分别执行以下步骤流程:
步骤103、判断物流服务商提供的新增号段资源是否符合对应的号段分配规则的要求,若是,则执行步骤104,若否,则返回错误提示给相应的物流服务商;
步骤104、判断符合要求的新增号段资源是否包括已使用的单号,若包括,则返回错误提示给相应的物流服务商;若不包括,则执行步骤105;
其中,所述已使用的单号包括历史使用的单号和正在使用的单号,所述正在使用的单号具体包括物流生命周期尚未结束的物流电子面单单号以及在规定投诉时间范围内的物流电子面单单号;
而对于一个快递包裹,若还没被成功签收或者没被成功退回或者属于问题件但处理没有结束,则表示该快递的物流生命周期尚未结束,此时快递上的物流电子面单单号也就处于物流生命周期尚未结束的状态;
另外,国家邮政管理局规定消费者可以对一年以内的快递包裹进行投诉,因此,在快递包裹生成后的一年的时间内该快递包裹都处在规定的投诉时间范围内,此时快递上的物流电子面单单号也就处于规定的投诉时间范围内。
步骤105、将物流服务商提供的所述新增号段资源分割成多个子号段;
例如,如果某个物流服务商提供的新增号段资源包括1亿个物流电子面单单号,将可以将其分割成100个子号段,每个子号段均包含1百万个单号;
而在步骤105中,对于子号段的分割可以考虑针对物流服务商的单号使用速度,即可以先计算针对各物流服务商的单号使用速度,然后根据所述单号使用速度将各物流服务商提供的所述新增号段资源分别分割成多个子号段;其中优选地,所述单号使用速度与所述子号段中所包含的单号数量呈正相关,即单号使用速度越高,则分割出的子号段中包含的单号数量也越多。
而在具体实施过程中,具体可以通过在一使用周期内的使用单号数量与所述使用周期的比值计算在所述使用周期内的单号使用速度,其中,该使用周期的具体时长可以根据实际需要进行设置。
步骤106、对分割出的子号段进行存储,并根据存储的子号段来更新针对物流服务商的可用单号额度。
其中,优选地,可以将所述子号段按照目标存储结构进行存储,所述目标存储结构的参数字段包括起始号、终止号、长度、初始化时间以及当前使用位置,以上述包含1百万个单号的子号段为例,其中起始号为1,终止号为1000000,长度即表示子号段所包含的单号的数量,即为1000000,初始化时间即为所述子号段被分割出来时的时间,当前使用位置即用于表示各单号在所属子号段中的所处位置;
该目标存储结构易于访问处理,能够保障系统稳定、高效、安全地对单号进行存储、维护和提取。
另外,在对分割出的子号段进行存储的过程中,每次确定选取子号段的数量时,可以考虑针对物流服务商的单号使用速度,具体地,可以先计算针对各物流服务商的单号使用速度,然后根据所述单号使用速度从分割出的多个子号段中选取特定数量的子号段,并对选取的所述特定数量的子号段进行存储;其中优选地,所述单号使用速度与所述特定数量呈正相关,即单号使用速度越高,则每次选取的子号段的数量也就越多。
在本发明的具体实施过程中,具体可以采用如下公式来更新可用单号额度:
其中,A表示针对物流服务商的可用单号额度,B表示针对物流服务商的现有单号余额,Ci表示存储的第i个子号段的终止号,Di表示存储的第i个子号段的起始号,N表示存储的子号段的数量,E表示针对物流服务商的剩余单号告警阈值,F表示校验保留系数且0<F≤1,并且优选地,0.1≤F≤0.5;如果存储的单号中每10个单号选取一个作为可用单号,则F取值就为0.1。
其中在本实施例中,针对的物流服务商可以不止一个,对于每个物流服务商提供的新增号段资源,均分别执行步骤103-步骤106的操作流程,从而对于每个物流服务商均分别单独实现了号段分割、子号段的存储以及可用单号额度的更新。
实施例2
本实施例提供了一种物流电子面单的号段存取方法,其与实施例1的步骤流程有所不同,具体如图2所示,本实施例的号段存取方法包括以下步骤:
步骤201、获取针对至少一个物流服务商的号段分配规则;
具体地,国家邮政管理局针对各物流服务商都设有相应的号段分配规则要求,步骤201中可以获取相应的号段分配规则并保存到本地系统中;
步骤202、接收至少一个物流服务商提供的新增号段资源;
其中,接收的频率、接收的时间以及接收的数量都可以根据实际需要进行设置。
针对接收到的每个物流服务商的新增号段资源,均分别执行以下步骤流程:
步骤203、将物流服务商提供的所述新增号段资源分割成多个子号段;
例如,如果某个物流服务商提供的新增号段资源包括1亿个物流电子面单单号,将可以将其分割成100个子号段,每个子号段均包含1百万个单号;
而在步骤203中,对于子号段的分割可以考虑针对物流服务商的单号使用速度,即可以先计算针对各物流服务商的单号使用速度,然后根据所述单号使用速度将各物流服务商提供的所述新增号段资源分别分割成多个子号段;其中优选地,所述单号使用速度与所述子号段中所包含的单号数量呈正相关,即单号使用速度越高,则分割出的子号段中包含的单号数量也越多。
而在具体实施过程中,具体可以通过在一使用周期内的使用单号数量与所述使用周期的比值计算在所述使用周期内的单号使用速度,其中,该使用周期的具体时长可以根据实际需要进行设置。
步骤204、判断分割出的各子号段是否符合对应的号段分配规则的要求,若是,则执行步骤205,若否,则返回错误提示给相应的物流服务商;
步骤205、判断符合要求的子号段是否包括已使用的单号,若包括,则返回错误提示给相应的物流服务商;若不包括,则执行步骤206;
其中,所述已使用的单号包括历史使用的单号和正在使用的单号,所述正在使用的单号具体包括物流生命周期尚未结束的物流电子面单单号以及在规定投诉时间范围内的物流电子面单单号;
而对于一个快递包裹,若还没被成功签收或者没被成功退回或者属于问题件但处理没有结束,则表示该快递的物流生命周期尚未结束,此时快递上的物流电子面单单号也就处于物流生命周期尚未结束的状态;
另外,国家邮政管理局规定消费者可以对一年以内的快递包裹进行投诉,因此,在快递包裹生成后的一年的时间内该快递包裹都处在规定的投诉时间范围内,此时快递上的物流电子面单单号也就处于规定的投诉时间范围内。
本实施例与实施例1相比,在将物流服务商提供的新增号段资源分割为多个子号段之后,针对每个子号段分别判断是否符合号段分配规则的要求以及判断是否包括已使用的单号,这样,即使某个子号段不符合要求或者包括了已使用的单号,结果也就是该单个子号段被舍弃不再进行后续使用,而不影响其他子号段的后续使用,从而可以最大化地对新增号段资源分割出的子号段进行使用,提升了新增号段资源被使用的可能性。
步骤206、对分割出的子号段进行存储,并根据存储的子号段来更新针对物流服务商的可用单号额度。
其中步骤206中存储的子号段即为经过步骤204和步骤205的判断步骤判断出的符合号段分配规则要求且不包括已使用过的单号的子号段。
其中,优选地,可以将所述子号段按照目标存储结构进行存储,所述目标存储结构的参数字段包括起始号、终止号、长度、初始化时间以及当前使用位置,以上述包含1百万个单号的子号段为例,其中起始号为1,终止号为1000000,长度即表示子号段所包含的单号的数量,即为1000000,初始化时间即为所述子号段被分割出来时的时间,当前使用位置即用于表示各单号在所属子号段中的所处位置;
该目标存储结构易于访问处理,能够保障系统稳定、高效、安全地对单号进行存储、维护和提取。
另外,在对分割出的子号段进行存储的过程中,每次确定选取子号段的数量时,可以考虑针对物流服务商的单号使用速度,具体地,可以先计算针对各物流服务商的单号使用速度,然后根据所述单号使用速度从分割出的多个子号段中选取特定数量的子号段,并对选取的所述特定数量的子号段进行存储;其中优选地,所述单号使用速度与所述特定数量呈正相关,即单号使用速度越高,则每次选取的子号段的数量也就越多。
在本发明的具体实施过程中,具体可以采用如下公式来更新可用单号额度:
其中,A表示针对物流服务商的可用单号额度,B表示针对物流服务商的现有单号余额,Ci表示存储的第i个子号段的终止号,Di表示存储的第i个子号段的起始号,N表示存储的子号段的数量,E表示针对物流服务商的剩余单号告警阈值,F表示校验保留系数且0<F≤1,并且优选地,0.1≤F≤0.5;如果存储的单号中每10个单号选取一个作为可用单号,则F取值就为0.1。
其中在本实施例中,针对的物流服务商可以不止一个,对于每个物流服务商提供的新增号段资源,均分别执行步骤203-步骤206的操作流程,从而对于每个物流服务商均分别单独实现了号段分割、子号段的存储以及可用单号额度的更新。
实施例3
本实施例提供了一种物流电子面单的号段存取方法,其属于针对实施例1或实施例2的号段存取方法的进一步延伸,即其除了包括实施例1或实施例2的号段存取方法的步骤之外,如图3所示,本实施例的号段存取方法在对分割出的子号段进行存储,并根据存储的子号段来更新针对各物流服务商的可用单号额度的步骤之后还包括:
步骤301、接收单号获取请求;
其中,步骤301中的单号获取请求中会包括与请求相对应的物流服务商的相关信息,即通过单号获取请求会知晓该单号获取请求是哪个物流服务商发出的;
步骤302、判断缓存中是否存在与所述单号获取请求对应的物流服务商的剩余单号,若是,则步骤303;若否,则从存储的号段中选取一可用号段加载至缓存中,然后执行步骤303;
其中,所述单号获取请求的数量为多个,在实践中同一时刻会存在大量并发的获取单号请求,对于每个单号获取请求,在判断出缓存中不存在对应的物流服务商的剩余单号时,均会执行从存储的号段中选取一可用号段加载至缓存中的步骤,且随机设置针对不同的物流服务商的可用号段的选取时间,从而可以在时间上将多个物流服务商的可用号段的选取动作错开。
如果针对多个单号获取请求都要分别执行从存储的号段中选取一可用号段加载至缓存中的步骤,那么就要对选取可用号段加载的动作进行并发控制,既要避免重复加载相同的可用号段,也要保证加载效率;在本发明中,具体采用乐观锁的加锁机制来避免重复加载相同的可用号段,具体地,可以调用线程来执行从存储的号段中选取一可用号段加载至缓存中的操作,并采用乐观锁的加锁机制对所述线程进行加锁;而保证加载效率则具体通过上述的随机设置针对不同的物流服务商的可用号段的选取时间来实现。
步骤303、从缓存中获取可用单号;
在步骤303中获取的就是与单号获取请求相对应的物流服务商的可用单号,如果单号获取请求的数量很多,则对于每个单号获取请求,均调用一个对应的线程执行从缓存中获取可用单号的操作,并采用乐观锁的加锁机制对所述线程进行加锁,这样,在获取可用单号时也采用乐观锁的加锁机制来避免重复获取相同的可用单号。当然,同样的,对于不同的单号获取请求,可以随机设置获取可用单号动作的执行时间。
步骤304、对所述可用单号进行号码混淆处理;
此处混淆处理的目的是消除可用单号的一些特征,防止号段规律被预测到,达到不超范围、随机性、非递增性、可复原性的特点,而具体的混淆算法属于本领域的常规技术,在此就不再赘述。
步骤305、获取所述单号获取请求对应的物流服务商针对物流电子面单单号的个性化校验需求;
步骤306、对可用单号进行个性化校验需求的校验,若校验通过,则执行步骤307;若校验未通过,则返回步骤302;
其中,具体的校验方式可以为假设可用单号的其中一位为校验位,用其他各位数字与一个预设值进行四则运算(包括加减乘除、取余数等),将得到的结果与校验位进行比较,若一致则表示校验通过,若不一致则表示校验未通过;通过上述的个性化校验就可以保障物流服务商使用单号的安全性,避免尚未使用的单号被恶意猜测到进行违法活动。
步骤307、检测所述可用单号是否为已使用的单号,若是,则返回步骤302,若否,则执行步骤308;
步骤308、继续检测所述可用单号是否被取消过或回收过,若被取消过或被回收过,则返回步骤302;若未被取消过且未被回收过,则执行步骤309;
其中,取消单号是商家发起的动作,一般取消的原因是因为快递包裹投递信息发生了变化(如收件地址、手机号等发生变化)或商家操作失误(如请求了错误的物流服务商等);而回收单号是指商家虽然获取了物流电子面单单号,但实际上此包裹并未发货,为了避免单号的浪费,会进行未使用单号的回收。
步骤309、返回所述可用单号。
本实施例重点在于接收到单号获取请求之后如何返回可用单号,通过上述一系列步骤流程实现了对多个物流服务商的多个单号获取请求,均能够及时有效地返回可用单号,并且避免了返回重复的可用单号,保障各物流服务商的快递包裹及时运送。
实施例4
本实施例提供了一种物流电子面单的号段存取方法,其也属于针对实施例1或实施例2的号段存取方法的进一步延伸,并且其与实施例3的号段存取方法的步骤流程有所不同,即其除了包括实施例1或实施例2的号段存取方法的步骤之外,如图4所示,本实施例的号段存取方法在对分割出的子号段进行存储,并根据存储的子号段来更新针对各物流服务商的可用单号额度的步骤之后还包括:
步骤401、接收单号获取请求;
其中,步骤401中的单号获取请求中会包括与请求相对应的物流服务商的相关信息,即通过单号获取请求会知晓该单号获取请求是哪个物流服务商发出的;
步骤402、判断缓存中是否存在与所述单号获取请求对应的物流服务商的剩余单号,若是,则步骤403;若否,则从存储的号段中选取一可用号段加载至缓存中,然后执行步骤403;
其中,所述单号获取请求的数量为多个,在实践中同一时刻会存在大量并发的获取单号请求,对于每个单号获取请求,在判断出缓存中不存在对应的物流服务商的剩余单号时,均会执行从存储的号段中选取一可用号段加载至缓存中的步骤,且随机设置针对不同的物流服务商的可用号段的选取时间,从而可以在时间上将多个物流服务商的可用号段的选取动作错开。
如果针对多个单号获取请求都要分别执行从存储的号段中选取一可用号段加载至缓存中的步骤,那么就要对选取可用号段加载的动作进行并发控制,既要避免重复加载相同的可用号段,也要保证加载效率;在本发明中,具体采用乐观锁的加锁机制来避免重复加载相同的可用号段,具体地,可以调用线程来执行从存储的号段中选取一可用号段加载至缓存中的操作,并采用乐观锁的加锁机制对所述线程进行加锁;而保证加载效率则具体通过上述的随机设置针对不同的物流服务商的可用号段的选取时间来实现。
步骤403、从缓存中获取可用单号;
在步骤403中获取的就是与单号获取请求相对应的物流服务商的可用单号,如果单号获取请求的数量很多,则对于每个单号获取请求,均调用一个对应的线程执行从缓存中获取可用单号的操作,并采用乐观锁的加锁机制对所述线程进行加锁,这样,在获取可用单号时也采用乐观锁的加锁机制来避免重复获取相同的可用单号。当然,同样的,对于不同的单号获取请求,可以随机设置获取可用单号动作的执行时间。
步骤404、检测所述可用单号是否为已使用的单号,若是,则返回步骤402,若否,则执行步骤405;
步骤405、继续检测所述可用单号是否被取消过或回收过,若被取消过或被回收过,则返回步骤402;若未被取消过且未被回收过,则执行步骤406;
其中,取消单号是商家发起的动作,一般取消的原因是因为快递包裹投递信息发生了变化(如收件地址、手机号等发生变化)或商家操作失误(如请求了错误的物流服务商等);而回收单号是指商家虽然获取了物流电子面单单号,但实际上此包裹并未发货,为了避免单号的浪费,会进行未使用单号的回收。
步骤406、对所述可用单号进行号码混淆处理;
此处混淆处理的目的是消除可用单号的一些特征,防止号段规律被预测到,达到不超范围、随机性、非递增性、可复原性的特点,而具体的混淆算法属于本领域的常规技术,在此就不再赘述。
步骤407、获取所述单号获取请求对应的物流服务商针对物流电子面单单号的个性化校验需求;
步骤408、对可用单号进行个性化校验需求的校验,若校验通过,则执行步骤409;若校验未通过,则返回步骤402;
其中,具体的校验方式可以为假设可用单号的其中一位为校验位,用其他各位数字与一个预设值进行四则运算(包括加减乘除、取余数等),将得到的结果与校验位进行比较,若一致则表示校验通过,若不一致则表示校验未通过;通过上述的个性化校验就可以保障物流服务商使用单号的安全性,避免尚未使用的单号被恶意猜测到进行违法活动。
步骤409、返回所述可用单号。
实施例5
本实施例提供一种电子设备,电子设备可以通过计算设备的形式表现(例如可以为服务器设备),包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中处理器执行计算机程序时可以实现实施例1-4中任意一实施例提供的物流电子面单的号段存取方法。
图5示出了本实施例的硬件结构示意图,如图5所示,电子设备9具体包括:
至少一个处理器91、至少一个存储器92以及用于连接不同系统组件(包括处理器91和存储器92)的总线93,其中:
总线93包括数据总线、地址总线和控制总线。
存储器92包括易失性存储器,例如随机存取存储器(RAM)921和/或高速缓存存储器922,还可以进一步包括只读存储器(ROM)923。
存储器92还包括具有一组(至少一个)程序模块924的程序/实用工具925,这样的程序模块924包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
处理器91通过运行存储在存储器92中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1-4中任意一实施例提供的物流电子面单的号段存取方法。
电子设备9进一步可以与一个或多个外部设备94(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(I/O)接口95进行。并且,电子设备9还可以通过网络适配器96与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器96通过总线93与电子设备9的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备9使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
实施例6
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现实施例1-4中任意一实施例提供的物流电子面单的号段存取方法的步骤。
其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。
在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行实现实施例1-4中任意一实施例中的物流电子面单的号段存取方法的步骤。
其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,所述程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。
实施例7
本实施例提供了一种物流电子面单的号段存取系统,如图6所示,本实施例的号段存取系统具体包括:
规则获取模块11,用于获取针对各物流服务商的号段分配规则;
具体地,国家邮政管理局针对各物流服务商都设有相应的号段分配规则要求,所述规则获取模块11可以获取相应的号段分配规则并保存到本地系统中;
号段资源接收模块12,用于接收至少一个物流服务商提供的新增号段资源;
其中,接收的频率、接收的时间以及接收的数量都可以根据实际需要进行设置。
针对接收到的每个物流服务商的新增号段资源,均通过以下模块分别执行以下相应的操作:
第一判断模块13,用于判断各物流服务商提供的新增号段资源是否符合对应的号段分配规则的要求,并对不符合要求的新增号段资源返回错误提示,对符合要求的新增号段资源继续判断是否包括已使用的单号,若包括,则返回错误提示,若不包括,则调用分割模块14;
其中,所述已使用的单号包括历史使用的单号和正在使用的单号,所述正在使用的单号具体包括物流生命周期尚未结束的物流电子面单单号以及在规定投诉时间范围内的物流电子面单单号;
而对于一个快递包裹,若还没被成功签收或者没被成功退回或者属于问题件但处理没有结束,则表示该快递的物流生命周期尚未结束,此时快递上的物流电子面单单号也就处于物流生命周期尚未结束的状态;
另外,国家邮政管理局规定消费者可以对一年以内的快递包裹进行投诉,因此,在快递包裹生成后的一年的时间内该快递包裹都处在规定的投诉时间范围内,此时快递上的物流电子面单单号也就处于规定的投诉时间范围内。
所述分割模块14用于将各物流服务商提供的所述新增号段资源分别分割成多个子号段;
例如,如果某个物流服务商提供的新增号段资源包括1亿个物流电子面单单号,将可以将其分割成100个子号段,每个子号段均包含1百万个单号;
在具体实施过程中,所述分割模块14具体可以包括:
计算单元,用于计算针对各物流服务商的单号使用速度;
分割单元,用于根据所述单号使用速度将各物流服务商提供的所述新增号段资源分别分割成多个子号段;
即在本发明中对于子号段的分割可以考虑针对物流服务商的单号使用速度,即可以先计算针对各物流服务商的单号使用速度,然后根据所述单号使用速度将各物流服务商提供的所述新增号段资源分别分割成多个子号段;其中优选地,所述单号使用速度与所述子号段中所包含的单号数量呈正相关,即单号使用速度越高,则分割出的子号段中包含的单号数量也越多。
而在具体实施过程中,所述计算单元具体可以通过在一使用周期内的使用单号数量与所述使用周期的比值计算在所述使用周期内的单号使用速度,其中,该使用周期的具体时长可以根据实际需要进行设置。
存储模块15,用于对分割出的子号段进行存储,并根据存储的子号段来更新针对各物流服务商的可用单号额度。
其中,优选地,所述存储模块15可以将所述子号段按照目标存储结构进行存储,所述目标存储结构的参数字段包括起始号、终止号、长度、初始化时间以及当前使用位置,以上述包含1百万个单号的子号段为例,其中起始号为1,终止号为1000000,长度即表示子号段所包含的单号的数量,即为1000000,初始化时间即为所述子号段被分割出来时的时间,当前使用位置即用于表示各单号在所属子号段中的所处位置;
该目标存储结构易于访问处理,能够保障系统稳定、高效、安全地对单号进行存储、维护和提取。
另外,在对分割出的子号段进行存储的过程中,每次确定选取子号段的数量时,可以考虑针对物流服务商的单号使用速度,具体地,可以先计算针对各物流服务商的单号使用速度,然后根据所述单号使用速度从分割出的多个子号段中选取特定数量的子号段,并对选取的所述特定数量的子号段进行存储;其中优选地,所述单号使用速度与所述特定数量呈正相关,即单号使用速度越高,则每次选取的子号段的数量也就越多。
在本发明的具体实施过程中,所述存储模块15具体可以采用如下公式来更新可用单号额度:
其中,A表示针对物流服务商的可用单号额度,B表示针对物流服务商的现有单号余额,Ci表示存储的第i个子号段的终止号,Di表示存储的第i个子号段的起始号,N表示存储的子号段的数量,E表示针对物流服务商的剩余单号告警阈值,F表示校验保留系数且0<F≤1,并且优选地,0.1≤F≤0.5;如果存储的单号中每10个单号选取一个作为可用单号,则F取值就为0.1。
其中在本实施例中,针对的物流服务商可以不止一个,对于每个物流服务商提供的新增号段资源,均分别通过上述各模块执行相应的操作,从而对于每个物流服务商均分别单独实现了号段分割、子号段的存储以及可用单号额度的更新。
实施例8
本实施例提供了一种物流电子面单的号段存取系统,其与实施例7的号段存取系统有所不同,具体如图7所示,本实施例的号段存取系统包括:
规则获取模块21,用于获取针对各物流服务商的号段分配规则;
具体地,国家邮政管理局针对各物流服务商都设有相应的号段分配规则要求,所述规则获取模块21可以获取相应的号段分配规则并保存到本地系统中;
号段资源接收模块22,用于接收至少一个物流服务商提供的新增号段资源;
其中,接收的频率、接收的时间以及接收的数量都可以根据实际需要进行设置。
针对接收到的每个物流服务商的新增号段资源,均通过以下模块分别执行以下相应的操作:
分割模块24,用于将各物流服务商提供的所述新增号段资源分别分割成多个子号段;
例如,如果某个物流服务商提供的新增号段资源包括1亿个物流电子面单单号,将可以将其分割成100个子号段,每个子号段均包含1百万个单号;
在具体实施过程中,所述分割模块24具体可以包括:
计算单元,用于计算针对各物流服务商的单号使用速度;
分割单元,用于根据所述单号使用速度将各物流服务商提供的所述新增号段资源分别分割成多个子号段;
即在本发明中对于子号段的分割可以考虑针对物流服务商的单号使用速度,即可以先计算针对各物流服务商的单号使用速度,然后根据所述单号使用速度将各物流服务商提供的所述新增号段资源分别分割成多个子号段;其中优选地,所述单号使用速度与所述子号段中所包含的单号数量呈正相关,即单号使用速度越高,则分割出的子号段中包含的单号数量也越多。
而在具体实施过程中,所述计算单元具体可以通过在一使用周期内的使用单号数量与所述使用周期的比值计算在所述使用周期内的单号使用速度,其中,该使用周期的具体时长可以根据实际需要进行设置。
第二判断模块23,用于判断分割出的各子号段是否符合对应的号段分配规则的要求,并对不符合要求的子号段返回错误提示,对符合要求的子号段继续判断是否包括已使用的单号,若包括,则返回错误提示,若不包括,则调用存储模块25;
其中,所述已使用的单号包括历史使用的单号和正在使用的单号,所述正在使用的单号具体包括物流生命周期尚未结束的物流电子面单单号以及在规定投诉时间范围内的物流电子面单单号;
而对于一个快递包裹,若还没被成功签收或者没被成功退回或者属于问题件但处理没有结束,则表示该快递的物流生命周期尚未结束,此时快递上的物流电子面单单号也就处于物流生命周期尚未结束的状态;
另外,国家邮政管理局规定消费者可以对一年以内的快递包裹进行投诉,因此,在快递包裹生成后的一年的时间内该快递包裹都处在规定的投诉时间范围内,此时快递上的物流电子面单单号也就处于规定的投诉时间范围内。
存储模块25,用于对分割出的子号段进行存储,并根据存储的子号段来更新针对各物流服务商的可用单号额度。
其中,优选地,所述存储模块25可以将所述子号段按照目标存储结构进行存储,所述目标存储结构的参数字段包括起始号、终止号、长度、初始化时间以及当前使用位置,以上述包含1百万个单号的子号段为例,其中起始号为1,终止号为1000000,长度即表示子号段所包含的单号的数量,即为1000000,初始化时间即为所述子号段被分割出来时的时间,当前使用位置即用于表示各单号在所属子号段中的所处位置;
该目标存储结构易于访问处理,能够保障系统稳定、高效、安全地对单号进行存储、维护和提取。
另外,在对分割出的子号段进行存储的过程中,每次确定选取子号段的数量时,可以考虑针对物流服务商的单号使用速度,具体地,可以先计算针对各物流服务商的单号使用速度,然后根据所述单号使用速度从分割出的多个子号段中选取特定数量的子号段,并对选取的所述特定数量的子号段进行存储;其中优选地,所述单号使用速度与所述特定数量呈正相关,即单号使用速度越高,则每次选取的子号段的数量也就越多。
在本发明的具体实施过程中,所述存储模块25具体可以采用如下公式来更新可用单号额度:
其中,A表示针对物流服务商的可用单号额度,B表示针对物流服务商的现有单号余额,Ci表示存储的第i个子号段的终止号,Di表示存储的第i个子号段的起始号,N表示存储的子号段的数量,E表示针对物流服务商的剩余单号告警阈值,F表示校验保留系数且0<F≤1,并且优选地,0.1≤F≤0.5;如果存储的单号中每10个单号选取一个作为可用单号,则F取值就为0.1。
本实施例与实施例7相比,在将物流服务商提供的新增号段资源分割为多个子号段之后,针对每个子号段分别判断是否符合号段分配规则的要求以及判断是否包括已使用的单号,这样,即使某个子号段不符合要求或者包括了已使用的单号,结果也就是该单个子号段被舍弃不再进行后续使用,而不影响其他子号段的后续使用,从而可以最大化地对新增号段资源分割出的子号段进行使用,提升了新增号段资源被使用的可能性。
实施例9
本实施例提供了一种物流电子面单的号段存取系统,其属于针对实施例7或实施例8的号段存取系统的进一步延伸,即其除了包括实施例7或实施例8的号段存取系统的各模块之外,如图8所示,本实施例的号段存取系统还包括:
请求接收模块31,用于接收单号获取请求;
其中,单号获取请求中会包括与请求相对应的物流服务商的相关信息,即通过单号获取请求会知晓该单号获取请求是哪个物流服务商发出的;
第三判断模块32,用于在所述请求接收模块31接收到单号获取请求后,判断缓存中是否存在与所述单号获取请求对应的物流服务商的剩余单号,若是,则调用可用单号获取模块33;若否,则从存储的号段中选取一可用号段加载至缓存中,然后调用所述可用单号获取模块33。
其中,所述单号获取请求的数量为多个,在实践中同一时刻会存在大量并发的获取单号请求,对于每个单号获取请求,所述第三判断模块32在判断出缓存中不存在对应的物流服务商的剩余单号时,均会从存储的号段中选取一可用号段加载至缓存中,且所述第三判断模块32还用于随机设置针对不同的物流服务商的可用号段的选取时间,从而可以在时间上将多个物流服务商的可用号段的选取动作错开。
如果针对多个单号获取请求都要分别从存储的号段中选取一可用号段加载至缓存中,那么就要对选取可用号段加载的动作进行并发控制,既要避免重复加载相同的可用号段,也要保证加载效率;在本发明中,具体采用乐观锁的加锁机制来避免重复加载相同的可用号段,具体地,所述第三判断模块32可以调用线程来执行从存储的号段中选取一可用号段加载至缓存中的操作,并采用乐观锁的加锁机制对所述线程进行加锁;而保证加载效率则具体通过上述的随机设置针对不同的物流服务商的可用号段的选取时间来实现。
可用单号获取模块33,用于从缓存中获取可用单号;
所述可用单号获取模块33获取的就是与单号获取请求相对应的物流服务商的可用单号,如果单号获取请求的数量很多,则对于每个单号获取请求,所述可用单号获取模块33均调用一个对应的线程从缓存中获取可用单号,并采用乐观锁的加锁机制对所述线程进行加锁,这样,在获取可用单号时也采用乐观锁的加锁机制来避免重复获取相同的可用单号。当然,同样的,对于不同的单号获取请求,可以随机设置获取可用单号动作的执行时间。
混淆模块34,用于对所述可用单号进行号码混淆处理,并在进行号码混淆处理后调用校验模块35;
此处混淆处理的目的是消除可用单号的一些特征,防止号段规律被预测到,达到不超范围、随机性、非递增性、可复原性的特点,而具体的混淆算法属于本领域的常规技术,在此就不再赘述。
所述校验模块35用于在所述可用单号获取模块从缓存中获取可用单号之后,获取所述单号获取请求对应的物流服务商针对物流电子面单单号的个性化校验需求;对获取到的可用单号进行个性化校验需求的校验,若校验通过,则调用检测模块36;若校验未通过,则调用所述第三判断模块32判断缓存中是否存在与所述单号获取请求对应的物流服务商的剩余单号;
其中,具体的校验方式可以为假设可用单号的其中一位为校验位,用其他各位数字与一个预设值进行四则运算(包括加减乘除、取余数等),将得到的结果与校验位进行比较,若一致则表示校验通过,若不一致则表示校验未通过;通过上述的个性化校验就可以保障物流服务商使用单号的安全性,避免尚未使用的单号被恶意猜测到进行违法活动。
所述检测模块36用于检测所述可用单号是否为已使用的单号,若是,则调用所述第三判断模块32继续判断;若否,则继续检测所述可用单号是否被取消过或回收过,若被取消过或被回收过,则调用所述第三判断模块32继续判断;若未被取消过且未被回收过,则调用返回模块37;
其中,取消单号是商家发起的动作,一般取消的原因是因为快递包裹投递信息发生了变化(如收件地址、手机号等发生变化)或商家操作失误(如请求了错误的物流服务商等);而回收单号是指商家虽然获取了物流电子面单单号,但实际上此包裹并未发货,为了避免单号的浪费,会进行未使用单号的回收。
所述返回模块37用于返回所述可用单号。
本实施例重点在于接收到单号获取请求之后如何返回可用单号,通过上述各模块执行相应的操作实现了对多个物流服务商的多个单号获取请求,均能够及时有效地返回可用单号,并且避免了返回重复的可用单号,保障各物流服务商的快递包裹及时运送。
实施例10
本实施例提供了一种物流电子面单的号段存取系统,其也属于针对实施例7或实施例8的号段存取系统的进一步延伸,即其除了包括实施例7或实施例8的号段存取系统的各模块之外,如图9所示,本实施例的号段存取系统还包括:
请求接收模块41,用于接收单号获取请求;
其中,单号获取请求中会包括与请求相对应的物流服务商的相关信息,即通过单号获取请求会知晓该单号获取请求是哪个物流服务商发出的;
第三判断模块42,用于在所述请求接收模块41接收到单号获取请求后,判断缓存中是否存在与所述单号获取请求对应的物流服务商的剩余单号,若是,则调用可用单号获取模块43;若否,则从存储的号段中选取一可用号段加载至缓存中,然后调用所述可用单号获取模块43。
其中,所述单号获取请求的数量为多个,在实践中同一时刻会存在大量并发的获取单号请求,对于每个单号获取请求,所述第三判断模块42在判断出缓存中不存在对应的物流服务商的剩余单号时,均会从存储的号段中选取一可用号段加载至缓存中,且所述第三判断模块42还用于随机设置针对不同的物流服务商的可用号段的选取时间,从而可以在时间上将多个物流服务商的可用号段的选取动作错开。
如果针对多个单号获取请求都要分别从存储的号段中选取一可用号段加载至缓存中,那么就要对选取可用号段加载的动作进行并发控制,既要避免重复加载相同的可用号段,也要保证加载效率;在本发明中,具体采用乐观锁的加锁机制来避免重复加载相同的可用号段,具体地,所述第三判断模块42可以调用线程来执行从存储的号段中选取一可用号段加载至缓存中的操作,并采用乐观锁的加锁机制对所述线程进行加锁;而保证加载效率则具体通过上述的随机设置针对不同的物流服务商的可用号段的选取时间来实现。
可用单号获取模块43,用于从缓存中获取可用单号;
所述可用单号获取模块43获取的就是与单号获取请求相对应的物流服务商的可用单号,如果单号获取请求的数量很多,则对于每个单号获取请求,所述可用单号获取模块43均调用一个对应的线程从缓存中获取可用单号,并采用乐观锁的加锁机制对所述线程进行加锁,这样,在获取可用单号时也采用乐观锁的加锁机制来避免重复获取相同的可用单号。当然,同样的,对于不同的单号获取请求,可以随机设置获取可用单号动作的执行时间。
检测模块46,用于检测所述可用单号是否为已使用的单号,若是,则调用所述第三判断模块42继续判断;若否,则继续检测所述可用单号是否被取消过或回收过,若被取消过或被回收过,则调用所述第三判断模块42继续判断;若未被取消过且未被回收过,则调用混淆模块44;
其中,取消单号是商家发起的动作,一般取消的原因是因为快递包裹投递信息发生了变化(如收件地址、手机号等发生变化)或商家操作失误(如请求了错误的物流服务商等);而回收单号是指商家虽然获取了物流电子面单单号,但实际上此包裹并未发货,为了避免单号的浪费,会进行未使用单号的回收。
混淆模块44,用于对所述可用单号进行号码混淆处理,并在进行号码混淆处理后调用校验模块45;
此处混淆处理的目的是消除可用单号的一些特征,防止号段规律被预测到,达到不超范围、随机性、非递增性、可复原性的特点,而具体的混淆算法属于本领域的常规技术,在此就不再赘述。
所述校验模块45用于在所述可用单号获取模块从缓存中获取可用单号之后,获取所述单号获取请求对应的物流服务商针对物流电子面单单号的个性化校验需求;对获取到的可用单号进行个性化校验需求的校验,若校验通过,则调用返回模块47;若校验未通过,则调用所述第三判断模块42判断缓存中是否存在与所述单号获取请求对应的物流服务商的剩余单号;
其中,具体的校验方式可以为假设可用单号的其中一位为校验位,用其他各位数字与一个预设值进行四则运算(包括加减乘除、取余数等),将得到的结果与校验位进行比较,若一致则表示校验通过,若不一致则表示校验未通过;通过上述的个性化校验就可以保障物流服务商使用单号的安全性,避免尚未使用的单号被恶意猜测到进行违法活动。
所述返回模块47用于返回所述可用单号。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (32)
1.一种物流电子面单的号段存取方法,其特征在于,包括以下步骤:
接收至少一个物流服务商提供的新增号段资源;
将各物流服务商提供的所述新增号段资源分别分割成多个子号段;
对分割出的子号段进行存储,并根据存储的子号段来更新针对各物流服务商的可用单号额度。
2.如权利要求1所述的物流电子面单的号段存取方法,其特征在于,所述将各物流服务商提供的所述新增号段资源分别分割成多个子号段的步骤具体包括:
计算针对各物流服务商的单号使用速度;
根据所述单号使用速度将各物流服务商提供的所述新增号段资源分别分割成多个子号段;
其中,所述单号使用速度与所述子号段中所包含的单号数量呈正相关。
3.如权利要求2所述的物流电子面单的号段存取方法,其特征在于,所述对分割出的子号段进行存储的步骤具体包括:
计算针对各物流服务商的单号使用速度;
根据所述单号使用速度从分割出的多个子号段中选取特定数量的子号段,并对选取的所述特定数量的子号段进行存储;
其中,所述单号使用速度与所述特定数量呈正相关。
4.如权利要求2所述的物流电子面单的号段存取方法,其特征在于,所述计算针对各物流服务商的单号使用速度的步骤具体包括:
通过在一使用周期内的使用单号数量与所述使用周期的比值计算在所述使用周期内的单号使用速度。
5.如权利要求1所述的物流电子面单的号段存取方法,其特征在于,所述对分割出的子号段进行存储的步骤具体包括:
将所述子号段按照目标存储结构进行存储,所述目标存储结构的参数字段包括起始号、终止号、长度、初始化时间以及当前使用位置。
7.如权利要求1所述的物流电子面单的号段存取方法,其特征在于,所述号段存取方法还包括:获取针对各物流服务商的号段分配规则;
所述接收至少一个物流服务商提供的新增号段资源的步骤之后还包括:
判断各物流服务商提供的新增号段资源是否符合对应的号段分配规则的要求,并对不符合要求的新增号段资源返回错误提示,对符合要求的新增号段资源继续判断是否包括已使用的单号,若包括,则返回错误提示,若不包括,则继续执行所述分割成多个子号段的步骤;
其中,所述已使用的单号包括历史使用的单号和正在使用的单号,所述正在使用的单号具体包括物流生命周期尚未结束的物流电子面单单号以及在规定投诉时间范围内的物流电子面单单号。
8.如权利要求1所述的物流电子面单的号段存取方法,其特征在于,所述号段存取方法还包括:获取针对各物流服务商的号段分配规则;
所述将各物流服务商提供的所述新增号段资源分别分割成多个子号段的步骤之后还包括:
判断分割出的各子号段是否符合对应的号段分配规则的要求,并对不符合要求的子号段返回错误提示,对符合要求的子号段继续判断是否包括已使用的单号,若包括,则返回错误提示,若不包括,则继续执行对子号段进行存储的步骤;
其中,所述已使用的单号包括历史使用的单号和正在使用的单号,所述正在使用的单号具体包括物流生命周期尚未结束的物流电子面单单号以及在规定投诉时间范围内的物流电子面单单号。
9.如权利要求1-8中任意一项所述的物流电子面单的号段存取方法,其特征在于,所述对分割出的子号段进行存储,并根据存储的子号段来更新针对各物流服务商的可用单号额度的步骤之后还包括:
接收单号获取请求;
从缓存中获取可用单号;
检测所述可用单号是否为已使用的单号,若否,则继续检测所述可用单号是否被取消过或回收过,若未被取消过且未被回收过,则返回所述可用单号。
10.如权利要求9所述的物流电子面单的号段存取方法,其特征在于,所述单号获取请求中包含对应的物流服务商信息;
所述接收单号获取请求的步骤之后还包括:
判断缓存中是否存在与所述单号获取请求对应的物流服务商的剩余单号,若是,则执行从缓存中获取可用单号的步骤;若否,则从存储的号段中选取一可用号段加载至缓存中,然后执行从缓存中获取可用单号的步骤。
11.如权利要求10所述的物流电子面单的号段存取方法,其特征在于,所述单号获取请求的数量为多个,对于每个单号获取请求,在判断出缓存中不存在对应的物流服务商的剩余单号时,均会执行从存储的号段中选取一可用号段加载至缓存中的步骤,且随机设置针对不同的物流服务商的可用号段的选取时间。
12.如权利要求11所述的物流电子面单的号段存取方法,其特征在于,所述从存储的号段中选取一可用号段加载至缓存中的步骤具体还包括:
调用线程来执行从存储的号段中选取一可用号段加载至缓存中的操作,并采用乐观锁的加锁机制对所述线程进行加锁。
13.如权利要求9所述的物流电子面单的号段存取方法,其特征在于,所述单号获取请求的数量为多个,所述从缓存中获取可用单号的步骤具体包括:
对于每个单号获取请求,均调用一个对应的线程执行从缓存中获取可用单号的操作,并采用乐观锁的加锁机制对所述线程进行加锁。
14.如权利要求10所述的物流电子面单的号段存取方法,其特征在于,
所述从缓存中获取可用单号的步骤之后还包括:获取所述单号获取请求对应的物流服务商针对物流电子面单单号的个性化校验需求;对获取到的可用单号进行个性化校验需求的校验,若校验通过,则继续执行所述检测所述可用单号是否为已使用的单号的步骤;若校验未通过,则返回所述判断缓存中是否存在与所述单号获取请求对应的物流服务商的剩余单号的步骤;
或,所述继续检测所述可用单号是否被取消过或回收过的步骤之后具体包括:若检测结果为未被取消过且未被回收过,则获取所述单号获取请求对应的物流服务商针对物流电子面单单号的个性化校验需求;对获取到的可用单号进行个性化校验需求的校验,若校验通过,则返回所述可用单号;若校验未通过,则返回所述判断缓存中是否存在与所述单号获取请求对应的物流服务商的剩余单号的步骤。
15.如权利要求14所述的物流电子面单的号段存取方法,其特征在于,所述对获取到的可用单号进行个性化校验需求的校验的步骤之前还包括:
对所述可用单号进行号码混淆处理。
16.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至15中任一项所述的物流电子面单的号段存取方法。
17.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至15中任一项所述的物流电子面单的号段存取方法的步骤。
18.一种物流电子面单的号段存取系统,其特征在于,包括:
号段资源接收模块,用于接收至少一个物流服务商提供的新增号段资源;
分割模块,用于将各物流服务商提供的所述新增号段资源分别分割成多个子号段;
存储模块,用于对分割出的子号段进行存储,并根据存储的子号段来更新针对各物流服务商的可用单号额度。
19.如权利要求18所述的物流电子面单的号段存取系统,其特征在于,所述分割模块具体包括:
计算单元,用于计算针对各物流服务商的单号使用速度;
分割单元,用于根据所述单号使用速度将各物流服务商提供的所述新增号段资源分别分割成多个子号段;
其中,所述单号使用速度与所述子号段中所包含的单号数量呈正相关。
20.如权利要求19所述的物流电子面单的号段存取系统,其特征在于,所述存储模块具体用于根据所述单号使用速度从分割出的多个子号段中选取特定数量的子号段,并对选取的所述特定数量的子号段进行存储;
其中,所述单号使用速度与所述特定数量呈正相关。
21.如权利要求19所述的物流电子面单的号段存取系统,其特征在于,所述计算单元具体用于通过在一使用周期内的使用单号数量与所述使用周期的比值计算在所述使用周期内的单号使用速度。
22.如权利要求18所述的物流电子面单的号段存取系统,其特征在于,所述存储模块用于将所述子号段按照目标存储结构进行存储,所述目标存储结构的参数字段包括起始号、终止号、长度、初始化时间以及当前使用位置。
24.如权利要求18所述的物流电子面单的号段存取系统,其特征在于,所述号段存取系统还包括:
规则获取模块,用于获取针对各物流服务商的号段分配规则;
第一判断模块,用于判断各物流服务商提供的新增号段资源是否符合对应的号段分配规则的要求,并对不符合要求的新增号段资源返回错误提示,对符合要求的新增号段资源继续判断是否包括已使用的单号,若包括,则返回错误提示,若不包括,则调用所述分割模块;
其中,所述已使用的单号包括历史使用的单号和正在使用的单号,所述正在使用的单号具体包括物流生命周期尚未结束的物流电子面单单号以及在规定投诉时间范围内的物流电子面单单号。
25.如权利要求18所述的物流电子面单的号段存取系统,其特征在于,所述号段存取系统还包括:
规则获取模块,用于获取针对各物流服务商的号段分配规则;
第二判断模块,用于判断分割出的各子号段是否符合对应的号段分配规则的要求,并对不符合要求的子号段返回错误提示,对符合要求的子号段继续判断是否包括已使用的单号,若包括,则返回错误提示,若不包括,则调用所述存储模块;
其中,所述已使用的单号包括历史使用的单号和正在使用的单号,所述正在使用的单号具体包括物流生命周期尚未结束的物流电子面单单号以及在规定投诉时间范围内的物流电子面单单号。
26.如权利要求18-25中任意一项所述的物流电子面单的号段存取系统,其特征在于,所述号段存取系统还包括:
请求接收模块,用于接收单号获取请求;
可用单号获取模块,用于从缓存中获取可用单号;
检测模块,用于检测所述可用单号是否为已使用的单号,若否,则继续检测所述可用单号是否被取消过或回收过,若未被取消过且未被回收过,则调用返回模块;
所述返回模块用于返回所述可用单号。
27.如权利要求26所述的物流电子面单的号段存取系统,其特征在于,所述号段存取系统还包括第三判断模块;
所述第三判断模块用于在所述请求接收模块接收到单号获取请求后,判断缓存中是否存在与所述单号获取请求对应的物流服务商的剩余单号,若是,则调用所述可用单号获取模块;若否,则从存储的号段中选取一可用号段加载至缓存中,然后调用所述可用单号获取模块。
28.如权利要求27所述的物流电子面单的号段存取系统,其特征在于,所述单号获取请求的数量为多个,对于每个单号获取请求,所述第三判断模块在判断出缓存中不存在对应的物流服务商的剩余单号时,均会从存储的号段中选取一可用号段加载至缓存中,且所述第三判断模块还用于随机设置针对不同的物流服务商的可用号段的选取时间。
29.如权利要求28所述的物流电子面单的号段存取系统,其特征在于,所述第三判断模块具体用于调用线程来从存储的号段中选取一可用号段加载至缓存中,并采用乐观锁的加锁机制对所述线程进行加锁。
30.如权利要求26所述的物流电子面单的号段存取系统,其特征在于,所述单号获取请求的数量为多个,对于每个单号获取请求,所述可用单号获取模块均调用一个对应的线程从缓存中获取可用单号,并采用乐观锁的加锁机制对所述线程进行加锁。
31.如权利要求27所述的物流电子面单的号段存取系统,其特征在于,所述号段存取系统还包括校验模块;
所述校验模块用于在所述可用单号获取模块从缓存中获取可用单号之后,获取所述单号获取请求对应的物流服务商针对物流电子面单单号的个性化校验需求;对获取到的可用单号进行个性化校验需求的校验,若校验通过,则调用所述检测模块;若校验未通过,则调用所述第三判断模块判断缓存中是否存在与所述单号获取请求对应的物流服务商的剩余单号;
或,所述校验模块用于在所述检测模块检测出所述可用单号未被取消过且未被回收过后,获取所述单号获取请求对应的物流服务商针对物流电子面单单号的个性化校验需求;对获取到的可用单号进行个性化校验需求的校验,若校验通过,则调用所述返回模块;若校验未通过,则调用所述第三判断模块判断缓存中是否存在与所述单号获取请求对应的物流服务商的剩余单号。
32.如权利要求31所述的物流电子面单的号段存取系统,其特征在于,所述号段存取系统还包括:
混淆模块,用于对所述可用单号进行号码混淆处理,并在进行号码混淆处理后调用所述校验模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910510277.1A CN111694835B (zh) | 2019-06-13 | 2019-06-13 | 物流电子面单的号段存取方法及系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910510277.1A CN111694835B (zh) | 2019-06-13 | 2019-06-13 | 物流电子面单的号段存取方法及系统、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111694835A CN111694835A (zh) | 2020-09-22 |
CN111694835B true CN111694835B (zh) | 2021-03-30 |
Family
ID=72476049
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910510277.1A Active CN111694835B (zh) | 2019-06-13 | 2019-06-13 | 物流电子面单的号段存取方法及系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111694835B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112925851B (zh) * | 2021-02-26 | 2023-06-13 | 杭州网易再顾科技有限公司 | 一种单号处理方法、装置、电子设备和存储介质 |
CN115883508B (zh) * | 2021-09-26 | 2024-06-07 | 中移物联网有限公司 | 一种号码处理方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1543176A (zh) * | 2003-04-30 | 2004-11-03 | 华为技术有限公司 | 主叫名显示业务中号码信息的存储与查询方法 |
US9189489B1 (en) * | 2012-03-29 | 2015-11-17 | Pivotal Software, Inc. | Inverse distribution function operations in a parallel relational database |
CN105913214A (zh) * | 2016-06-13 | 2016-08-31 | 深圳市丰巢科技有限公司 | 用于快递柜的运单生成方法、运单生成系统以及快递柜 |
CN107832357A (zh) * | 2017-10-24 | 2018-03-23 | 深圳市丰巢科技有限公司 | 一种基于快递柜的寄件码分配方法及其系统 |
CN109033153A (zh) * | 2018-06-12 | 2018-12-18 | 上海中通吉网络技术有限公司 | 一种动态分配唯一电子运单号的方法 |
-
2019
- 2019-06-13 CN CN201910510277.1A patent/CN111694835B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1543176A (zh) * | 2003-04-30 | 2004-11-03 | 华为技术有限公司 | 主叫名显示业务中号码信息的存储与查询方法 |
US9189489B1 (en) * | 2012-03-29 | 2015-11-17 | Pivotal Software, Inc. | Inverse distribution function operations in a parallel relational database |
CN105913214A (zh) * | 2016-06-13 | 2016-08-31 | 深圳市丰巢科技有限公司 | 用于快递柜的运单生成方法、运单生成系统以及快递柜 |
CN107832357A (zh) * | 2017-10-24 | 2018-03-23 | 深圳市丰巢科技有限公司 | 一种基于快递柜的寄件码分配方法及其系统 |
CN109033153A (zh) * | 2018-06-12 | 2018-12-18 | 上海中通吉网络技术有限公司 | 一种动态分配唯一电子运单号的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111694835A (zh) | 2020-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112766907B (zh) | 业务数据的处理方法、装置和服务器 | |
KR20150119949A (ko) | 클라이언트를 갱신하기 위한 방법 및 디바이스 | |
US10558552B2 (en) | Configurable code fingerprint | |
CN111694835B (zh) | 物流电子面单的号段存取方法及系统、设备及存储介质 | |
CN111161071A (zh) | 基于区块链的数据处理方法、装置、设备和存储介质 | |
CN115190010B (zh) | 基于软件服务依赖关系的分布推荐方法和装置 | |
CN112631924A (zh) | 自动化测试方法、装置、计算机设备及存储介质 | |
CN115941708A (zh) | 云端大数据存储管理方法、装置、电子设备及存储介质 | |
CN105431815A (zh) | 用于数据库工作负荷的输入-输出优先化 | |
CN114070847B (zh) | 服务器的限流方法、装置、设备及存储介质 | |
CN105718767B (zh) | 一种基于风险识别的信息处理方法及装置 | |
CN115442262A (zh) | 一种资源评估方法、装置、电子设备及存储介质 | |
CN114157482A (zh) | 一种业务访问控制方法、装置、控制设备及存储介质 | |
CN108628620A (zh) | Pos应用开发的实现方法、装置、计算机设备和存储介质 | |
CN113420050A (zh) | 数据查询管理方法、装置、计算机设备及可读存储介质 | |
WO2021096346A1 (en) | A computer-implemented system for management of container logs and its method thereof | |
CN112085589A (zh) | 规则模型的安全性的确定方法、装置和服务器 | |
CN111143073A (zh) | 一种虚拟化资源的管理方法、设备及存储介质 | |
CN117439993B (zh) | Redis集群负载均衡方法、装置、设备及存储介质 | |
US11755215B2 (en) | Method, electronic device and computer program product for managing disk | |
CN113434505B (zh) | 交易信息属性检索方法、装置、计算机设备及存储介质 | |
CN112015758B (zh) | 产品取码方法、装置、计算机设备和存储介质 | |
CN111327513B (zh) | 消息数据的推送方法、装置、计算机设备及存储介质 | |
CN109901997B (zh) | 金融系统升级方法及装置、电子设备、存储介质 | |
CN118820259A (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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210825 Address after: Room 2902, No. 533, Loushanguan Road, Changning District, Shanghai 200050 Patentee after: Walnut Street (Shanghai) Information Technology Co.,Ltd. Address before: Room 2902-2913, No. 533, Loushanguan Road, Changning District, Shanghai, 200051 Patentee before: SHANGHAI XUNMENG INFORMATION TECHNOLOGY Co.,Ltd. |