System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据处理,特别是涉及一种对象分发方法、装置、电子设备及介质。
技术介绍
1、在限量的对象分发场景下,可分发的对象总数量是预设的,可分发的对象种类有多个,且各种对象需要按照一定比例分发。例如,购物平台的促销活动中,共需发放1000张优惠卷,其中,100元优惠卷的发放比例为10%,50元优惠卷的发放比例为30%,10元优惠卷的发放比例为60%。又例如,商家举办的卡片发放活动中,共需发放500张卡片,其中,特级卡片的发放比例为5%,中级卡片的发放比例为10%,普通卡片的发放比例为85%。
2、在这种分发场景下,服务器接收到终端的请求时,通常按照各种对象的预设发放比例,随机选择一个种类,并向该终端发送该种类的一个对象。但这种方式容易出现某种对象实际被发放的比例超过该种对象的预设发放比例的情况。例如,某团体举办的奖品发放活动中,共设置了4个奖品,其中,一等奖品为1个,且发放比例为25%,二等奖品为3个,且发放比例为75%。这种情况下,如果在一等奖品已被发放后,服务器再次接收到用户请求,此时服务器仍会以25%的概率确定向该用户发放一等奖品,导致该方式存在奖品超发的错误。
技术实现思路
1、本申请实施例的目的在于提供一种对象分发方法、装置、电子设备及介质,以避免对象分发场景下的超发问题。具体技术方案如下:
2、本申请实施例的第一方面,提供了一种对象分发方法,所述方法包括:
3、接收终端发送的获取请求;
4、从库存列表中获取预设数量个未被发
5、在所述库存列表中记录所述待发放对象已被发放;
6、向所述终端发送所述待发放对象。
7、可选的,所述在所述库存列表中记录所述待发放对象已被发放,包括:
8、将所述库存列表中所述待发放对象的发放状态修改为已被发放。
9、可选的,在所述在所述库存列表中记录所述待发放对象已被发放之前,所述方法还包括:
10、在获取到所述待发放对象时,将所述库存列表中所述待发放对象的发放状态修改为待发放;
11、若接收到发放指令,则执行所述在所述库存列表中记录所述待发放对象已被发放的步骤。
12、可选的,在所述在获取到所述待发放对象时,将所述库存列表中所述待发放对象的发放状态修改为待发放之后,所述方法还包括:
13、若接收到取消发放指令,则将所述库存列表中所述待发放对象的发放状态修改为未被发放;
14、向所述终端发送提示信息,所述提示信息表示本次对象发放被取消。
15、可选的,所述方法还包括:
16、若将所述库存列表中所述待发放对象的发放状态修改为待发放失败,则返回所述从库存列表中获取预设数量个未被发放的对象,作为待发放对象的步骤。
17、可选的,在所述接收终端发送的获取请求之前,所述方法还包括:
18、按照每种对象的预设发放比例,生成所述对象总数量个对象;
19、按照随机洗牌算法确定生成的各对象的排列顺序,并按照确定的排列顺序将所述各对象存储到所述库存列表中。
20、可选的,所述从库存列表中获取预设数量个未被发放的对象,作为待发放对象,包括:
21、按照所述库存列表包括的各对象的排列顺序,选择预设数量个发放状态为未被发放的对象,作为所述待发放对象。
22、本申请实施例的第二方面,提供了一种对象分发装置,所述装置包括:
23、接收模块,用于接收终端发送的获取请求;
24、获取模块,用于从库存列表中获取预设数量个未被发放的对象,作为待发放对象,所述库存列表包括多种对象,每种对象的数量在所述库存列表包括的对象总数量中所占比例为该种对象的预设发放比例;
25、记录模块,用于在所述库存列表中记录所述获取模块获取的所述待发放对象已被发放;
26、发送模块,用于向所述终端发送所述获取模块获取的所述待发放对象。
27、可选的,所述记录模块,具体用于:
28、将所述库存列表中所述待发放对象的发放状态修改为已被发放。
29、可选的,所述装置还包括:
30、修改模块,用于在所述在所述库存列表中记录所述待发放对象已被发放之前,在获取到所述待发放对象时,将所述库存列表中所述待发放对象的发放状态修改为待发放;
31、调用模块,用于若接收到发放指令,则调用所述记录模块执行所述在所述库存列表中记录所述待发放对象已被发放的步骤。
32、可选的,所述修改模块,还用于在所述在获取到所述待发放对象时,将所述库存列表中所述待发放对象的发放状态修改为待发放之后,若接收到取消发放指令,则将所述库存列表中所述待发放对象的发放状态修改为未被发放;
33、所述发送模块,还用于向所述终端发送提示信息,所述提示信息表示本次对象发放被取消。
34、可选的,所述调用模块,还用于:
35、若将所述库存列表中所述待发放对象的发放状态修改为待发放失败,则调用所述获取模块执行所述从库存列表中获取预设数量个未被发放的对象,作为待发放对象的步骤。
36、可选的,所述装置还包括:
37、生成模块,用于在所述接收终端发送的获取请求之前,按照每种对象的预设发放比例,生成所述对象总数量个对象;
38、存储模块,用于按照随机洗牌算法确定所述生成模块生成的各对象的排列顺序,并按照确定的排列顺序将所述各对象存储到所述库存列表中。
39、可选的,所述获取模块,具体用于:
40、按照所述库存列表包括的各对象的排列顺序,选择预设数量个发放状态为未被发放的对象,作为所述待发放对象。
41、本申请实施例的第三方面,提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
42、存储器,用于存放计算机程序;
43、处理器,用于执行存储器上所存放的程序时,实现上述第一方面任一项所述的对象分发方法。
44、本申请实施例的第四方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一项所述的对象分发方法。
45、在本申请实施例的第五方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的对象分发方法。
46、本申请实施例提供的对象分发方法、装置、电子设备及介质,在接收到终端发送的获取请求后,能够从库存列表中获取预设数量个未被发放的对象,作为待发放对象,之后在库存列表中记录待发放对象已被发放,并向终端发送待发放对象,从而保障向终端发送的对象未被发放过,且向该终端本文档来自技高网...
【技术保护点】
1.一种对象分发方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述在所述库存列表中记录所述待发放对象已被发放,包括:
3.根据权利要求1所述的方法,其特征在于,在所述在所述库存列表中记录所述待发放对象已被发放之前,所述方法还包括:
4.根据权利要求3所述的方法,其特征在于,在所述在获取到所述待发放对象时,将所述库存列表中所述待发放对象的发放状态修改为待发放之后,所述方法还包括:
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1-5任一项所述的方法,其特征在于,在所述接收终端发送的获取请求之前,所述方法还包括:
7.根据权利要求6所述的方法,其特征在于,所述从库存列表中获取预设数量个未被发放的对象,作为待发放对象,包括:
8.一种对象分发装置,其特征在于,所述装置包括:
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
10.一种计算机
...【技术特征摘要】
1.一种对象分发方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述在所述库存列表中记录所述待发放对象已被发放,包括:
3.根据权利要求1所述的方法,其特征在于,在所述在所述库存列表中记录所述待发放对象已被发放之前,所述方法还包括:
4.根据权利要求3所述的方法,其特征在于,在所述在获取到所述待发放对象时,将所述库存列表中所述待发放对象的发放状态修改为待发放之后,所述方法还包括:
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1-5任一项所述...
【专利技术属性】
技术研发人员:田其树,
申请(专利权)人:北京奇艺世纪科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。