本發(fā)明涉及互聯(lián)網(wǎng)
技術(shù)領(lǐng)域:
:,具體而言,涉及一種在線選座方法及系統(tǒng)。
背景技術(shù):
::目前,影院、音樂廳及體育館等公眾場所都提供在線選座服務(wù)。用戶在去這些公共場所之前可以先通過在線選座系統(tǒng)提前選擇座位。當(dāng)前,相關(guān)技術(shù)提供了一種在線選座方法,包括:終端從服務(wù)器加載靜態(tài)座位數(shù)據(jù)和動態(tài)座位數(shù)據(jù),靜態(tài)座位數(shù)據(jù)為公共場所中包括走廊或柱子等非座位元素在內(nèi)的整體座位分布數(shù)據(jù),動態(tài)座位數(shù)據(jù)為當(dāng)前公共場所中不能銷售的座位數(shù)據(jù)。終端根據(jù)靜態(tài)座位數(shù)據(jù)中的全部座位,按順序填充一個(gè)矩陣空間,并用特殊的占位元素標(biāo)注走廊或柱子等非座位元素,得到一個(gè)座位圖。然后根據(jù)動態(tài)座位數(shù)據(jù),在座位圖上標(biāo)注不能銷售的座位,以合并靜態(tài)座位數(shù)據(jù)與動態(tài)座位數(shù)據(jù),得到當(dāng)前公共場所的實(shí)時(shí)座位圖。終端顯示該實(shí)時(shí)座位圖,以使用戶從該實(shí)時(shí)座位圖中選擇座位。但上述相關(guān)技術(shù)中,從服務(wù)器加載靜態(tài)座位數(shù)據(jù)和動態(tài)座位數(shù)據(jù),數(shù)據(jù)量大,加載速度慢。且根據(jù)靜態(tài)座位數(shù)據(jù)填充矩陣空間時(shí),后面的座位依賴于前面座位的計(jì)算結(jié)果,導(dǎo)致必須串行計(jì)算每個(gè)座位的位置,延長了實(shí)時(shí)座位圖的顯示時(shí)間,且一旦一個(gè)座位的位置計(jì)算出錯(cuò),將導(dǎo)致該座位之后的座位都會計(jì)算錯(cuò)誤。技術(shù)實(shí)現(xiàn)要素:有鑒于此,本發(fā)明實(shí)施例的目的在于提供一種在線選座方法及系統(tǒng),在服務(wù)器側(cè)將靜態(tài)座位數(shù)據(jù)和動態(tài)座位數(shù)據(jù)合并,得到一個(gè)json格式的座位數(shù)據(jù)包,在服務(wù)器和終端之間僅傳輸該json格式的座位數(shù)據(jù)包,數(shù)據(jù)量小,傳輸速度快。且終端無需計(jì)算每個(gè)座位的位置,可根據(jù)該json格式的座位數(shù)據(jù)包直接渲染場所的實(shí)時(shí)座位圖。第一方面,本發(fā)明實(shí)施例提供了一種在線選座方法,所述方法包括:接收終端發(fā)送的選座請求,所述選座請求攜帶場所標(biāo)識及用座時(shí)間;根據(jù)所述場所標(biāo)識和所述用座時(shí)間,獲取場所的靜態(tài)座位數(shù)據(jù)及當(dāng)前的動態(tài)座位數(shù)據(jù);根據(jù)所述靜態(tài)座位數(shù)據(jù)和所述動態(tài)座位數(shù)據(jù),生成輕量級數(shù)據(jù)交換格式j(luò)son格式的座位數(shù)據(jù)包;發(fā)送所述json格式的座位數(shù)據(jù)包給所述終端,以使所述終端根據(jù)所述座位數(shù)據(jù)包直接渲染所述場所的實(shí)時(shí)座位圖。結(jié)合第一方面,本發(fā)明實(shí)施例提供了上述第一方面的第一種可能的實(shí)現(xiàn)方式,其中,所述根據(jù)所述靜態(tài)座位數(shù)據(jù)和所述動態(tài)座位數(shù)據(jù),生成輕量級數(shù)據(jù)交換格式j(luò)son格式的座位數(shù)據(jù)包,包括:從所述靜態(tài)座位數(shù)據(jù)中提取座區(qū)信息;從所述動態(tài)座位數(shù)據(jù)中獲取每個(gè)座位的屬性信息;根據(jù)所述座區(qū)信息及所述每個(gè)座位的屬性信息,生成json格式的座位數(shù)據(jù)包。結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,本發(fā)明實(shí)施例提供了上述第一方面的第二種可能的實(shí)現(xiàn)方式,其中,所述根據(jù)所述座區(qū)信息及所述每個(gè)座位的屬性信息,生成json格式的座位數(shù)據(jù)包,包括:根據(jù)所述座區(qū)信息,生成座區(qū)哈希映射信息;根據(jù)所述每個(gè)座位的屬性信息,在所述座區(qū)哈希映射信息中設(shè)置每個(gè)座位的屬性值;將設(shè)置屬性值后的所述座區(qū)哈希映射信息編輯為哈希結(jié)構(gòu)形式,生成json格式的座位數(shù)據(jù)包。結(jié)合第一方面的第二種可能的實(shí)現(xiàn)方式,本發(fā)明實(shí)施例提供了上述第一方面的第三種可能的實(shí)現(xiàn)方式,其中,所述根據(jù)所述座區(qū)信息,生成座區(qū)哈希映射信息,包括:從所述座區(qū)信息中獲取座區(qū)標(biāo)識及座區(qū)內(nèi)各座位行的行標(biāo)識;從所述座區(qū)信息中分別獲取所述各座位行包括的每個(gè)座位的列標(biāo)識;根據(jù)所述各座位行包括的每個(gè)座位的列標(biāo)識,分別生成所述各座位行的列數(shù)組;根據(jù)所述座區(qū)標(biāo)識、所述各座位行的行標(biāo)識和所述各座位行的列數(shù)組,生成座區(qū)哈希映射信息。第二方面,本發(fā)明實(shí)施例提供了一種在線選座方法,所述方法包括:發(fā)送選座請求給服務(wù)器,所述選座請求攜帶場所標(biāo)識及用座時(shí)間;接收所述服務(wù)器根據(jù)所述選座請求返回的json格式的座位數(shù)據(jù)包;根據(jù)所述json格式的座位數(shù)據(jù)包,渲染場所的實(shí)時(shí)座位圖。結(jié)合第二方面,本發(fā)明實(shí)施例提供了上述第二方面的第一種可能的實(shí)現(xiàn)方式,其中,所述根據(jù)所述json格式的座位數(shù)據(jù)包,渲染場所的實(shí)時(shí)座位圖,包括:從所述json格式的座位數(shù)據(jù)包中獲取哈希結(jié)構(gòu)形式的座區(qū)哈希映射信息;根據(jù)所述座區(qū)哈希映射信息中各座位行的行標(biāo)識和各座位行的列數(shù)組,并行渲染所述座區(qū)內(nèi)的座位,得到場所的總體格局圖;根據(jù)所述座區(qū)哈希映射信息中每個(gè)座位的屬性值,在所述總體格局圖中標(biāo)注每個(gè)座位的屬性,得到所述場所的實(shí)時(shí)座位圖。第三方面,本發(fā)明實(shí)施例提供了一種在線選座系統(tǒng),所述系統(tǒng)包括服務(wù)器和終端;所述終端,用于發(fā)送選座請求給所述服務(wù)器,所述選座請求攜帶場所標(biāo)識及用座時(shí)間;接收所述服務(wù)器根據(jù)所述選座請求返回的json格式的座位數(shù)據(jù)包;根據(jù)所述json格式的座位數(shù)據(jù)包,渲染場所的實(shí)時(shí)座位圖;所述服務(wù)器,用于接收終端發(fā)送的所述選座請求,根據(jù)所述場所標(biāo)識和所述用座時(shí)間,獲取所述場所的靜態(tài)座位數(shù)據(jù)及當(dāng)前的動態(tài)座位數(shù)據(jù);根據(jù)所述靜態(tài)座位數(shù)據(jù)和所述動態(tài)座位數(shù)據(jù),生成json格式的座位數(shù)據(jù)包;發(fā)送所述json格式的座位數(shù)據(jù)包給所述終端。結(jié)合第三方面,本發(fā)明實(shí)施例提供了上述第三方面的第一種可能的實(shí)現(xiàn)方式,其中,所述服務(wù)器,用于從所述靜態(tài)座位數(shù)據(jù)中提取座區(qū)信息;從所述動態(tài)座位數(shù)據(jù)中獲取每個(gè)座位的屬性信息;根據(jù)所述座區(qū)信息及所述每個(gè)座位的屬性信息,生成json格式的座位數(shù)據(jù)包。結(jié)合第三方面的第一種可能的實(shí)現(xiàn)方式,本發(fā)明實(shí)施例提供了上述第三方面的第二種可能的實(shí)現(xiàn)方式,其中,所述服務(wù)器,用于根據(jù)所述座區(qū)信息,生成座區(qū)哈希映射信息;根據(jù)所述每個(gè)座位的屬性信息,在所述座區(qū)哈希映射信息中設(shè)置每個(gè)座位的屬性值;將設(shè)置屬性值后的所述座區(qū)哈希映射信息編輯為哈希結(jié)構(gòu)形式,生成json格式的座位數(shù)據(jù)包;在根據(jù)所述座區(qū)信息生成座區(qū)哈希映射信息時(shí),所述服務(wù)器,用于從所述座區(qū)信息中獲取座區(qū)標(biāo)識及座區(qū)內(nèi)各座位行的行標(biāo)識;從所述座區(qū)信息中分別獲取所述各座位行包括的每個(gè)座位的列標(biāo)識;根據(jù)所述各座位行包括的每個(gè)座位的列標(biāo)識,分別生成所述各座位行的列數(shù)組;根據(jù)所述座區(qū)標(biāo)識、所述各座位行的行標(biāo)識和所述各座位行的列數(shù)組,生成座區(qū)哈希映射信息。結(jié)合第三方面,本發(fā)明實(shí)施例提供了上述第三方面的第三種可能的實(shí)現(xiàn)方式,其中,所述終端,用于從所述json格式的座位數(shù)據(jù)包中獲取哈希結(jié)構(gòu)形式的座區(qū)哈希映射信息;根據(jù)所述座區(qū)哈希映射信息中各座位行的行標(biāo)識和各座位行的列數(shù)組,并行渲染所述座區(qū)內(nèi)的座位,得到場所的總體格局圖;根據(jù)所述座區(qū)哈希映射信息中每個(gè)座位的屬性值,在所述總體格局圖中標(biāo)注每個(gè)座位的屬性,得到所述場所的實(shí)時(shí)座位圖。在本發(fā)明實(shí)施例提供的方法及系統(tǒng)中,接收終端發(fā)送的選座請求,選座請求攜帶場所標(biāo)識及用座時(shí)間;根據(jù)場所標(biāo)識和用座時(shí)間,獲取場所的靜態(tài)座位數(shù)據(jù)及當(dāng)前的動態(tài)座位數(shù)據(jù);根據(jù)靜態(tài)座位數(shù)據(jù)和動態(tài)座位數(shù)據(jù),生成json格式的座位數(shù)據(jù)包;發(fā)送json格式的座位數(shù)據(jù)包給終端,以使終端根據(jù)座位數(shù)據(jù)包直接渲染場所的實(shí)時(shí)座位圖。本發(fā)明在服務(wù)器側(cè)將靜態(tài)座位數(shù)據(jù)和動態(tài)座位數(shù)據(jù)合并,得到一個(gè)json格式的座位數(shù)據(jù)包,在服務(wù)器和終端之間僅傳輸該json格式的座位數(shù)據(jù)包,數(shù)據(jù)量小,傳輸速度快。且終端無需計(jì)算每個(gè)座位的位置,可根據(jù)該json格式的座位數(shù)據(jù)包直接渲染場所的實(shí)時(shí)座位圖,不僅避免了終端對座位位置的計(jì)算錯(cuò)誤,還大大縮短了用戶的等待時(shí)間。為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉較佳實(shí)施例,并配合所附附圖,作詳細(xì)說明如下。附圖說明為了更清楚地說明本發(fā)明實(shí)施例的技術(shù)方案,下面將對實(shí)施例中所需要使用的附圖作簡單地介紹,應(yīng)當(dāng)理解,以下附圖僅示出了本發(fā)明的某些實(shí)施例,因此不應(yīng)被看作是對范圍的限定,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他相關(guān)的附圖。圖1示出了本發(fā)明實(shí)施例1所提供的一種在線選座方法的流程圖;圖2示出了本發(fā)明實(shí)施例1所提供的影院普通座區(qū)示意圖;圖3示出了本發(fā)明實(shí)施例2所提供的一種在線選座方法的流程圖;圖4示出了本發(fā)明實(shí)施例3所提供的一種在線選座方法的流程圖;圖5示出了本發(fā)明實(shí)施例4所提供的一種在線選座系統(tǒng)的結(jié)構(gòu)示意圖。具體實(shí)施方式為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。通常在此處附圖中描述和示出的本發(fā)明實(shí)施例的組件可以以各種不同的配置來布置和設(shè)計(jì)。因此,以下對在附圖中提供的本發(fā)明的實(shí)施例的詳細(xì)描述并非旨在限制要求保護(hù)的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實(shí)施例?;诒景l(fā)明的實(shí)施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍??紤]到相關(guān)技術(shù)中,從服務(wù)器加載靜態(tài)座位數(shù)據(jù)和動態(tài)座位數(shù)據(jù),數(shù)據(jù)量大,加載速度慢。且根據(jù)靜態(tài)座位數(shù)據(jù)填充矩陣空間時(shí),后面的座位依賴于前面座位的計(jì)算結(jié)果,導(dǎo)致必須串行計(jì)算每個(gè)座位的位置,延長了實(shí)時(shí)座位圖的顯示時(shí)間,且一旦一個(gè)座位的位置計(jì)算出錯(cuò),將導(dǎo)致該座位之后的座位都會計(jì)算錯(cuò)誤。基于此,本發(fā)明實(shí)施例提供了一種在線選座方法及系統(tǒng),下面通過實(shí)施例進(jìn)行描述。實(shí)施例1參見圖1,本發(fā)明實(shí)施例提供了一種在線選座方法,該方法具體包括:步驟101:終端發(fā)送選座請求給服務(wù)器,該選座請求攜帶場所標(biāo)識及用座時(shí)間。當(dāng)用戶需要去影院或音樂廳等公共場所時(shí),可以通過手機(jī)或PAD(PortableAndroidDevice,平板電腦)等終端發(fā)送選座請求給服務(wù)器,在選座請求中攜帶場所標(biāo)識、用座時(shí)間和終端標(biāo)識。上述場所標(biāo)識可以為場所的名稱或場所代號等。有些公共場所擁有多個(gè)廳,在每個(gè)廳中安排不同的節(jié)目場次,因此有時(shí)還需在選座請求中攜帶節(jié)目標(biāo)識。例如,假設(shè)用戶需要去影院看電影,則需在選座請求中攜帶影院標(biāo)識、電影標(biāo)識和觀影時(shí)間。步驟102:服務(wù)器接收終端發(fā)送的選座請求,根據(jù)選座請求攜帶的場所標(biāo)識和用座時(shí)間,獲取場所的靜態(tài)座位數(shù)據(jù)及當(dāng)前的動態(tài)座位數(shù)據(jù)。服務(wù)器中預(yù)先存儲了場所標(biāo)識與靜態(tài)座位數(shù)據(jù)的對應(yīng)關(guān)系,服務(wù)器實(shí)時(shí)記錄場所的動態(tài)座位數(shù)據(jù),并保存場所標(biāo)識與動態(tài)座位數(shù)據(jù)的對應(yīng)關(guān)系,動態(tài)座位數(shù)據(jù)中包括場所內(nèi)每個(gè)座位的屬性信息,座位的屬性信息用于表示座位的狀態(tài),如表示座位是否已出售、是否損壞以及是否為商業(yè)綁定座位。其中,商業(yè)綁定座位為場所與商家聯(lián)合鎖定的座位,只有參加商家活動的用戶才可以購買商業(yè)綁定屬性的座位。服務(wù)器中還存儲場所標(biāo)識與場所使用時(shí)間的對應(yīng)關(guān)系,場所使用時(shí)間為場所中安排的節(jié)目時(shí)間。例如,假設(shè)場所為影院的放映廳,則場所使用時(shí)間可以為在該放映廳放映電影的時(shí)間。服務(wù)器接收到終端發(fā)送的選座請求時(shí),根據(jù)選座請求攜帶的場所標(biāo)識和用座時(shí)間,查看場所標(biāo)識與場所使用時(shí)間的對應(yīng)關(guān)系,確定用戶的用座時(shí)間是否與場所的使用時(shí)間吻合,如果是,則從場所標(biāo)識與靜態(tài)座位數(shù)據(jù)的對應(yīng)關(guān)系中獲取場所的靜態(tài)座位數(shù)據(jù),以及從場所標(biāo)識與動態(tài)座位數(shù)據(jù)的對應(yīng)關(guān)系中獲取場所當(dāng)前的動態(tài)座位數(shù)據(jù)。若確定出用戶的用座時(shí)間與場所的使用時(shí)間不吻合,則服務(wù)器發(fā)送時(shí)間錯(cuò)誤信息給終端,時(shí)間錯(cuò)誤信息用于提示用戶在其用座時(shí)間內(nèi)該場所不對外開放。目前市場上很多場所都包括多個(gè)廳,在不同的廳安排不同的節(jié)目場次。當(dāng)場所包含多個(gè)廳時(shí),服務(wù)器存儲場所標(biāo)識、廳標(biāo)識及廳的靜態(tài)座位數(shù)據(jù)的對應(yīng)關(guān)系。靜態(tài)座位數(shù)據(jù)中包括廳內(nèi)每個(gè)座位的位置及場所內(nèi)的走廊或柱子等非座位元素的位置。服務(wù)器還存儲場所標(biāo)識、廳標(biāo)識及廳的動態(tài)座位數(shù)據(jù)的對應(yīng)關(guān)系,以及存儲場所標(biāo)識、廳標(biāo)識及廳的使用時(shí)間的對應(yīng)關(guān)系。當(dāng)服務(wù)器接收到終端發(fā)送的選座請求時(shí),根據(jù)選座請求攜帶的場所標(biāo)識和用座時(shí)間,查看場所標(biāo)識、廳標(biāo)識及廳的使用時(shí)間的對應(yīng)關(guān)系,確定出使用時(shí)間與用戶的用座時(shí)間相吻合的廳的廳標(biāo)識,根據(jù)確定的廳標(biāo)識,從場所標(biāo)識、廳標(biāo)識及廳的靜態(tài)座位數(shù)據(jù)中獲取該廳的靜態(tài)座位數(shù)據(jù),以及從場所標(biāo)識、廳標(biāo)識及廳的動態(tài)座位數(shù)據(jù)的對應(yīng)關(guān)系中獲取該廳當(dāng)前的動態(tài)座位數(shù)據(jù)。若服務(wù)器從場所標(biāo)識、廳標(biāo)識及廳的使用時(shí)間的對應(yīng)關(guān)系中未確定出與用戶的用座時(shí)間相吻合的廳標(biāo)識,則服務(wù)器發(fā)送時(shí)間錯(cuò)誤信息給終端,以提示用戶在其用座時(shí)間內(nèi)場所內(nèi)所有廳均不對外開放。在本發(fā)明實(shí)施例中,服務(wù)器中還存儲場所標(biāo)識、廳標(biāo)識、節(jié)目標(biāo)識與節(jié)目時(shí)間的對應(yīng)關(guān)系,及廳標(biāo)識與廳的靜態(tài)座位數(shù)據(jù)和動態(tài)座位數(shù)據(jù)的對應(yīng)關(guān)系。當(dāng)終端發(fā)送的選座請求中攜帶場所標(biāo)識、用座時(shí)間和節(jié)目標(biāo)識時(shí),服務(wù)器根據(jù)選座請求攜帶的場所標(biāo)識、用座時(shí)間和節(jié)目標(biāo)識,從場所標(biāo)識、廳標(biāo)識、節(jié)目標(biāo)識與節(jié)目時(shí)間的對應(yīng)關(guān)系中確定出對應(yīng)的廳標(biāo)識,再根據(jù)確定的廳標(biāo)識,從廳標(biāo)識與廳的靜態(tài)座位數(shù)據(jù)和動態(tài)座位數(shù)據(jù)的對應(yīng)關(guān)系中獲取對應(yīng)的廳的靜態(tài)座位數(shù)據(jù)和動態(tài)座位數(shù)據(jù)。通過本步驟的方式獲取到靜態(tài)座位數(shù)據(jù)和動態(tài)座位數(shù)據(jù)后,通過如下步驟103的操作將靜態(tài)座位數(shù)據(jù)和動態(tài)座位數(shù)據(jù)合并。步驟103:服務(wù)器根據(jù)靜態(tài)座位數(shù)據(jù)和動態(tài)座位數(shù)據(jù),生成json(javascriptobjectnotation,輕量級數(shù)據(jù)交換格式)格式的座位數(shù)據(jù)包。在本發(fā)明實(shí)施例中,場所可以劃分為普通座區(qū)和VIP(VeryImportantPerson,貴賓)座區(qū)等多個(gè)座區(qū),每個(gè)座區(qū)中都包括多個(gè)座位。靜態(tài)座位數(shù)據(jù)中包含每個(gè)座區(qū)的座區(qū)信息,座區(qū)信息包括座區(qū)的座區(qū)標(biāo)識和座區(qū)內(nèi)每個(gè)座位的位置信息。另外,座區(qū)信息中還可以包括座區(qū)所屬場所的場所標(biāo)識。本發(fā)明實(shí)施例中,動態(tài)座位數(shù)據(jù)中包括每個(gè)座位的屬性信息,本發(fā)明實(shí)施例通過預(yù)設(shè)字符來表示座位的不同屬性,如通過字符0表示座位未被占用,通過字符1表示座位已被占用,通過字符3表示座位已損壞,通過字符4表示座位為商業(yè)綁定座位等。本發(fā)明實(shí)施例并不具體限定表示座位屬性的預(yù)設(shè)字符,在實(shí)際應(yīng)用中可根據(jù)需求具體確定表示座位屬性的預(yù)設(shè)字符。服務(wù)器獲取到靜態(tài)座位數(shù)據(jù)和動態(tài)座位數(shù)據(jù)后,從靜態(tài)座位數(shù)據(jù)中提取座區(qū)信息;從動態(tài)座位數(shù)據(jù)中獲取每個(gè)座位的屬性信息;根據(jù)座區(qū)信息及每個(gè)座位的屬性信息,生成json格式的座位數(shù)據(jù)包。本發(fā)明實(shí)施例通過如下操作生成json格式的座位數(shù)據(jù)包,包括:服務(wù)器根據(jù)座區(qū)信息,生成座區(qū)哈希映射信息;根據(jù)每個(gè)座位的屬性信息,在座區(qū)哈希映射信息中設(shè)置每個(gè)座位的屬性值;將設(shè)置屬性值后的座區(qū)哈希映射信息編輯為哈希結(jié)構(gòu)形式,生成json格式的座位數(shù)據(jù)包。服務(wù)器從座區(qū)信息中獲取座區(qū)標(biāo)識及座區(qū)內(nèi)各座位行的行標(biāo)識;從座區(qū)信息中獲取各座位行包括的每個(gè)座位的列標(biāo)識;根據(jù)各座位行包括的每個(gè)座位的列標(biāo)識,分別生成各座位行的列數(shù)組;根據(jù)座區(qū)標(biāo)識、各座位行的行標(biāo)識和各座位行的列數(shù)組,生成座區(qū)哈希映射信息。在本發(fā)明實(shí)施例中,還統(tǒng)計(jì)每個(gè)座區(qū)內(nèi)的總座位數(shù)及可選座位數(shù),并在生成的json格式的座位數(shù)據(jù)包中添加總座位數(shù)及可選座位數(shù)。另外,在json格式的座位數(shù)據(jù)包中還添加場所標(biāo)識和/或廳標(biāo)識等。上述座區(qū)哈希映射信息用兩級哈希映射表示,第一級為座區(qū)對象,包括座區(qū)標(biāo)識、座區(qū)內(nèi)的最大行標(biāo)識和最大列標(biāo)識以及座區(qū)內(nèi)的每個(gè)行對象。第二級為行對象,包括行標(biāo)識及該行內(nèi)每個(gè)座位的列標(biāo)識組成的列數(shù)組。在本發(fā)明實(shí)施例中,用一個(gè)json數(shù)據(jù)包表示場所座位數(shù)據(jù)的格式。座區(qū)、行、列三級結(jié)構(gòu)用兩級哈希映射和一個(gè)最底級的數(shù)組表示,哈希映射的鍵值分別為顯示給用戶的座區(qū)號和行號,其值為一個(gè)對象。下級對象繼承上級對象的所有屬性,下級對象的共用屬性無需重復(fù)填充。在最底級的數(shù)組中,每個(gè)元素存放一個(gè)具體的座位對象。在兩級哈希映射中,第一級座區(qū)對象的屬性包括座區(qū)編號、最大行標(biāo)識、最大列標(biāo)識、該座區(qū)擁有的全部下級排對象。第二級行對象的屬性包括:對應(yīng)的行標(biāo)識和該排擁有的全部下級座位數(shù)組。最底級座位對象的屬性包括顯示給用戶的列號、對應(yīng)的物理列標(biāo)識、是否已被占用的標(biāo)記、是否已損壞標(biāo)識、是否為情侶座標(biāo)識及是否為商業(yè)綁定座位的標(biāo)識。為了便于理解上述生成json格式的座位數(shù)據(jù)包的操作,下面結(jié)合附圖進(jìn)行說明。如圖2所示的影院普通座區(qū)示意圖,普通座區(qū)的最大坐標(biāo)行為4,最大坐標(biāo)列為5。從圖2中可以看出,在普通座區(qū)中第0行和第2行為非座位元素“走廊”,普通座區(qū)包括1、3和4三個(gè)座位行,座位行1的行號為1,行號1對應(yīng)的列數(shù)組為[0,1,2,3,4,5]。座位行3的行號為3,行號3對應(yīng)的列數(shù)組為[0,2,3,5]。座位行4的行號為4,行號4對應(yīng)的列數(shù)組為[0,2,3,5]。在圖2中行號1中的所有座位、行號3中列號為0和5的座位以及行號4中列號為0和5的座位的屬性均為未被占用座位。行號3中列號為2和3的座位的屬性為已被占用座位,行號4中列號為2和3的座位的屬性為商業(yè)綁定座位,行號4中列號為5的座位的屬性為已損壞座位。在本發(fā)明實(shí)施例中對圖2所示的普通座區(qū)的座區(qū)哈希映射信息編輯為哈希結(jié)構(gòu)形式,生成json格式的座位數(shù)據(jù)包。其json格式的座位數(shù)據(jù)包的json代碼如下所示:其中,上述json代碼中各變量的名稱及變量的數(shù)據(jù)類型如表1所示,各變量的名稱僅為示意性的,本發(fā)明實(shí)施例并不具體限定變量的名稱,實(shí)際應(yīng)用中可根據(jù)需求進(jìn)行定義。表1在本發(fā)明實(shí)施例中,服務(wù)器也可以從座區(qū)信息中獲取座區(qū)標(biāo)識及座區(qū)內(nèi)各座位列的列標(biāo)識,從座區(qū)信息中獲取各座位列包括的每個(gè)座位的行標(biāo)識,根據(jù)各座位列包括的每個(gè)座位的行標(biāo)識,分別生成各座位列的行數(shù)組,根據(jù)座區(qū)標(biāo)識、各座位列的列標(biāo)識和各座位列的行數(shù)組,生成座區(qū)哈希映射信息。此時(shí)用兩級哈希映射表示的座區(qū)哈希映射信息中,第一級為座區(qū)對象,包括座區(qū)標(biāo)識、座區(qū)內(nèi)的最大行標(biāo)識和最大列標(biāo)識以及座區(qū)內(nèi)的每個(gè)列對象。第二級為列對象,包括列標(biāo)識及該列內(nèi)每個(gè)座位的行標(biāo)識組成的行數(shù)組。步驟104:服務(wù)器發(fā)送json格式的座位數(shù)據(jù)包給終端。服務(wù)器根據(jù)選座請求中攜帶的終端標(biāo)識,發(fā)送上述json格式的座位數(shù)據(jù)包給終端。步驟105:終端接收服務(wù)器根據(jù)選座請求返回的json格式的座位數(shù)據(jù)包,根據(jù)json格式的座位數(shù)據(jù)包,渲染場所的實(shí)時(shí)座位圖。終端接收到j(luò)son格式的座位數(shù)據(jù)包后,從json格式的座位數(shù)據(jù)包中獲取哈希結(jié)構(gòu)形式的座區(qū)哈希映射信息;根據(jù)座區(qū)哈希映射信息中各座位行的行標(biāo)識和各座位行的列數(shù)組,并行渲染座區(qū)內(nèi)的座位,得到場所的總體格局圖;根據(jù)座區(qū)哈希映射信息中每個(gè)座位的屬性值,在總體格局圖中標(biāo)注每個(gè)座位的屬性,得到場所的實(shí)時(shí)座位圖。在本發(fā)明實(shí)施例中,由于在座區(qū)哈希映射信息中,下級對象繼承上級對象的所有屬性,且座位數(shù)據(jù)包中包含座區(qū)的最大行標(biāo)識和最大列標(biāo)識,終端可根據(jù)座區(qū)哈希映射信息預(yù)生成場所座位的總體格局圖。由于每一個(gè)具體的座位歸屬一個(gè)包括座區(qū)、行和列的3級結(jié)構(gòu),每一個(gè)下級結(jié)構(gòu)的上級屬性相同,各座位的物理位置等屬性不存在依賴關(guān)系,可并行渲染,且走廊或柱子等非座位元素?zé)o需用占位符來標(biāo)注,所以大大縮短了終端渲染場所的實(shí)時(shí)座位圖的時(shí)間,避免了終端計(jì)算座位位置出錯(cuò)的情況。如圖2所示,終端渲染并顯示的場所的實(shí)時(shí)座位圖中,白色的座位表示未被占用的座位,黑色的座位表示已被占用的座位,柵格表示的座位為商業(yè)綁定的座位,叉號標(biāo)識的座位為已損壞的座位。終端還可以以其他形式標(biāo)注不同屬性的座位,比如以不同的顏色來標(biāo)注不同屬性的座位等。終端渲染并顯示場所的實(shí)時(shí)座位圖后,用戶可從實(shí)時(shí)座位圖包括的未被占用的座位中選擇一個(gè)座位,終端獲取用戶選擇的座位的坐標(biāo),將該坐標(biāo)上傳給服務(wù)器,服務(wù)器根據(jù)該坐標(biāo)將用戶選擇的座位的屬性修改為已被占用,并實(shí)時(shí)更新該場所的動態(tài)座位數(shù)據(jù)。本發(fā)明實(shí)施例中,在服務(wù)器側(cè)將靜態(tài)座位數(shù)據(jù)和動態(tài)座位數(shù)據(jù)合并,服務(wù)器可以先根據(jù)靜態(tài)座位數(shù)據(jù),按照座區(qū)、行和列3級結(jié)構(gòu),生成一個(gè)json格式的座位數(shù)據(jù)包,此時(shí)該座位數(shù)據(jù)包中的各個(gè)座位的屬性均未設(shè)置,服務(wù)器存儲該座位數(shù)據(jù)包。當(dāng)服務(wù)器接收到終端發(fā)送的選座請求時(shí),再根據(jù)場所當(dāng)前的動態(tài)座位數(shù)據(jù),在存儲的座位數(shù)據(jù)包中設(shè)置每個(gè)座位的屬性值,將設(shè)置屬性值后的座位數(shù)據(jù)包發(fā)送給終端。如此可以減少服務(wù)器的運(yùn)算量,大大縮短服務(wù)器對終端的選座請求的響應(yīng)時(shí)間,進(jìn)一步縮短用戶的等待時(shí)間。終端根據(jù)json格式的座位數(shù)據(jù)包直接渲染場所的實(shí)時(shí)座位圖,避免終端根據(jù)靜態(tài)座位數(shù)據(jù)計(jì)算座位位置時(shí)出錯(cuò)的情況。為了便于理解本發(fā)明實(shí)施例提供的在線選座方式,下面以影院的在線選座為例進(jìn)行說明。影院在線為用戶提供電影排期列表,電影排期列表包括多個(gè)排期信息,排期信息包括電影名稱、放映時(shí)間和放映場所標(biāo)識。終端檢測到用戶點(diǎn)擊電影排期列表中一排期信息時(shí),發(fā)送選座請求給服務(wù)器,該選座請求攜帶用戶點(diǎn)擊的排期信息及終端標(biāo)識。服務(wù)器接收到該選座請求后,根據(jù)排期信息中包括的電影名稱、放映時(shí)間和放映場所標(biāo)識,獲取該排期信息對應(yīng)的放映場所的靜態(tài)座位數(shù)據(jù)和當(dāng)前的動態(tài)座位數(shù)據(jù),將獲取的靜態(tài)座位數(shù)據(jù)和動態(tài)座位數(shù)據(jù)合并,生成json格式的座位數(shù)據(jù)包,發(fā)送該json格式的座位數(shù)據(jù)包給終端。終端根據(jù)該json格式的座位數(shù)據(jù)包渲染并顯示用戶選擇的排期信息對應(yīng)的放映場所的實(shí)時(shí)座位圖。在本發(fā)明實(shí)施例中,接收終端發(fā)送的選座請求,選座請求攜帶場所標(biāo)識及用座時(shí)間;根據(jù)場所標(biāo)識和用座時(shí)間,獲取場所的靜態(tài)座位數(shù)據(jù)及當(dāng)前的動態(tài)座位數(shù)據(jù);根據(jù)靜態(tài)座位數(shù)據(jù)和動態(tài)座位數(shù)據(jù),生成json格式的座位數(shù)據(jù)包;發(fā)送json格式的座位數(shù)據(jù)包給終端,以使終端根據(jù)座位數(shù)據(jù)包直接渲染場所的實(shí)時(shí)座位圖。本發(fā)明在服務(wù)器側(cè)將靜態(tài)座位數(shù)據(jù)和動態(tài)座位數(shù)據(jù)合并,得到一個(gè)json格式的座位數(shù)據(jù)包,在服務(wù)器和終端之間僅傳輸該json格式的座位數(shù)據(jù)包,數(shù)據(jù)量小,傳輸速度快。且終端無需計(jì)算每個(gè)座位的位置,可根據(jù)該json格式的座位數(shù)據(jù)包直接渲染場所的實(shí)時(shí)座位圖,不僅避免了終端對座位位置的計(jì)算錯(cuò)誤,還大大縮短了用戶的等待時(shí)間。實(shí)施例2參見圖3,本發(fā)明實(shí)施例提供了一種在線選座方法,該方法的執(zhí)行主體為服務(wù)器,服務(wù)器的具體操作與上述實(shí)施例1中服務(wù)器的操作相同。該方法具體包括:步驟201:接收終端發(fā)送的選座請求,該選座請求攜帶場所標(biāo)識及用座時(shí)間。步驟202:根據(jù)場所標(biāo)識和用座時(shí)間,獲取場所的靜態(tài)座位數(shù)據(jù)及當(dāng)前的動態(tài)座位數(shù)據(jù)。步驟203:根據(jù)靜態(tài)座位數(shù)據(jù)和動態(tài)座位數(shù)據(jù),生成json格式的座位數(shù)據(jù)包。步驟204:發(fā)送json格式的座位數(shù)據(jù)包給終端,以使終端根據(jù)座位數(shù)據(jù)包直接渲染場所的實(shí)時(shí)座位圖。本發(fā)明實(shí)施例中,服務(wù)器通過以下操作將靜態(tài)座位數(shù)據(jù)和動態(tài)座位數(shù)據(jù)合并,生成json格式的座位數(shù)據(jù)包,具體包括:從靜態(tài)座位數(shù)據(jù)中提取座區(qū)信息;從動態(tài)座位數(shù)據(jù)中獲取每個(gè)座位的屬性信息;根據(jù)座區(qū)信息及每個(gè)座位的屬性信息,生成json格式的座位數(shù)據(jù)包。服務(wù)器根據(jù)座區(qū)信息,生成座區(qū)哈希映射信息;根據(jù)每個(gè)座位的屬性信息,在座區(qū)哈希映射信息中設(shè)置每個(gè)座位的屬性值;將設(shè)置屬性值后的座區(qū)哈希映射信息編輯為哈希結(jié)構(gòu)形式,生成json格式的座位數(shù)據(jù)包。上述根據(jù)座區(qū)信息生成座區(qū)哈希映射信息的過程具體包括:從座區(qū)信息中獲取座區(qū)標(biāo)識及座區(qū)內(nèi)各座位行的行標(biāo)識;從座區(qū)信息中獲取各座位行包括的每個(gè)座位的列標(biāo)識;根據(jù)各座位行包括的每個(gè)座位的列標(biāo)識,分別生成各座位行的列數(shù)組;根據(jù)座區(qū)標(biāo)識、各座位行的行標(biāo)識和各座位行的列數(shù)組,生成座區(qū)哈希映射信息。在本發(fā)明實(shí)施例中,接收終端發(fā)送的選座請求,選座請求攜帶場所標(biāo)識及用座時(shí)間;根據(jù)場所標(biāo)識和用座時(shí)間,獲取場所的靜態(tài)座位數(shù)據(jù)及當(dāng)前的動態(tài)座位數(shù)據(jù);根據(jù)靜態(tài)座位數(shù)據(jù)和動態(tài)座位數(shù)據(jù),生成json格式的座位數(shù)據(jù)包;發(fā)送json格式的座位數(shù)據(jù)包給終端,以使終端根據(jù)座位數(shù)據(jù)包直接渲染場所的實(shí)時(shí)座位圖。本發(fā)明在服務(wù)器側(cè)將靜態(tài)座位數(shù)據(jù)和動態(tài)座位數(shù)據(jù)合并,得到一個(gè)json格式的座位數(shù)據(jù)包,在服務(wù)器和終端之間僅傳輸該json格式的座位數(shù)據(jù)包,數(shù)據(jù)量小,傳輸速度快。且終端無需計(jì)算每個(gè)座位的位置,可根據(jù)該json格式的座位數(shù)據(jù)包直接渲染場所的實(shí)時(shí)座位圖,不僅避免了終端對座位位置的計(jì)算錯(cuò)誤,還大大縮短了用戶的等待時(shí)間。實(shí)施例3參見圖4,本發(fā)明實(shí)施例提供了一種在線選座方法,該方法的執(zhí)行主體為終端,終端的具體操作與實(shí)施例1中終端的操作相同。該方法具體包括:步驟301:發(fā)送選座請求給服務(wù)器,該選座請求攜帶場所標(biāo)識及用座時(shí)間。步驟302:接收服務(wù)器根據(jù)選座請求返回的json格式的座位數(shù)據(jù)包。步驟303:根據(jù)json格式的座位數(shù)據(jù)包,渲染場所的實(shí)時(shí)座位圖。在本發(fā)明實(shí)施例中,終端渲染場所的實(shí)時(shí)座位圖的過程具體包括:從json格式的座位數(shù)據(jù)包中獲取哈希結(jié)構(gòu)形式的座區(qū)哈希映射信息;根據(jù)座區(qū)哈希映射信息中各座位行的行標(biāo)識和各座位行的列數(shù)組,并行渲染座區(qū)內(nèi)的座位,得到場所的總體格局圖;根據(jù)座區(qū)哈希映射信息中每個(gè)座位的屬性值,在總體格局圖中標(biāo)注每個(gè)座位的屬性,得到場所的實(shí)時(shí)座位圖。在本發(fā)明實(shí)施例中,發(fā)送選座請求給服務(wù)器,該選座請求攜帶場所標(biāo)識及用座時(shí)間。接收服務(wù)器根據(jù)選座請求返回的json格式的座位數(shù)據(jù)包。根據(jù)json格式的座位數(shù)據(jù)包,渲染場所的實(shí)時(shí)座位圖。本發(fā)明在服務(wù)器側(cè)將靜態(tài)座位數(shù)據(jù)和動態(tài)座位數(shù)據(jù)合并,得到一個(gè)json格式的座位數(shù)據(jù)包,在服務(wù)器和終端之間僅傳輸該json格式的座位數(shù)據(jù)包,數(shù)據(jù)量小,傳輸速度快。且終端無需計(jì)算每個(gè)座位的位置,可根據(jù)該json格式的座位數(shù)據(jù)包直接渲染場所的實(shí)時(shí)座位圖,不僅避免了終端對座位位置的計(jì)算錯(cuò)誤,還大大縮短了用戶的等待時(shí)間。實(shí)施例4參見圖5,本發(fā)明實(shí)施例提供了一種在線選座系統(tǒng),該系統(tǒng)用于執(zhí)行上述實(shí)施例1提供的在線選座方法,該系統(tǒng)包括服務(wù)器401和終端402;終端402,用于發(fā)送選座請求給服務(wù)器401,該選座請求攜帶場所標(biāo)識及用座時(shí)間;接收服務(wù)器401根據(jù)選座請求返回的json格式的座位數(shù)據(jù)包;根據(jù)json格式的座位數(shù)據(jù)包,渲染場所的實(shí)時(shí)座位圖;服務(wù)器401,用于接收終端402發(fā)送的選座請求,根據(jù)場所標(biāo)識和用座時(shí)間,獲取場所的靜態(tài)座位數(shù)據(jù)及當(dāng)前的動態(tài)座位數(shù)據(jù);根據(jù)靜態(tài)座位數(shù)據(jù)和動態(tài)座位數(shù)據(jù),生成json格式的座位數(shù)據(jù)包;發(fā)送json格式的座位數(shù)據(jù)包給終端402。服務(wù)器401,用于從靜態(tài)座位數(shù)據(jù)中提取座區(qū)信息;從動態(tài)座位數(shù)據(jù)中獲取每個(gè)座位的屬性信息;根據(jù)座區(qū)信息及每個(gè)座位的屬性信息,生成json格式的座位數(shù)據(jù)包。服務(wù)器401,用于根據(jù)座區(qū)信息,生成座區(qū)哈希映射信息;根據(jù)每個(gè)座位的屬性信息,在座區(qū)哈希映射信息中設(shè)置每個(gè)座位的屬性值;將設(shè)置屬性值后的座區(qū)哈希映射信息編輯為哈希結(jié)構(gòu)形式,生成json格式的座位數(shù)據(jù)包。服務(wù)器401,用于從座區(qū)信息中獲取座區(qū)標(biāo)識及座區(qū)內(nèi)各座位行的行標(biāo)識;從座區(qū)信息中獲取各座位行包括的每個(gè)座位的列標(biāo)識;根據(jù)各座位行包括的每個(gè)座位的列標(biāo)識,分別生成各座位行的列數(shù)組;根據(jù)座區(qū)標(biāo)識、各座位行的行標(biāo)識和各座位行的列數(shù)組,生成座區(qū)哈希映射信息。終端402,用于從json格式的座位數(shù)據(jù)包中獲取哈希結(jié)構(gòu)形式的座區(qū)哈希映射信息;根據(jù)座區(qū)哈希映射信息中各座區(qū)行的行標(biāo)識和各座位行的列數(shù)組,并行渲染座區(qū)內(nèi)的座位,得到場所的總體格局圖;根據(jù)座區(qū)哈希映射信息中每個(gè)座位的屬性值,在總體格局圖中標(biāo)注每個(gè)座位的屬性,得到場所的實(shí)時(shí)座位圖。在本發(fā)明實(shí)施例中,接收終端發(fā)送的選座請求,選座請求攜帶場所標(biāo)識及用座時(shí)間;根據(jù)場所標(biāo)識和用座時(shí)間,獲取場所的靜態(tài)座位數(shù)據(jù)及當(dāng)前的動態(tài)座位數(shù)據(jù);根據(jù)靜態(tài)座位數(shù)據(jù)和動態(tài)座位數(shù)據(jù),生成json格式的座位數(shù)據(jù)包;發(fā)送json格式的座位數(shù)據(jù)包給終端,以使終端根據(jù)座位數(shù)據(jù)包直接渲染場所的實(shí)時(shí)座位圖。本發(fā)明在服務(wù)器側(cè)將靜態(tài)座位數(shù)據(jù)和動態(tài)座位數(shù)據(jù)合并,得到一個(gè)json格式的座位數(shù)據(jù)包,在服務(wù)器和終端之間僅傳輸該json格式的座位數(shù)據(jù)包,數(shù)據(jù)量小,傳輸速度快。且終端無需計(jì)算每個(gè)座位的位置,可根據(jù)該json格式的座位數(shù)據(jù)包直接渲染場所的實(shí)時(shí)座位圖,不僅避免了終端對座位位置的計(jì)算錯(cuò)誤,還大大縮短了用戶的等待時(shí)間。本發(fā)明實(shí)施例所提供的系統(tǒng),其實(shí)現(xiàn)原理及產(chǎn)生的技術(shù)效果和前述方法實(shí)施例相同,為簡要描述,系統(tǒng)實(shí)施例部分未提及之處,可參考前述方法實(shí)施例中相應(yīng)內(nèi)容。所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,前述描述的系統(tǒng)的具體工作過程,均可以參考上述方法實(shí)施例中的對應(yīng)過程,在此不再贅述。在本發(fā)明所提供的實(shí)施例中,應(yīng)該理解到,所揭露裝置系統(tǒng)和方法,可以通過其它的方式實(shí)現(xiàn)。以上所描述的系統(tǒng)實(shí)施例僅僅是示意性的。所述功能如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲在一個(gè)計(jì)算機(jī)可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲在一個(gè)存儲介質(zhì)中,包括若干指令用以使得一臺計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-OnlyMemory)、隨機(jī)存取存儲器(RAM,RandomAccessMemory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。應(yīng)注意到:相似的標(biāo)號和字母在下面的附圖中表示類似項(xiàng),因此,一旦某一項(xiàng)在一個(gè)附圖中被定義,則在隨后的附圖中不需要對其進(jìn)行進(jìn)一步定義和解釋,此外,術(shù)語“第一”、“第二”、“第三”等僅用于區(qū)分描述,而不能理解為指示或暗示相對重要性。最后應(yīng)說明的是:以上所述實(shí)施例,僅為本發(fā)明的具體實(shí)施方式,用以說明本發(fā)明的技術(shù)方案,而非對其限制,本發(fā)明的保護(hù)范圍并不局限于此,盡管參照前述實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:任何熟悉本
技術(shù)領(lǐng)域:
:的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),其依然可以對前述實(shí)施例所記載的技術(shù)方案進(jìn)行修改或可輕易想到變化,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改、變化或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明實(shí)施例技術(shù)方案的精神和范圍。都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。當(dāng)前第1頁1 2 3 當(dāng)前第1頁1 2 3