本文为已申请专利保护的订票方法(申请号2019101205641),也是另一篇文章 一种基于随机排队机制将火车票公平、经济分配给用户的订票方法及系统 (申请号201810664716X)的优先权版,本文仅供学习参考,保留所有权利,未经书面许可不得用于商业用途。
现有网上订票系统方便了人们的订票过程,无需去现场购票,只需通过因特网或电话等途径快速订票。但是,在票务资源供不应求情况下,如何将票务资源公平、经济的分配给订票者成为一个难题,例如,春运期间火车票供不应求,人们要去12306官网选择车次、席别等,然后在指定的售票时间段参与订票,下单时间最早的部分订票者才能获得火车票,未订到票的订票者可能还会尝试继续订票,由上述原因12306官网短时间内会出现大访问量、高并发情况,因此需要配备大量服务器资源才能保障12306官网正常运营,由于第三方抢票平台的出现,凭借网络带宽和自动抢票程序优势对其他订票者产生了明显不公平现象,并进一步加剧了12306官网服务器资源的高负载。
为了降低票务资源供不应求情况下票务售票系统大访问量、高并发情况导致的服务器资源大量消耗及其引起的较差用户体验度,同时,也为了消除第三方抢票平台凭借网络带宽优势对其他订票者产生的明显不公平现象,本发明提供一种票务订票方法及系统,将票务资源公平、经济的分配给订票者,另外,只要票务使用过程得到合规监管,也可以有效避免黄牛囤积倒卖票务及扰乱市场秩序。
本发明可以应用在火车票、汽车票、电影票、演出票、演唱会票等票务。
本发明解决其技术问题采用的第一技术方案是:
用户选择一个或多个单位票源,设定订票条件,提交后生成一个订单(同一单位票源同一票务使用人仅能订购一张票,例外情况除外)。上述用户指系统登录人及订购票人;上述单位票源指总票源按照票务不同特征类型分拆成一个或多个单位票源(也可以根据业务需要将某些特征类型转换为订票条件,或由系统自动分配),例如,火车票场景中,将火车票按照“某时间始发的某车次某席别”特征类型分拆成多个单位票源,或将火车票按照“某时间始发的某车次”特征类型分拆成多个单位票源(其席别将转换为订票条件,或席别不转换为订票条件由系统自动分配),或将火车票按照“某车次”特征类型分拆成多个单位票源(其始发时间、席别将转换为订票条件),或将火车票按照 “多个车次集合”特征类型分拆成多个单位票源(其始发时间、车次、席别将转换为订票条件),或火车票不按照特征类型分拆而作为一个单位票源(其特征类型将转换为订票条件);上述订票条件指系统预先设计的选项或输入项,用户根据实际需求选择选项或输入信息(根据票务制度需要,部分选项可由系统强制设定,用户不可选择),订票条件包括选择一个或多个票务使用人,例如,火车票场景中,车次类别、车次、出发站与到达站、乘车时间、席别、席位相对位置、全部同时成交选项、允许部分成交选项、乘客及票数等均可作为订票条件;上述票务使用人在火车票场景中指乘客;上述例外情况指系统预先设计的例外情况规则,例如,火车票场景中,例1,用户使用改签、变更到站功能再次排队预定同一单位票源时,成交后系统自动对原车票进行退票处理,例2,在票务制度允许情况下,用户可以订购同一单位票源的出发站至到达站站序范围不重叠的多张车票,上述站序指始发站的站序为1,依次递增1,递增至终点站为止(例如,可以订购同一单位票源的一张出发站站序2至到达站站序4的车票和另一张出发站站序4至到达站站序7的车票,或可以订购同一单位票源的一张出发站站序2至到达站站序4的车票和另一张出发站站序5至到达站站序7的车票,但不允许订购同一单位票源的一张出发站站序2至到达站站序4的车票和另一张出发站站序3至到达站站序7的车票,其两张车票的站序范围重叠部分为站点站序3至站序4),例3,在保障相对公平与票务制度允许情况下,“同一时间始发的同一车次同一席别和同一乘客”订票条件在未成交订单中仅能存在一条记录,且“同一时间始发的同一车次和同一乘客” 订票条件仅能成交一张票,进一步的,为使已购得车票乘客能获取更优的票务需求方案,“同一时间始发的同一车次同一席别和同一乘客”订票条件在未成交订单中仅能存在一条记录,且“同一时间始发的同一车次和同一乘客” 订票条件最多成交两张票,但用户必须在限定时间内退购其中一张票,或第二张票成交后系统自动退购第一张票,或第二张票为限定时间内占座待成交状态,如果第二张票成交,则系统自动对第一张票进行退票处理。
订单中票务使用人根据第一排队规则决定排队顺序,参与到单位票源的排队列表中的排队并等待分配票务(一个订单可以包含一个或多个票务使用人,一个订单可以包含一个或多个单位票源,所以,一个票务使用人可以并行参与到一个或多个单位票源的排队列表中的排队并等待分配票务)。上述第一排队规则指预售期生成的订单中的票务使用人按随机数由小到大顺序添加到相应单位票源的排队列表,每个票务使用人相应随机数大小生成的概率相等、大小不同(如果新随机数与现有随机数重复,则重新生成,或随机数重复的票务使用人均生成第二随机数比较大小,大小可比较为止),销售期生成的订单中的票务使用人按订单生成时间顺序追加到相应单位票源的排队列表;上述预售期指报名预约期,一般在预售期仅收集用户提交的订单信息,在预售期结束后决定票务使用人的排队顺序和分配余票;上述销售期指实际售票期间,用户可以在有余票时提交订单购票,或无票时提交订单排队等待,或无票时放弃排队;上述预售期、销售期在系统中可以同时存在或存在其一。
将单位票源优先分配给排队列表中排队顺序在前且符合订票条件的票务使用人,自动跳过不符合订票条件的票务使用人(保留其排队顺序位置等待下一次分配机会)。
进一步的,火车票场景中,上述单位票源指将火车票按照“某时间始发的某车次某席别”特征类型分拆成多个单位票源。
进一步的,上述第一排队规则可以是预售期生成的订单中的同一订单中多个票务使用人按随机数取平均值由小到大顺序在一起连续排队,销售期生成的订单中的同一订单中多个票务使用人按订单生成时间顺序在一起连续排队。
进一步的,如果订票条件为“全部同时成交” 或等效条件,则同一单位票源的排队列表中的其他票务使用人与同一订单中队列最后一个票务使用人在一起连续排队,且排队顺序最前时且符合订票条件的余票数>=票务使用人数时同时成交。
进一步的,线下购票的余票分配优先级小于线上同一时间及以前存在的同一单位票源的排队列表中的票务使用人。
进一步的,当订票条件为“允许部分成交”,且某个订单中任意一个优选或备选的票务需求方案中全部票务使用人分配到票务时,系统删除当前订单中所有票务需求方案相关的票务使用人排队列表中的票务使用人记录,并对其订单中成交部分票务使用人的票务需求方案进行退票处理。
本发明解决其技术问题采用的第二技术方案是:
用户选择一个或多个单位票源,设定订票条件,提交后生成一个订单(同一单位票源同一票务使用人仅能订购一张票,例外情况除外),其原理与上文所述第一技术方案第一段落相同,不再复述。
订单根据第二排队规则决定排队顺序,参与到单位票源的排队列表中的排队并等待分配票务(一个订单可以包含一个或多个单位票源,所以,一个订单可以并行参与到一个或多个单位票源的排队列表中的排队并等待分配票务)。上述第二排队规则指预售期生成的订单按随机数由小到大顺序添加到相应单位票源的排队列表,每个订单相应随机数大小生成的概率相等、大小不同(如果新随机数与现有随机数重复,则重新生成,或随机数重复的订单均生成第二随机数比较大小,大小可比较为止),销售期生成的订单按订单生成时间顺序追加到相应单位票源的排队列表;上述预售期指报名预约期,一般在预售期仅收集用户提交的订单信息,在预售期结束后决定订单的排队顺序和分配余票;上述销售期指实际售票期间,用户可以在有余票时提交订单购票,或无票时提交订单排队等待,或无票时放弃排队;上述预售期、销售期在系统中可以同时存在或存在其一。
将单位票源优先分配给排队列表中排队顺序在前且符合订票条件的订单,自动跳过不符合订票条件的订单(保留其排队顺序位置等待下一次分配机会)。
进一步的,如果订票条件为“允许部分成交”或等效条件,上述订单中未成交的票务使用人的成交先后顺序可由用户设置。
进一步的,线下购票的余票分配优先级小于线上同一时间及以前存在的同一单位票源的排队列表中的订单。
进一步的,用户可以查看本账户订单参与到单位票源的排队列表中的排队进度情况,即系统统计指定单位票源的排队列表中本账户订单前面总人数和与其订票条件相交的总人数并反馈显示到用户终端,形式为:您前面有x个人排队(其中与您订票条件相交或影响排队的有y个人),可以理解的,x、y为数字,且x>=y,例如,在火车票场景中,参与到特征类型为“某时间始发的某车次”的某单位票源的排队列表中的本账户订单的订票条件为“席别为硬卧”,则在本账户订单前面排队且订票条件包含“席别为硬卧”的订单,对本账户订单构成影响,另外,在本账户订单前面排队且出发站至到达站站序范围与本账户订单重叠的订单,对本账户订单构成影响。
进一步的,当订票条件为“允许部分成交”,且某个订单中任意一个优选或备选的票务需求方案中全部票务使用人分配到票务时,系统删除当前订单中所有票务需求方案相关的票务使用人排队列表中的票务使用人记录,并对其订单中成交部分票务使用人的票务需求方案进行退票处理。
本发明解决其技术问题采用的第三技术方案是:
用户选择一个或多个单位票源,设定订票条件,提交后生成一个订单(同一单位票源同一票务使用人仅能订购一张票,例外情况除外),其原理与上文所述第一技术方案第一段落相同,不再复述。
订单中票务需求方案根据第三排队规则决定排队顺序,参与到单位票源的排队列表中的排队并等待分配票务(一个订单可以包含一个或多个票务需求方案,一个订单可以包含一个或多个单位票源,所以,一个票务需求方案可以并行参与到一个或多个单位票源的排队列表中的排队并等待分配票务);上述票务需求方案指订单中满足用户票务需求的某一个购票方案,例如,火车票场景中,图6中用户user3预订订单D006中“票务资源为2018年08月01日始发的车次T136 硬卧,票务使用人为李四、王五共2张票,出发-到达站为宁波1至昆山9,票务使用人全部同时成交”的购票方案;上述第三排队规则指预售期生成的订单中的票务需求方案按随机数由小到大顺序添加到相应单位票源的排队列表,每个票务需求方案相应随机数大小生成的概率相等、大小不同(如果新随机数与现有随机数重复,则重新生成,或随机数重复的票务需求方案均生成第二随机数比较大小,大小可比较为止),销售期生成的订单中的票务需求方案按订单生成时间顺序追加到相应单位票源的排队列表;上述预售期指报名预约期,一般在预售期仅收集用户提交的订单信息,在预售期结束后决定票务需求方案的排队顺序和分配余票;上述销售期指实际售票期间,用户可以在有余票时提交订单购票,或无票时提交订单排队等待,或无票时放弃排队;上述预售期、销售期在系统中可以同时存在或存在其一。
将单位票源优先分配给排队列表中排队顺序在前且符合订票条件的票务需求方案,自动跳过不符合订票条件的票务需求方案(保留其排队顺序位置等待下一次分配机会)。
进一步的,如果订票条件为“允许部分成交”或等效条件,上述订单中未成交的票务使用人的成交先后顺序可由用户设置。
进一步的,线下购票的余票分配优先级小于线上同一时间及以前存在的同一单位票源的排队列表中的票务需求方案。
进一步的,用户可以查看本账户票务需求方案参与到单位票源的排队列表中的排队进度情况,即系统统计指定单位票源的排队列表中本账户票务需求方案前面总人数和与其订票条件相交的总人数并反馈显示到用户终端,形式为:您前面有x个人排队(其中与您订票条件相交或影响排队的有y个人),可以理解的,x、y为数字,且x>=y,例如,在火车票场景中,参与到特征类型为“某时间始发的某车次”的某单位票源的排队列表中的本账户票务需求方案的订票条件为“席别为硬卧”,则在本账户票务需求方案前面排队且订票条件包含“席别为硬卧”的票务需求方案,对本账户票务需求方案构成影响,另外,在本账户票务需求方案前面排队且出发站至到达站站序范围与本账户票务需求方案重叠的票务需求方案,对本账户票务需求方案构成影响。
进一步的,当订票条件为“允许部分成交”,且某个订单中任意一个优选或备选的票务需求方案中全部票务使用人分配到票务时,系统删除当前订单中所有票务需求方案相关的排队列表中的记录,并对其订单中成交部分票务使用人的票务需求方案进行退票处理。
本发明解决其技术问题采用的第四技术方案是:
一种票务订票方法及系统,主要包括票务预售期、票务销售期。下面分别作进一步说明:
1、票务预售期:
1.1、用户根据个人需求,设定订票条件,预订一个或多个最小单位票务资源并生成一个订单(同一最小单位票务资源同一票务使用人只能订购一张);
1.2、票务预售期结束后,分别获取票务预售期中每个最小单位票务资源下的全部用户订单信息的票务使用人列表;
1.3、分别对上述票务使用人列表中每一条记录都生成一定范围内、大小不同的随机数(概率相等,生成一个或多个),并按随机数由小到大顺序添加到每个最小单位票务资源相应的票务使用人排队列表;
1.4、将每个最小单位票务资源优先分配给相应的上述票务使用人排队列表中顺序优先且符合用户订票条件的票务使用人(自动跳过不符合用户订票条件的票务使用人;票务使用人分配到票务后,自动删除此票务使用人关联所属的用户订单下的相关最小单位票务资源的票务使用人排队列表中此票务使用人记录,即系统自动删除已分配到票务的当前票务使用人排队列表中的票务使用人记录,此票务使用人非关联所属的其它订单不受影响);
1.5、上述票务使用人排队列表中未分配到票务的,按照排队顺序和用户订票条件等待分配票务。
2、票务销售期:
2.1、同1.1;
2.2、将用户订单信息中的票务使用人按照订单时间由早到晚追加到相应最小单位票务资源下的上述票务使用人排队列表(进一步的,如果与其它用户订单时间相等,则再生成随机数比较大小);
2.3、同1.4;
2.4、同1.5。
进一步的,如果订票条件为“全部同时成交”或等效条件,则同一最小单位票务资源的票务使用人排队列表中的其他票务使用人与同一订单中队列最后一个票务使用人在一起连续排队,且排队顺序最前时且符合订票条件的余票数>=票务使用人数时同时成交。
进一步的,当订票条件为“允许部分成交”,且某个订单中任意一个优选或备选的票务需求方案中全部票务使用人分配到票务时,系统删除当前订单中所有票务需求方案相关的票务使用人排队列表中的票务使用人记录,并对其订单中成交部分票务使用人的票务需求方案进行退票处理。
上文所述第一至第四技术方案中,将总票源分拆成多个单位票源(或最小单位票务资源)的有益效果是减少数据库记录操作并发数和便于分布式数据存储及计算,提高系统整体性能、扩展能力。
附图说明了本发明的优选实施例,用于对本发明的技术精神进行进一步理解。因此,本发明并非仅限于附图。
图1为本发明的票务订票方法的第一或第四技术方案的第一实施例的流程示意图。
图2为本发明的票务订票方法的第一或第四技术方案的第一实施例的票务资源订单信息的示例图。
图3为本发明的票务订票方法的第一或第四技术方案的第一实施例的最小单位票务资源下的票务使用人列表的示例图。
图4为本发明的票务订票方法的第一或第四技术方案的第一实施例的最小单位票务资源下的票务使用人排队列表的示例图。
图5为本发明的票务订票方法的第二技术方案的第二实施例的流程示意图。
图6为本发明的票务订票方法的第二技术方案的第二实施例的票务资源订单信息的示例图。
图7为本发明的票务订票方法的第二技术方案的第二实施例的单位票源的排队列表的示例图。
图8为本发明的票务订票方法的第三技术方案的第三实施例的流程示意图。
图9为本发明的票务订票方法的第三技术方案的第三实施例的单位票源的排队列表的示例图。
下面参照说明书附图对本发明的票务订票方法给出优选的实施例。
实施例1:
假如,“2018年08月01日始发的车次T136”票务资源的票务预售期为2018年6月25日至2018年6月30日,票务销售期为2018年7月1日至2018年07月31日。
如图1所示,该实施例的票务订票方法包括以下步骤:
1、票务预售期:
1.1、用户根据个人需求,设定订票条件,预订一个或多个最小单位票务资源并生成一个订单[101],例如,图2中订单编号从D001至D008为票务预售期的火车票务资源订单信息,其中,图中仅列出部分订票条件,上述最小单位票务资源是指“2018年08月01日始发的车次T136”票务资源中某一种坐席类型的票务资源,如硬卧;
1.2、票务预售期结束后,分别获取票务预售期中每个最小单位票务资源下的全部用户订单信息的票务使用人列表[102],例如,图3中序号从L001至L007列为票务预售期的票务使用人列表;
1.3、分别对上述票务使用人列表中每一条记录都生成一定范围内、大小不同的随机数(概率相等,生成一个或多个),并按随机数由小到大顺序添加到每个最小单位票务资源相应的票务使用人排队列表[103],例如,图3中序号从L001至L007的每一条记录都生成一个相同范围内的随机数,并按随机数由小到大顺序添加到图4中排队顺序从1至7的票务预售期的票务使用人排队列表;
1.4、将每个最小单位票务资源优先分配给相应上述票务使用人排队列表顺序优先且符合用户订票条件的票务使用人(自动跳过不符合用户订票条件的票务使用人;票务使用人分配到票务后,自动删除此票务使用人关联所属的用户订单下的相关最小单位票务资源的票务使用人排队列表中此票务使用人记录)[104],例如,图4中,存在未分配硬卧票务资源情况时(票数>=1张),“王五”排队顺序最优先,但“必须同一坐席类型,必须全部成交”订票条件不符合,所以必须与同一订单的“李四”一起排队等待、且排队顺序最优先时票数>=2张时才能同时成交,如果其先分配到硬卧票务资源,则自动删除所属订单D006相关软卧、硬卧票务资源的票务使用人排队列表的“王五”、“李四”记录,订单D005不受影响;
1.5、票务使用人排队列表中未分配到票务的,按照排队顺序和用户订票条件等待分配票务[105] ,例如,图4中按照排队顺序和用户订票条件等待分配硬卧票务资源。
2、票务销售期:
2.1、同1.1[201],例如,图2中订单编号从D009至D011为票务销售期的火车票务资源订单信息;
2.2、将用户订单信息中的票务使用人按照订单时间由早到晚追加到相应最小单位票务资源下的上述票务使用人排队列表(如果与其它用户订单时间相等,则再生成随机数比较大小)[202],例如,图3中序号从L008至L010的“票务使用人”列为票务销售期的票务使用人列表,并先按下单时间由早到晚、再按随机数由小到大顺序追加到图4中排队顺序7之后的票务使用人排队列表(排队顺序8至10的记录);
2.3、同1.4[203],例如,图4中,按照排队顺序和用户订票条件等待分配或正在分配硬卧票务资源;
2.4、同1.5[204],例如,图4中,按照排队顺序和用户订票条件等待分配硬卧票务资源。
实施例2:
假如,“2018年08月01日始发的车次T136”票务资源的预售期为2018年6月25日至2018年6月30日,销售期为2018年7月1日至2018年07月31日。
如图5所示,该实施例的票务订票方法,包括以下步骤:
预售期:
i、用户选择一个或多个单位票源,设定订票条件,提交后生成一个订单[11],例如,图6中订单编号从D001至D008为预售期的火车票务的订单信息,其中,图中仅列出部分订票条件,出发站至到达站后面的数字为站序,本实施例中单位票源指将火车票按照“某时间始发的某车次某席别”特征类型分拆成多个单位票源,即本实施例中“2018年08月01日始发的车次T136”票务资源中某一种坐席类型的票务资源,如硬卧(另外,根据票务制度需要,系统可以强制设定用户订单的订票条件为“全部同时成交”选项,不允许用户选择“允许部分成交”选项);
j1、预售期生成的订单按随机数由小到大顺序添加到相应单位票源的排队列表,每个订单相应随机数大小生成的概率相等、大小不同(如果新随机数与现有随机数重复,则重新生成,或随机数重复的订单均生成第二随机数比较大小,大小可比较为止)[12],例如,图6中订单编号从D001至D008且预订硬卧的订单(订单编号D002、D004、D006、D007)均生成一个相同范围内的随机数,并按随机数由小到大顺序添加到图7中排队顺序从1至4的“2018年08月01日始发的车次T136 硬卧”单位票源的排队列表;
k、将单位票源优先分配给排队列表中排队顺序在前且符合订票条件的订单,自动跳过不符合订票条件的订单(保留其排队顺序位置等待下一次分配机会)[13],例如,图7中,当存在1张“2018年08月01日始发的车次T136 硬卧”单位票源的“宁波1至昆山9”的余票时,排队顺序在前的订单D006、D004、D007不符合订票条件,所以分配给符合订票条件的订单D002;当存在2张“2018年08月01日始发的车次T136 硬卧”单位票源的“宁波1至苏州10”的余票时,优先分配给排队顺序在前且符合订票条件的订单D006;当存在2张“2018年08月01日始发的车次T136 硬卧”单位票源的“宁波1至海宁6”的余票时,排队顺序在前的订单D006不符合订票条件,所以分配给符合订票条件的订单D004;当存在1张“2018年08月01日始发的车次T136 硬卧”单位票源的“海宁6至济南18”的余票时,排队顺序在前的订单D006、D004不符合订票条件,所以分配给符合订票条件的订单D007中的第一个票务使用人(即赵六)。图7中,排队列表中已分配到票的订单队列项自动删除,未分配到票的订单队列项保留其排队顺序位置等待分配机会。
销售期:
i、 同预售期的步骤i[21],例如,图6中订单编号从D009至D011为销售期的火车票务的订单信息;
j2、销售期生成的订单按订单生成时间顺序追加到相应单位票源的排队列表[22],例如,图6中订单编号从D009至D011且预订硬卧的订单,先按下单时间由早到晚、再按随机数由小到大顺序追加到图7中排队顺序4之后的“2018年08月01日始发的车次T136 硬卧”单位票源的排队列表(排队顺序从5至7的记录);
k、同预售期的步骤k[23],例如,图7中,当存在1张“2018年08月01日始发的车次T136 硬卧”单位票源的“宁波1至苏州10”的余票时,优先分配给排队顺序在前且符合订票条件的订单D009;当存在2张“2018年08月01日始发的车次T136 硬卧”单位票源的“宁波1至苏州10”的余票时,优先分配给排队顺序在前且符合订票条件的订单D009、D011;当存在1张“2018年08月01日始发的车次T136 硬卧”单位票源的“宁波1至海宁6”的余票时,排队顺序在前的订单D009、D011不符合订票条件,所以分配给符合订票条件的订单D010。图7中,排队列表中已分配到票的订单队列项自动删除,未分配到票的订单队列项保留其排队顺序位置等待分配机会。
进一步的,当订票条件为“允许部分成交”,且某个订单中任意一个优选或备选的票务需求方案中全部票务使用人分配到票务时,系统删除当前订单中所有票务需求方案相关的票务使用人排队列表中的票务使用人记录,并对其订单中成交部分票务使用人的票务需求方案进行退票处理。例如,图6中,订单D007的优先票务需求方案为硬卧,备选票务需求方案为软卧,当订单D007中赵六分配到硬卧和赵六、钱七均分配到软卧时,系统自动删除与订单D007相关的单位票源的排队列表中的订单队列项,并对赵六分配到的硬卧票进行退票处理,所以,订单D007中的赵六、钱七最终分配到“2018年08月01日始发的车次T136 软卧”单位票源的“昆山9至泰山17”的2张软卧票。
实施例3:
假如,“2018年08月01日始发的车次T136”票务资源的预售期为2018年6月25日至2018年6月30日,销售期为2018年7月1日至2018年07月31日。
如图8所示,该实施例的票务订票方法,包括以下步骤:
预售期:
x、用户选择一个或多个单位票源,设定订票条件,提交后生成一个订单[31],例如,图6中订单编号从D001至D008为预售期的火车票务的订单信息,其中,图中仅列出部分订票条件,出发站至到达站后面的数字为站序,本实施例中单位票源指将火车票按照“某时间始发的某车次某席别”特征类型分拆成多个单位票源,即本实施例中“2018年08月01日始发的车次T136”票务资源中某一种坐席类型的票务资源,如硬卧(另外,根据票务制度需要,系统可以强制设定用户订单的订票条件为“全部同时成交”选项,不允许用户选择“允许部分成交”选项);
y1、预售期生成的订单中的票务需求方案按随机数由小到大顺序添加到相应单位票源的排队列表,每个票务需求方案相应随机数大小生成的概率相等、大小不同(如果新随机数与现有随机数重复,则重新生成,或随机数重复的票务需求方案均生成第二随机数比较大小,大小可比较为止)[32],例如,图6中订单编号从D001至D008且预订硬卧的订单(订单编号D002、D004、D006、D007)中预订硬卧的票务需求方案均生成一个相同范围内的随机数,并按随机数由小到大顺序添加到图9中排队顺序从1至4的“2018年08月01日始发的车次T136 硬卧”单位票源的排队列表,上述票务需求方案在本实施例中用“订单编号_席别”表示;
z、将单位票源优先分配给排队列表中排队顺序在前且符合订票条件的票务需求方案,自动跳过不符合订票条件的票务需求方案(保留其排队顺序位置等待下一次分配机会)[33],例如,图9中,当存在1张“2018年08月01日始发的车次T136 硬卧”单位票源的“宁波1至昆山9”的余票时,排队顺序在前的票务需求方案“D006_硬卧”、“D004_硬卧”、“D007_硬卧”不符合订票条件,所以分配给符合订票条件的票务需求方案“D002_硬卧”;当存在2张“2018年08月01日始发的车次T136 硬卧”单位票源的“宁波1至苏州10”的余票时,优先分配给排队顺序在前且符合订票条件的票务需求方案“D006_硬卧”;当存在2张“2018年08月01日始发的车次T136 硬卧”单位票源的“宁波1至海宁6”的余票时,排队顺序在前的票务需求方案“D006_硬卧”不符合订票条件,所以分配给符合订票条件的票务需求方案“D004_硬卧”;当存在1张“2018年08月01日始发的车次T136 硬卧”单位票源的“海宁6至济南18”的余票时,排队顺序在前的票务需求方案“D006_硬卧”、“D004_硬卧”不符合订票条件,所以分配给符合订票条件的票务需求方案“D007_硬卧”中的第一个票务使用人(即赵六)。图9中,排队列表中已分配到票的票务需求方案队列项自动删除,未分配到票的票务需求方案队列项保留其排队顺序位置等待分配机会。
销售期:
x、 同预售期的步骤x[41],例如,图6中订单编号从D009至D011为销售期的火车票务的订单信息;
y2、销售期生成的订单中的票务需求方案按订单生成时间顺序追加到相应单位票源的排队列表[42],例如,图6中订单编号从D009至D011且预订硬卧的订单中预订硬卧的票务需求方案,先按下单时间由早到晚、再按随机数由小到大顺序追加到图9中排队顺序4之后的“2018年08月01日始发的车次T136 硬卧”单位票源的排队列表(排队顺序从5至7的记录);
z、同预售期的步骤z[43],例如,图7中,当存在1张“2018年08月01日始发的车次T136 硬卧”单位票源的“宁波1至苏州10”的余票时,优先分配给排队顺序在前且符合订票条件的票务需求方案“D009_硬卧”;当存在2张“2018年08月01日始发的车次T136 硬卧”单位票源的“宁波1至苏州10”的余票时,优先分配给排队顺序在前且符合订票条件的票务需求方案“D009_硬卧”、“D011_硬卧”;当存在1张“2018年08月01日始发的车次T136 硬卧”单位票源的“宁波1至海宁6”的余票时,排队顺序在前的票务需求方案“D009_硬卧”、“D011_硬卧”不符合订票条件,所以分配给符合订票条件的票务需求方案“D010_硬卧”。图9中,排队列表中已分配到票的票务需求方案队列项自动删除,未分配到票的票务需求方案队列项保留其排队顺序位置等待分配机会。
进一步的,当订票条件为“允许部分成交”,且某个订单中任意一个优选或备选的票务需求方案中全部票务使用人分配到票务时,系统删除当前订单中所有票务需求方案相关的票务使用人排队列表中的票务使用人记录,并对其订单中成交部分票务使用人的票务需求方案进行退票处理。例如,图6中,订单D007的优先票务需求方案为硬卧,备选票务需求方案为软卧,当订单D007中赵六分配到硬卧和赵六、钱七均分配到软卧时,系统自动删除与订单D007相关的单位票源的排队列表中的票务需求方案队列项,并对赵六分配到的硬卧票进行退票处理,所以,订单D007中的赵六、钱七最终分配到“2018年08月01日始发的车次T136 软卧”单位票源的“昆山9至泰山17”的2张软卧票。
以上为本文的技术方案。
1、一种票务订票方法及系统,其特征在于:包括以下步骤:
c、将单位票源优先分配给排队列表中排队顺序在前且符合订票条件的票务使用人,自动跳过不符合订票条件的票务使用人(保留其排队顺序位置等待下一次分配机会)。
2、根据权利要求1所述的一种票务订票方法及系统,其特征在于:预售期或结束后,还包括步骤c前的以下步骤:
a、用户选择一个或多个单位票源,设定订票条件,提交后生成一个订单;
b1、预售期生成的订单中的票务使用人按随机数由小到大顺序添加到相应单位票源的排队列表,每个票务使用人相应随机数大小生成的概率相等、大小不同(如果新随机数与现有随机数重复,则重新生成,或随机数重复的票务使用人均生成第二随机数比较大小,大小可比较为止)。
3、根据权利要求1所述的一种票务订票方法及系统,其特征在于:销售期,还包括步骤c前的以下步骤:
a、用户选择一个或多个单位票源,设定订票条件,提交后生成一个订单;
b2、销售期生成的订单中的票务使用人按订单生成时间顺序追加到相应单位票源的排队列表。
4、根据权利要求2所述的一种票务订票方法及系统,其特征在于:步骤b1中,预售期生成的订单中的同一订单中多个票务使用人按随机数取平均值由小到大顺序在一起连续排队。
5、根据权利要求3所述的一种票务订票方法及系统,其特征在于:步骤b2中,销售期生成的订单中的同一订单中多个票务使用人按订单生成时间顺序在一起连续排队。
6、根据权利要求1或2或3所述的一种票务订票方法及系统,其特征在于:系统预先设计的例外情况规则除外,同一单位票源同一票务使用人仅能订购一张票。
7、根据权利要求1或2或3所述的一种票务订票方法及系统,其特征在于:所述单位票源为火车票场景中将火车票按照“某时间始发的某车次某席别”特征类型分拆成多个单位票源。
8、一种票务订票方法及系统,其特征在于:包括以下步骤:
k、将单位票源优先分配给排队列表中排队顺序在前且符合订票条件的订单,自动跳过不符合订票条件的订单(保留其排队顺序位置等待下一次分配机会)[13] [23]。
9、根据权利要求8所述的一种票务订票方法及系统,其特征在于:预售期或结束后,还包括步骤k前的以下步骤:
i、用户选择一个或多个单位票源,设定订票条件,提交后生成一个订单[11];
j1、预售期生成的订单按随机数由小到大顺序添加到相应单位票源的排队列表,每个订单相应随机数大小生成的概率相等、大小不同(如果新随机数与现有随机数重复,则重新生成,或随机数重复的订单均生成第二随机数比较大小,大小可比较为止)[12]。
10、根据权利要求8所述的一种票务订票方法及系统,,其特征在于:销售期,还包括步骤k前的以下步骤:
i、用户选择一个或多个单位票源,设定订票条件,提交后生成一个订单[21];
j2、销售期生成的订单按订单生成时间顺序追加到相应单位票源的排队列表[22]。
11、根据权利要求9或10所述的一种票务订票方法及系统,其特征在于:系统统计指定单位票源的排队列表中本账户订单前面与其订票条件相交的总人数并反馈显示到用户终端。
12、一种票务订票方法及系统,其特征在于:包括以下步骤:
z、将单位票源优先分配给排队列表中排队顺序在前且符合订票条件的票务需求方案,自动跳过不符合订票条件的票务需求方案(保留其排队顺序位置等待下一次分配机会)[33] [43]。
13、根据权利要求12所述的一种票务订票方法及系统,其特征在于:预售期或结束后,还包括步骤z前的以下步骤:
x、用户选择一个或多个单位票源,设定订票条件,提交后生成一个订单[31];
y1、预售期生成的订单中的票务需求方案按随机数由小到大顺序添加到相应单位票源的排队列表,每个票务需求方案相应随机数大小生成的概率相等、大小不同(如果新随机数与现有随机数重复,则重新生成,或随机数重复的票务需求方案均生成第二随机数比较大小,大小可比较为止)[32]。
14、根据权利要求12所述的一种票务订票方法及系统,其特征在于:销售期,还包括步骤z前的以下步骤:
x、用户选择一个或多个单位票源,设定订票条件,提交后生成一个订单[41];
y2、销售期生成的订单中的票务需求方案按订单生成时间顺序追加到相应单位票源的排队列表[42]。
15、根据权利要求13或14所述的一种票务订票方法及系统,其特征在于:系统统计指定单位票源的排队列表中本账户票务需求方案前面与其订票条件相交的总人数并反馈显示到用户终端。
16、一种票务订票方法及系统,其特征在于:票务预售期,包括以下步骤:
m1、用户设定订票条件,预订一个或多个最小单位票务资源并生成一个订单[101];
m2、票务预售期结束后,分别获取票务预售期中每个最小单位票务资源下的全部用户订单信息的票务使用人列表[102];
m3、分别对上述票务使用人列表中每一条记录都生成一定范围内、大小不同的随机数(概率相等,生成一个或多个),并按随机数由小到大顺序添加到每个最小单位票务资源相应的票务使用人排队列表[103];
m4、将每个最小单位票务资源优先分配给相应的上述票务使用人排队列表中顺序优先且符合用户订票条件的票务使用人(自动跳过不符合用户订票条件的票务使用人)[104];
m5、上述票务使用人排队列表中未分配到票务的,按照排队顺序和用户订票条件等待分配票务[105]。
17、一种票务订票方法及系统,其特征在于:票务销售期,包括以下步骤:
m1、用户设定订票条件,预订一个或多个最小单位票务资源并生成一个订单[201];
n2、将用户订单信息中的票务使用人按照订单时间由早到晚追加到相应最小单位票务资源下的票务使用人排队列表 [202];
m4、将每个最小单位票务资源优先分配给相应的上述票务使用人排队列表中顺序优先且符合用户订票条件的票务使用人(自动跳过不符合用户订票条件的票务使用人)[203];
m5、上述票务使用人排队列表中未分配到票务的,按照排队顺序和用户订票条件等待分配票务[204]。
18、根据权利要求16或17所述的一种票务订票方法及系统,其特征在于:当订票条件为“全部同时成交”时,同一最小单位票务资源的票务使用人排队列表中的其他票务使用人与同一订单中队列最后一个票务使用人在一起连续排队,且排队顺序最前时且符合订票条件的余票数>=票务使用人数时同时成交。
欢迎大家对本文提出缺陷、优化意见和想法,也希望向铁路职务人员学习更多火车票规则及技术,集思广益。