本申請涉及網絡技術領域,特別是涉及一種資源占用的判斷方法和設備。
背景技術:
目前現有的列車席位資源劃分為站點分段預留模式,該模式可基于各站點的客流量統計來進行動態調整列車在各站點預留的席位數量。
在實現本申請的過程中,發明人發現現有技術至少存在如下問題:
分段預留模式總是會存在預留分配不合理,導致某些站點預留過多或者過少的情況發生,同時也是一種滯后的調控方式。
技術實現要素:
本申請提供了一種資源占用的判斷方法,以針對席位資源進行簡單管理和實時計算資源占用,以使席位能夠得到合理分配。該方法包括:
確定當前存在的各資源位對應不同維度的位置的標識,所述維度包括第一維度以及第二維度;
當接收到資源占用請求時,根據所述目標資源位的占用信息判斷所述目標資源位在所述第一維度或所述第二維度連續占用的多個位置當前是否存在標識,所述資源占用請求指示了所述目標資源位以及攜帶所述占用信息;
若存在,拒絕所述資源占用請求;
若不存在,返回資源占用成功響應,并為所述目標資源的待占用位置添加標識。
優選地,所述資源位具體為座位,所述第一維度為站點,所述第二維度為時間區間,確定當前存在的各資源位對應不同維度的位置的標識,具體為:
根據站點的數目和經過站點的先后位置確定出各所述座位在不同站點以及不同時間區間的標識。
優選地,當所述占用信息為所述目標座位的連續站點占用信息時,根據所述目標資源位的占用信息判斷所述目標資源位在所述第一維度或所述第二維度連續占用的多個位置當前是否存在標識,具體為:
根據站點的數目和經過站點的先后位置獲取所述目標座位在不同站點的標識;
將所述目標座位當前對應的站點的標識與所述占用信息所對應的站點的標識進行合并;
根據合并后各站點對應的位置的標識判斷所述多個位置當前是否存在標識。
優選地,當所述占用信息為所述目標座位的連續時間區間占用信息時,所述方法具體為:
根據所述目標座位的時間使用規則獲取所述目標座位在不同時間區間的標識;
將所述目標座位當前所對應的時間區間的標識與所述占用信息所對應的時間區間的標識進行合并;
根據合并后各時間區間對應的位置的標識判斷所述多個位置當前是否存在標識。
相應地,本申請還提供了一種票務訂購方法,其特征在于,所述方法應用于票務訂購系統中的服務器,所述票務訂購系統還包括客戶端,所述方法包括:
服務器根據所接收的票務訂購請求獲取與用戶指定的行程信息對應的車次的站點標識組合,所述行程信息包括起始站點、終點站點以及車次信息,所述站點標識組合是由所述車次對應的各個站點的標識按照站點順序組合而 成,所述站點標識組合中起始站點至終點站點之間的所對應的站點標識為有效狀態;
所述服務器根據所述站點標識組合,以及與所述車次的各個座位的占用信息判斷所述車次是否存在滿足所述票務訂購請求的座位,所述占用信息為座位在對應站點上已被占用的站點標識組合;
如果存在所述座位,所述服務器向所述客戶端發送訂票成功的響應消息,所述響應消息中包括滿足所述票務訂購請求的座位的座位信息;
如果不存在所述座位,所述服務器向所述客戶端發送訂票失敗的響應消息。
優選地,所述票務訂購請求攜帶有所述用戶的行程信息;或,所述票務訂購請求攜帶有所述車次的站點標識組合,所述站點標識組合由所述客戶端根據用戶指定的起始站點、終點站點和為所述車次的各個站點分配的標識位生成的。
優選地,當所述票務訂購請求攜帶有所述用戶的行程信息時,所述服務器根據所接收的票務訂購請求獲取與用戶的行程信息對應車次的站點標識組合,具體為:
所述服務器接收所述票務訂購請求;
所述服務器提取所述票務訂購請求中所述用戶的行程信息;
所述服務器根據所述用戶的行程信息中的用戶指定的起始站點和終點站點在所述各個站點的標識位上進行標識生成對應車次的所述站點標識組合。
優選地,所述服務器根據所述站點標識組合,以及與所述車次的各個座位的占用信息判斷是否存在滿足所述票務訂購請求的座位,具體為:
所述服務器根據所述站點標識組合,以及與所述車次的一個座位的占用信息判斷所述車次上的所述座位是否滿足所述票務訂購請求;
如果不滿足,所述服務器判斷所述車次上是否存在沒有判斷過的座位;
如果存在,所述服務器根據所述站點標識組合,以及與所述車次的下一個座位的占用信息判斷所述車次上的所述下一個座位是否滿足所述票務訂購請求;
其中,所述服務器根據預先設定的座位判斷順序對所述車次上的座位進行判斷的。
優選地,所述服務器根據所述站點標識組合,以及與所述車次的一個座位的占用信息判斷所述車次上的所述座位是否滿足所述票務訂購請求,具體為:
所述服務器根據所述站點標識組合,以及與所述車次的一個座位的占用信息判斷所述站點標識組合和所述座位的占用信息在同一站點上是否都有標識;
如果有,所述車次上不存在滿足所述票務訂購請求的座位;
如果沒有,所述車次上存在滿足所述票務訂購請求的座位。
優選地,在所述服務器向所述客戶端發送訂票成功的響應消息之后,所述方法還包括:
所述服務器將所述站點標識組合和所述車次滿足所述票務訂購請求的座位的占用信息進行合并,更新所述車次滿足所述票務訂購請求的座位的占用信息。
優選地,在服務器根據所接收的票務訂購請求獲取與用戶的行程信息對應車次的站點標識組合之前,所述方法還包括:
所述服務器獲取到車次對應的站點信息;
所述服務器根據站點信息生成與各個座位在對應站點上的標識位;
所述服務器對各個座位在對應站點上的標識位進行初始化,生成各個座位在對應站點上初始化的占用信息。
優選地,所述服務器根據所述車次對應的站點數為用戶行程對應的站點 數設定為若干區間,其中不同的區間對應的站點數不同,并為每個區間確定分配到的票數,在所述服務器根據所述站點標識組合,以及與所述車次的各個座位的占用信息判斷出存在滿足所述票務訂購請求的座位之后,所述方法還包括:
所述服務器確定所述用戶指定的行程信息對應的站點數;
所述服務器判斷所述站點數對應的區間分配到的票數是否有結余;
如果有,所述服務器向所述客戶端發送訂票成功的響應消息;
如果沒有,所述服務器判斷比所述區間對應的站點數少的區間分配到的票數是否有結余;
如果沒有,所述服務器向所述客戶端發送訂票失敗的響應消息。
相應地,本申請還提供了一種票務訂購方法,其特征在于,所述方法應用于票務訂購系統中的客戶端,所述票務訂購系統還包括服務器,所述方法包括:
所述客戶端根據用戶輸入的行程信息生成票務訂購請求,所述行程信息包括所述用戶指定的起始站點、終點站點以及車次信息;
所述客戶端將所述票務訂購請求發送給所述服務器;
所述客戶端接收所述服務器根據所述票務訂購請求返回的響應消息;
其中,所述響應消息是所述服務器根據所接收的票務訂購請求獲取的與用戶的行程信息對應車次的站點標識組合,以及與所述車次的各個座位的占用信息進行判斷生成的,所述各個座位的占用信息為各個座位在對應站點上已被占用的站點標識組合。
優選地,所述票務訂購請求攜帶有所述用戶的行程信息;或,所述票務訂購請求攜帶有所述用戶的行程信息對應車次的站點標識組合,所述站點標識組合由所述客戶端根據用戶指定的起始站點、終點站點和為所述車次的各個站點分配的標識位生成的。
相應地,本申請還提供了一種資源占用的判斷設備,其特征在于,包括:
確定模塊,確定當前存在的各資源位對應不同維度的位置的標識,所述維度包括第一維度以及第二維度;
判斷模塊,當接收到資源占用請求時,根據所述目標資源位的占用信息判斷所述目標資源位在所述第一維度或所述第二維度連續占用的多個位置當前是否存在標識,所述資源占用請求指示了所述目標資源位以及攜帶所述占用信息;
處理模塊,當判斷存在標識時,拒絕所述資源占用請求;
所述處理模塊,當判斷不存在標識時,返回資源占用成功響應,并為所述目標資源的待占用位置添加標識。
本申請還提供了一種服務器,所述服務器應用于包括客戶端以及所述服務器的票務訂購系統中,所述服務器包括:
獲取模塊,根據所接收的票務訂購請求獲取與用戶指定的行程信息對應的車次的站點標識組合,所述行程信息包括起始站點、終點站點以及車次信息,所述站點標識組合是由所述車次對應的各個站點的標識按照站點順序組合而成,所述站點標識組合中起始站點至終點站點之間的所對應的站點標識為有效狀態;
判斷模塊,根據所述站點標識組合,以及與所述車次的各個座位的占用信息判斷所述車次是否存在滿足所述票務訂購請求的座位,所述占用信息為座位在對應站點上已被占用的站點標識組合;
響應模塊,當存在所述座位時,所述響應模塊向所述客戶端發送訂票成功的響應消息,所述響應消息中包括滿足所述票務訂購請求的座位的座位信息;
響應模塊,當不存在所述座位時,所述響應模塊向所述客戶端發送訂票失敗的響應消息。
本申請還提供了一種客戶端,所述客戶端應用于包括所述客戶端以及服務器的票務訂購系統中,所述客戶端包括:
生成模塊,根據用戶輸入的行程信息生成票務訂購請求,所述行程信息包括所述用戶指定的起始站點、終點站點以及車次信息;
發送模塊,將所述票務訂購請求發送給所述服務器;
接收模塊,接收所述服務器根據所述票務訂購請求返回的響應消息;
其中,所述響應消息是所述接收模塊根據所接收的票務訂購請求獲取的與用戶的行程信息對應車次的站點標識組合,以及與所述車次的各個座位的占用信息進行判斷生成的,所述各個座位的占用信息為各個座位在對應站點上已被占用的站點標識組合。
由此可見,通過應用本申請的技術方案,預先確定當前存在的各資源位對應不同維度的位置的標識,后續當接收到資源占用請求時,可根據目標資源位的占用信息判斷目標資源位在第一維度或第二維度連續占用的多個位置當前是否存在標識,并在存在時拒絕資源占用請求,以及在不存在時返回資源占用成功響應,并為目標資源的待占用位置添加標識。從而能夠針對現有的資源位進行靈活分配,在保障用戶體驗的前提下減少了資源的消耗。
附圖說明
為了更清楚地說明本申請或現有技術中的技術方案,下面將對本申請或現有技術描述中所需要使用的附圖作簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本申請實施例中的一種資源占用的判斷方法流程圖;
圖2為本申請實施例中的一種票務訂購方法流程圖;
圖3為本申請實施例中另一種票務訂購方法流程圖;
圖4為本申請實施例中的一種資源占用判斷設備的結構示意圖;
圖5為本申請實施例中的一種服務器的結構示意圖;
圖6為本申請實施例中的一種客戶端的結構示意圖。
具體實施方式
下面將結合本申請中的附圖,對本申請中的技術方案進行清楚、完整的描述,顯然,所描述的實施例是本申請的一部分實施例,而不是全部的實施例。基于本申請中的實施例,本領域普通技術人員獲得的其他實施例,都屬于本申請保護的范圍。
有鑒于現有技術中針對資源位的占用無法進行實時以及靈活分配的問題,本申請提出了一種資源占用的判斷方法,如圖1所示,該方法包括以下步驟:
步驟101,確定當前存在的各資源位對應不同維度的位置的標識,所述維度包括第一維度以及第二維度。
由于本申請旨在針對列車或其他類似列車的席位進行實時占用分配,因此在進行預留判斷前需要基于其中的各個席位的已占用情況生成概況信息。為便于闡述,本申請將類似席位的概念均統一稱為資源位,該資源位同時具有兩個不同的維度,在本申請后續的過程中可以針對該兩個維度中的任一維度進行占用判斷。當座位承載與車輛上時,如:火車,所述座位會隨著火車按照特定的路線按照站點的先后順序經過特定數目的站點,即所述座位會按照站點的先后順序經過特定數目的站點,位置用于添加標識,用于表示所述座位在相應的站點上是否被占用。
因此,在本申請優選的實施例中,所述資源位具體為座位,所述第一維度為站點,所述第二維度為時間區間,在該情況下本步驟將根據站點的數目和經過站點的先后位置確定出各所述座位在不同站點以及不同時間區間的標 識。
需要說明的是,如果某車輛是根據時間來進行使用時,承載與車輛上的座位也會根據時間來進行使用,通常這樣的車輛會有相應的時間規定,如:駕校中的練習車輛,練習車輛一般規定是整點包車,例如:上午8點-9點,9點-10這樣的規定,練車學員可以包8點-9點的車,也可以包8點到10點的車,練習車輛根據練車學員的包車時間區間來為不同的學員分配使用練習車輛的使用時間區間,即作為根據練車學員的包車時間區間來為不同的學員分配使用所述座位的使用時間區間。
步驟102,當接收到資源占用請求時,根據所述目標資源位的占用信息判斷所述目標資源位在所述第一維度或所述第二維度連續占用的多個位置當前是否存在標識。
需要說明的是,該資源占用請求指示了目標資源位以及攜帶所述占用信息,因此在具體的應用場景中,當用戶在火車的某個座位上選擇好其乘車所要經過的站點后,用戶將會發送類型資源占用請求的信息,該信息中包括了用戶在目標座位上選擇的其乘車所要經過的站點。基于該信息,而本申請實施例通過以下步驟進行是否可占用的判斷:
步驟a)根據站點的數目和經過站點的先后位置獲取所述目標座位在不同站點的標識。
步驟b)將所述目標座位當前對應的站點的標識與所述占用信息所對應的站點的標識進行合并。
在本申請的具體實施例中,可為每個已購到車票的乘車用戶在目標座位所要經過的站點的標識位上分配標識,根據乘車用戶的購票時間,設備終端以已購到票的用戶在所述目標座位所要經過的站點的標識位上的標識為基準,來判斷申請購票的用戶在所述目標座位上選擇所要經過的站點是否與之前已購到票的用戶在所述目標座位所經過的站點出現了重疊標識的現象,進 一步的,申請購票的用戶在所述目標座位上選擇所要經過的站點所對應的標識位上已存在標識,例如:已購票的用戶在目標座位上選擇的站點為A、B,正在申請購票用戶在目標座位上選擇的站點中是否出現了站點A和/或站點B,如果出現了,表示相應站點的座位已被占用,正在申請購票的用戶選擇座位失敗,并且不對正在申請購票的用戶在目標座位上選擇的站點所對應的標識位上添加標識,如果沒出現,表示相應站點的座位沒被占用,正在申請購票的用戶選擇座位成功,并且對正在申請購票的用戶在目標座位上選擇的站點所對應的標識位上添加標識。
步驟c)根據合并后各站點對應的位置的標識判斷所述多個位置當前是否存在標識。
具體地,該步驟可為一個座位在每個站點分配一個標識位,隨后根據標識上是否添加標識用以表示座位在相應站點是否已被用戶使用,即當標識位上有標識時表示座位在相應的站點上已被用戶使用,當標識位上沒有標識時表示座位在相應的站點上沒有被用戶使用。舉例來說,在用戶在購票后就選擇了火車中的某個座位表示所述座位被占用,以及所要經過的站點,即所述被占用的座位要經過的站點,所述設備終端對被占用的所述座位進行標識以使想要在所述被占用的座位要經過的站點上使用所述座位的其他用戶不能使用該座位,進一步的,如果某個用戶想要在已被占用的座位要經過的站點上購票是不能購票成功的。
上述內容以維度為多個連續的站點為例進行說明,然而在實際的應用場景中,不僅僅是某個席位在多個站點占用的情況下進行資源占用的判斷,也有可能是某個席位在某個情景下在多個連續的時間段內被占用,該情況下占用信息則是目標座位的連續時間區間占用信息,相應的判斷過程如下:
步驟a)根據所述目標座位的時間使用規則獲取所述目標座位在不同時間區間的標識。
以用戶使用車輛為例進行說明,當用戶在某個聯系車輛的座位上選擇好練車時間后,該用戶可設置座位選擇請求,請求信息中包括用戶在目標練習車輛的座位上選擇的其練車時間區間,用戶在目標練習車輛的座位上選擇的練車時間區間與當前目標練習車輛的座位上選擇練車時間區間所對應的標識位上存在標識的時間區間進行對比,后續判斷是否存在用戶在目標練習車輛的座位上選擇的時間區間與目標練習車輛的座位所對應的站點的標識位上已存在標識的時間區間有重合的部分。
步驟b)將所述目標座位當前所對應的時間區間的標識與所述占用信息所對應的時間區間的標識進行合并。
在該具體實施例的上一步驟中,為已申請成功的練車學員選擇的包車時間區間的座位的標識位上分配標識,根據練車學員進行包車申請的時間順序,可以已申請成功的的練車學員在目標練習車輛的座位上選擇的包車時間區間的標識位上的標識為基準,來判斷正在申請包車的練車學員在目標練習車輛的座位上所要選擇的包車時間區間是否與已申請成功的的練車學員在所述目標練習車輛的座位上的包車時間區間出現了重疊現象,例如:已申請成功的的練車學員在所述目標車輛的座位上所要包車的時間區間為上午8點-9點和9點-10點,正在申請包車的練車學員在所述目標車輛的座位上所要包車的時間區間是否出現了上午8點-9點和/或9點-10點,如果出現了,表示相應時間區間上的座位已被占用,正在申請包車的練車學員選擇座位失敗,如果沒出現,表示相應時間區間上的座位沒被占用,正在申請包車的練車學員選擇座位成功。
步驟c)根據合并后各時間區間對應的位置的標識判斷所述多個位置當前是否存在標識。
由于該具體實施例為一個座位在不同的時間區間分配一個標識位,因此可根據所述標識上是否添加標識用以標識座位在相應的時間區間內是否已被 用戶使用,即當標識位上有標識時表示座位在相應的時間區間上已被用戶使用,當標識位上沒有標識時表示座位在相應的時間區間上沒有被用戶使用。
舉例來說,練車學員在選擇的包車時間區間后表示在相應的時間區間內該座位是被占用的,所述設備終端對被占用的所述座位進行標識以使想要在包車時間區間內使用所述座位的其他練車學員不能使用該座位,進一步的,如果某個練車學員想要在已被占用的時間區間內包車是不能包車成功的。
S103,若存在,拒絕所述資源占用請求。
S104,若不存在,返回資源占用成功響應,并為所述目標資源的待占用位置添加標識
基于S103中的兩種不同情況,在本申請的具體實施例中不同的處理方式如下:
(1)占用信息為所述目標座位的連續站點占用信息
在該情況下,假設火車要經過6個站點,分別為站點1、2、3、4、5、6,當前用戶已選擇的在目標座位上選擇的站點為1、2、3,如果其他用戶選擇該目標座位上選擇的站點為5、6,當前用戶在所述目標座位已選擇的所對應的站點與其他用戶選擇的座位所對應的站點沒有重疊,表示所述其他用戶選擇座位成功,那么所述設備終端將站點1、2、3、5、6上所述座位的標識位上的標識進行合并,即當前該座位在站點1、2、3、5、6上所述座位的標識位上有標識,表示該座位在站點1、2、3、5、6上所述座位已被占用,以后其他用戶則不能選擇在站點1、2、3、5、6上使用所述座位。
(2)占用信息為所述目標座位的連續時間區間占用信息
在該情況下,假設可以進行包車申請的時間區間為上午8點-12點,以1小時為包車單位時間,當前已進行包車申請的練車學員所要包車的時間區間為上午8點-9點和9點-10點,如果其他進行包車申請的練車學員選擇的時間區間為上午10點-11點,當前練車學員已選擇的座位所對應的時間區間與其 他練車學員選擇的座位所對應的時間區間沒有充電,表示所述后進行包車申請的練車學員選擇座位成功,那么所述設備終端在上午8點-9點、9點-10點、10點-11點上所述座位的標識位上的標識進行合并,即當前所述座位在時間區間8點-9點、9點-10點、10點-11點上所述座位的標識位上有標識,表示所述座位在時間區間8點-9點、9點-10點、10點-11點上所述座位已被占用,以后其他進行包車申請的練車學員則不能再時間區間8點-9點、9點-10點、10點-11點上使用所述座位。
在本申請的上述方案中,預先確定當前存在的各資源位對應不同維度的位置的標識,后續當接收到資源占用請求時,可根據目標資源位的占用信息判斷目標資源位在第一維度或第二維度連續占用的多個位置當前是否存在標識,并在存在時拒絕資源占用請求,以及在不存在時返回資源占用成功響應,并為目標資源的待占用位置添加標識,從而可以對席位資源進行簡單管理和實時計算資源占用,以使席位能夠得到合理分配,避免出現座位浪費和資源分配不合理的現象。
為了進一步闡述本申請的技術思想,現結合以下兩種具體的應用場景,對本申請的技術方案進行說明:
(1)占用信息為所述目標座位的連續站點占用信息
當前一條線路上有16個站點,分別為站點1-16,火車的1號座位在站點1-16上的標識位用二進制來進行標識,標識0表示沒有進行標識,標識1表示進行了標識,即設備終端為1號座位在16個站點上初始化了一個16位的二進制標識位:0000000000000000,并且,所述1號座位初始默認的二進制標識位上的標識為:0000000000000000。
用戶1先在1號座位上購買的車票,其選擇的站點為:站點3到站點7,設備終端在二進制的標識位上進行標識,得到的二進制為:0011111000000000,即當前所述座位在站點3到站點7的標識位上有標識,如果用戶2預在站點7 到站點10占用1號座位,所述設備終端將當前所述座位已進行標識的標識位上的標識根據其他用戶(用戶2)在所述座位上選擇的站點將其他用戶(用戶2)選擇站點所對應的標識位之外的其他標識位進行去標識操作,即:將當前所述座位在已被占用的站點上所對應二進制:0011111000000000的第7位到第10位之外的其他標識位進行去標識操作,即置零操作,得到二進制:0000001000000000,所述設備終端只需要判斷得到二進制的數值是否為0,如果為0,則表示用戶2在1號座位上選擇的站點在當前1號座位已被占用的站點的標識位上沒有標識,用戶1和用戶2在1號座位上選擇的站點沒有重疊的,用戶2的購票有效,如果不為0,表示用戶2在1號座位上選擇的站點在當前1號座位已被占用的站點的標識位上有標識,用戶1和用戶2在1號座位上選擇的站點有重疊的,用戶2的購票無效,得到的二進制:0000001000000000的數值不為0,用戶2在1號座位上選擇站點7-站點10的購票無效。
如果用戶2預在1號座位上購買的車票,其選擇的站點為:站點9-站點14,所述設備終端將用戶1在1號座位選擇站點的標識位上的標識所對應的二進制:0011111000000000的第9位-第14位之外的其他位進行置零操作,得到二進制:0000000000000000,所述設備終端判斷二進制:0000000000000000的數值為0,用戶2在1號座位上選擇站點9-站點14的購票有效,用戶2預在1號座位選擇站點9-站點14時,所述設備終端為其分配的二進制為:0000000011111100,所述設備終端將用戶1分配的二進制和用戶2分配的二進制進行合并,即進行邏輯或運算,得到二進制:0011111011111100,表示在站點3-站點7、站點9-站點14的1號座位被占用。用戶3在選擇1號座位上選擇站點時,當前在1號座位上已被用戶占用的站點的標識位上的標識所對應的二進制為:0011111011111100,用戶3在1號座位上選擇的站點所對應的標識位就要與當前在1號座位上已被用戶占用的站點的標識位,即二 進制:0011111011111100比較是否有重疊標識位。
(2)占用信息為所述目標座位的連續時間區間占用信息
當前某駕校有一輛標號為1的練習車,為其分配的工作時間為上午8點-下午5點,練習時間以1小時為單位時間,即所述練習車的工作時間被分為8個時間區間,1號車上的座位在所述8個時間區間上的標識位用二進制來標識,標識0表示沒有進行標識,標識1表示進行了標識,即設備終端為1號車上的座位初始化了一個二進制數值:000000000。
學員1在1號車的座位上申請的包車時間為上午8點到11點,所述設備終端在二進制上進行標識,得到的二進制位:111000000,如果學員2預在1號車的座位上選擇的包車時間為上午10點-12點,所述設備終端將二進制:111000000的第3位-第4位之外的其他為進行置零操作,得到二進制:001000000,得到的二進制的數值不為0,學員2在1號車座位上選擇的包車時間無效。
如果學員2在1號車的座位上選擇的包車時間為下午1點-3點,所述設備終端將二進制:111000000第6位和第7位之外的其他位進行置零操作,得到二進制:000000000,所述設備終端判斷二進制:000000000的數值為0,學員2在1號車的座位上選擇下午1點-3點為包車時間時有效的,學員2在1號車的座位上選擇包車的時間區間為下午1點-3點,所述設備終端為學員1分配的二進制為:000001100,所述設備終端將學員1分配的二進制和學員2分配的二進制進行合并,即進行邏輯或運算,得到二進制:111001100,表示在上午8-11點和下午1點-3點1號車的座位已被占用。學員3在1號車上選擇包車時間區間時就要與二進制為:111001100進行比較。
相應地,本申請還提出了一種票務訂購方法,該方法應用于票務訂購系統中的服務器,所述票務訂購系統還包括客戶端,如圖2所示,該方法包括以下步驟:
S201,服務器根據所接收的票務訂購請求獲取與用戶指定的行程信息對應的車次的站點標識組合,所述行程信息包括起始站點、終點站點以及車次信息,所述站點標識組合是由所述車次對應的各個站點的標識按照站點順序組合而成,所述站點標識組合中起始站點至終點站點之間的所對應的站點標識為有效狀態。
相應地,在所述票務訂購請求攜帶有所述用戶的行程信息;或,所述票務訂購請求攜帶有所述車次的站點標識組合,所述站點標識組合由所述客戶端根據用戶指定的起始站點、終點站點和為所述車次的各個站點分配的標識位生成的。
同時,為了針對當前各個席位的占用情況進行獲取,在步驟之前,所述服務器獲取到車次對應的站點信息;根據站點信息生成與各個座位在對應站點上的標識位;并對各個座位在對應站點上的標識位進行初始化,生成各個座位在對應站點上初始化的占用信息。
在本申請的優選實施例中,當所述票務訂購請求攜帶有所述用戶的行程信息時,服務器通過以下步驟獲取與用戶的行程信息對應車次的站點標識組合:
步驟a)所述服務器接收所述票務訂購請求;
步驟b)所述服務器提取所述票務訂購請求中所述用戶的行程信息;
步驟c)所述服務器根據所述用戶的行程信息中的用戶指定的起始站點和終點站點在所述各個站點的標識位上進行標識生成對應車次的所述站點標識組合。
在另一情況下,當所述票務訂購請求攜帶有所述用戶的行程信息時,,服務器通過以下步驟獲取與用戶的行程信息對應車次的站點標識組合:
步驟a)所述服務器接收所述票務訂購請求;
步驟b)所述服務器提取所述票務訂購請求中所述用戶的行程信息;
步驟c)所述服務器根據所述用戶的行程信息中的用戶指定的起始站點和終點站點在所述各個站點的標識位上進行標識生成對應車次的所述站點標識組合。
S202,所述服務器根據所述站點標識組合,以及與所述車次的各個座位的占用信息判斷所述車次是否存在滿足所述票務訂購請求的座位,所述占用信息為座位在對應站點上已被占用的站點標識組合。
在本申請的優選實施例中,由服務器根據所述站點標識組合,以及與所述車次的一個座位的占用信息判斷所述車次上的所述座位是否滿足所述票務訂購請求;如果不滿足,所述服務器判斷所述車次上是否存在沒有判斷過的座位;如果存在,所述服務器根據所述站點標識組合,以及與所述車次的下一個座位的占用信息判斷所述車次上的所述下一個座位是否滿足所述票務訂購請求,需要說明的是,所述服務器是根據預先設定的座位判斷順序對所述車次上的座位進行判斷的。
具體的,所述服務器根據所述站點標識組合,以及與所述車次的一個座位的占用信息判斷所述站點標識組合和所述座位的占用信息在同一站點上是否都有標識;如果有,所述車次上不存在滿足所述票務訂購請求的座位;如果沒有,所述車次上存在滿足所述票務訂購請求的座位。
此外,為了最大化利用各個座位的資源,所述服務器根據所述車次對應的站點數為用戶行程對應的站點數設定為若干區間,其中不同的區間對應的站點數不同,并為每個區間確定分配到的票數,在所述服務器根據所述站點標識組合,以及與所述車次的各個座位的占用信息判斷出存在滿足所述票務訂購請求的座位之后,所述服務器還將確定所述用戶指定的行程信息對應的站點數;判斷所述站點數對應的區間分配到的票數是否有結余;如果有,所述服務器向所述客戶端發送訂票成功的響應消息;如果沒有,所述服務器判斷比所述區間對應的站點數少的區間分配到的票數是否有結余;如果沒有, 所述服務器向所述客戶端發送訂票失敗的響應消息。
S203,如果存在所述座位,所述服務器向所述客戶端發送訂票成功的響應消息,所述響應消息中包括滿足所述票務訂購請求的座位的座位信息。
為了及時更新各個座位的占用信息,在該步驟之后,所述服務器將所述站點標識組合和所述車次滿足所述票務訂購請求的座位的占用信息進行合并,更新所述車次滿足所述票務訂購請求的座位的占用信息。
S204,如果不存在所述座位,所述服務器向所述客戶端發送訂票失敗的響應消息。
上述步驟從服務器的角度描述了票務訂購系統如何有效地利用各個席位的資源并完成用戶的席位預訂,除此本申請還基于客戶端的角度提出了一種票務訂購方法,如圖3所示,該方法包括以下步驟:
S301,所述客戶端根據用戶輸入的行程信息生成票務訂購請求,所述行程信息包括所述用戶指定的起始站點、終點站點以及車次信息。
在本申請優選的實施例中,所述票務訂購請求攜帶有所述用戶的行程信息;或,所述票務訂購請求攜帶有所述用戶的行程信息對應車次的站點標識組合,所述站點標識組合由所述客戶端根據用戶指定的起始站點、終點站點和為所述車次的各個站點分配的標識位生成的。
S302,所述客戶端將所述票務訂購請求發送給所述服務器。
S303,所述客戶端接收所述服務器根據所述票務訂購請求返回的響應消息。
其中,所述響應消息是所述服務器根據所接收的票務訂購請求獲取的與用戶的行程信息對應車次的站點標識組合,以及與所述車次的各個座位的占用信息進行判斷生成的,所述各個座位的占用信息為各個座位在對應站點上已被占用的站點標識組合。
通過采用上述票務訂購方法,不僅能夠保證快速檢索到是否存在滿足用 戶需求的席位,而且能夠實時并充分利用現有的席位資源。
基于與上述方法同樣的申請構思,本申請還提出了一種資源占用判斷設備,如圖4所述,該設備包括:
確定模塊410,用于確定當前存在的各資源位對應不同維度的位置的標識,所述維度包括第一維度以及第二維度;
判斷模塊420,用于當接收到資源占用請求時,根據所述目標資源位的占用信息判斷所述目標資源位在所述第一維度或所述第二維度連續占用的多個位置當前是否存在標識,所述資源占用請求指示了所述目標資源位以及攜帶所述占用信息;
處理模塊430,用于當判斷存在標識時,拒絕所述資源占用請求;
所述處理模塊430,還用于當判斷不存在標識時,返回資源占用成功響應,并為所述目標資源的待占用位置添加標識。
在具體的應用場景中,所述資源位具體為座位,所述第一維度為站點,所述第二維度為時間區間,所述確定模塊確定當前存在的各資源位對應不同維度的位置的標識,具體為:
所述確定模塊根據站點的數目和經過站點的先后位置確定出各所述座位在不同站點以及不同時間區間的標識。
在具體的應用場景中,當所述占用信息為所述目標座位的連續站點占用信息時,所述判斷模塊還包括:
獲取子模塊,用于根據站點的數目和經過站點的先后位置獲取所述目標座位在不同站點的標識;
合并子模塊,用于將所述目標座位當前對應的站點的標識與所述占用信息所對應的站點的標識進行合并;
判斷子模塊,用于根據合并后各站點對應的位置的標識判斷所述多個位置當前是否存在標識。
在具體的應用場景中,所述占用信息為所述目標座位的連續時間區間占用信息時,所述判斷模塊還包括:
獲取子模塊,用于根據所述目標座位的時間使用規則獲取所述目標座位在不同時間區間的標識;
合并子模塊,用于將所述目標座位當前所對應的時間區間的標識與所述占用信息所對應的時間區間的標識進行合并;
判斷子模塊,用于根據合并后各時間區間對應的位置的標識判斷所述多個位置當前是否存在標識。
相應地,本申請還提出了一種服務器,如圖5所示,所述服務器應用于包括客戶端以及所述服務器的票務訂購系統中,所述服務器包括:
獲取模塊510,用于根據所接收的票務訂購請求獲取與用戶指定的行程信息對應的車次的站點標識組合,所述行程信息包括起始站點、終點站點以及車次信息,所述站點標識組合是由所述車次對應的各個站點的標識按照站點順序組合而成,所述站點標識組合中起始站點至終點站點之間的所對應的站點標識為有效狀態;
判斷模塊520,用于根據所述站點標識組合,以及與所述車次的各個座位的占用信息判斷所述車次是否存在滿足所述票務訂購請求的座位,所述占用信息為座位在對應站點上已被占用的站點標識組合;
響應模塊530,用于當存在所述座位時,所述響應模塊向所述客戶端發送訂票成功的響應消息,所述響應消息中包括滿足所述票務訂購請求的座位的座位信息;
響應模塊530,還用于當不存在所述座位時,所述響應模塊向所述客戶端發送訂票失敗的響應消息。
在具體的應用場景中,,所述票務訂購請求攜帶有所述用戶的行程信息;或,所述票務訂購請求攜帶有所述車次的站點標識組合,所述站點標識組合 由所述客戶端根據用戶指定的起始站點、終點站點和為所述車次的各個站點分配的標識位生成的。
在具體的應用場景中,,當所述票務訂購請求攜帶有所述用戶的行程信息時,所述獲取模塊還包括:
接收模塊,用于接收所述票務訂購請求;
提取模塊,用于提取所述票務訂購請求中所述用戶的行程信息;
標識模塊,用于根據所述用戶的行程信息中的用戶指定的起始站點和終點站點在所述各個站點的標識位上進行標識生成對應車次的所述站點標識組合。
在具體的應用場景中,所述判斷模塊具體用于:
所述判斷模塊根據所述站點標識組合,以及與所述車次的一個座位的占用信息判斷所述車次上的所述座位是否滿足所述票務訂購請求;
如果不滿足,所述判斷模塊判斷所述車次上是否存在沒有判斷過的座位;
如果存在,所述判斷模塊根據所述站點標識組合,以及與所述車次的下一個座位的占用信息判斷所述車次上的所述下一個座位是否滿足所述票務訂購請求;
其中,所述判斷模塊根據預先設定的座位判斷順序對所述車次上的座位進行判斷的。
在具體的應用場景中,所述判斷模塊還用于:
所述判斷模塊根據所述站點標識組合,以及與所述車次的一個座位的占用信息判斷所述站點標識組合和所述座位的占用信息在同一站點上是否都有標識;
如果有,所述車次上不存在滿足所述票務訂購請求的座位;
如果沒有,所述車次上存在滿足所述票務訂購請求的座位。
在具體的應用場景中,在所述響應模塊向所述客戶端發送訂票成功的響 應消息之后,還包括:
合并更新模塊,用于將所述站點標識組合和所述車次滿足所述票務訂購請求的座位的占用信息進行合并,更新所述車次滿足所述票務訂購請求的座位的占用信息。
在具體的應用場景中,所述獲取模塊還包括:
獲取子模塊,用于獲取到車次對應的站點信息;
生成子模塊,用于根據站點信息生成與各個座位在對應站點上的標識位;
初始化模塊,用于對各個座位在對應站點上的標識位進行初始化,生成各個座位在對應站點上初始化的占用信息。
在具體的應用場景中,所述判斷模塊根據所述車次對應的站點數為用戶行程對應的站點數設定為若干區間,其中不同的區間對應的站點數不同,并為每個區間確定分配到的票數,還包括:
確定子模塊,用于確定所述用戶指定的行程信息對應的站點數;
判斷子模塊,用于判斷所述站點數對應的區間分配到的票數是否有結余;
如果有,所述響應子模塊向所述客戶端發送訂票成功的響應消息;
如果沒有,所述判斷子模塊判斷比所述區間對應的站點數少的區間分配到的票數是否有結余;
如果沒有,所述響應子模塊向所述客戶端發送訂票失敗的響應消息。
相應地,本申請還提出了一種客戶端,如圖6所示,所述客戶端應用于包括所述客戶端以及服務器的票務訂購系統中,所述客戶端包括:
生成模塊610,用于根據用戶輸入的行程信息生成票務訂購請求,所述行程信息包括所述用戶指定的起始站點、終點站點以及車次信息;
發送模塊620,用于將所述票務訂購請求發送給所述服務器;
接收模塊630,用于接收所述服務器根據所述票務訂購請求返回的響應消息;
其中,所述響應消息是所述接收模塊根據所接收的票務訂購請求獲取的與用戶的行程信息對應車次的站點標識組合,以及與所述車次的各個座位的占用信息進行判斷生成的,所述各個座位的占用信息為各個座位在對應站點上已被占用的站點標識組合。
在具體的應用場景中,所述票務訂購請求攜帶有所述用戶的行程信息;或,所述票務訂購請求攜帶有所述用戶的行程信息對應車次的站點標識組合,所述站點標識組合由所述客戶端根據用戶指定的起始站點、終點站點和為所述車次的各個站點分配的標識位生成的。
通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到本申請可借助軟件加必需的通用硬件平臺的方式來實現,當然也可以通過硬件,但很多情況下前者是更佳的實施方式。基于這樣的理解,本申請的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺終端設備(可以是手機,個人計算機,服務器,或者網絡設備等)執行本申請各個實施例所述的方法。
以上所述僅是本申請的優選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本申請原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視本申請的保護范圍。
本領域技術人員可以理解實施例中的裝置中的模塊可以按照實施例描述進行分布于實施例的裝置中,也可以進行相應變化位于不同于本實施例的一個或多個裝置中。上述實施例的模塊可以集成于一體,也可以分離部署;可以合并為一個模塊,也可以進一步拆分成多個子模塊。上述本申請實施例序號僅僅為了描述,不代表實施例的優劣。
以上公開的僅為本申請的幾個具體實施例,但是,本申請并非局限于此,任何本領域的技術人員能思之的變化都應落入本申請的保護范圍。