◆楊晟 羅奇
(湖南信息職業(yè)技術學院 湖南 410200)
隨著手機等智能設備的普及,傳統(tǒng)的線下影院購票方式將逐漸淡出歷史舞臺,在線購票已經(jīng)成為主流[1-2]。一方面通過在線影院購票平臺可以實時了解最新電影動態(tài)[3],幫助觀影者根據(jù)個人喜好、評分及位置場次信息對電影進行最優(yōu)選擇。另一方面在線售票可以讓觀影者快捷的選購所需要觀看的電影,并根據(jù)電影場次合理安排出行,節(jié)約大量的排隊時間和等候時間[4-5]。
國內電影市場總體正處于快速發(fā)展期,影院規(guī)模和熒幕數(shù)量迅速增長[6]。在線售票影院系統(tǒng)為影院提供了一個廣闊的市場平臺,吸引了更多客源;同時還可以提升服務質量、節(jié)約人力成本。因此設計一款高效簡潔的在線影院售票系統(tǒng)具有較大的社會價值和意義[7]。
本文設計了一個基于Spring Boot的在線影院售票系統(tǒng)。影院負責人可以使用系統(tǒng)進行影院信息、放映廳信息、放映場次以及訂單信息的管理;觀影者可以使用系統(tǒng)可以方便快捷地進行電影票的選購;系統(tǒng)管理員可以對影院負責人及觀影者等用戶信息進行維護。
如圖1所示,系統(tǒng)總體功能有用戶信息管理、電影信息管理、影院信息管理、放映廳信息管理、放映場次信息管理、訂單信息管理和評論信息管理七個部分。管理員具有用戶信息管理和電影信息管理等功能;影院負責人具有影院信息管理、放映廳信息管理、訂單信息管理等功能;觀影者具有訂單信息管理、評論信息管理等功能。
圖1 系統(tǒng)總體用例圖
不同角色的用戶登錄系統(tǒng)后,會進入到不同的頁面,執(zhí)行不同的操作。為了保證系統(tǒng)運行的安全性,防止越權訪問和惡意操作,需要建立基于角色的訪問控制(RBAC)策略。根據(jù)上文所示的功能需求為管理員、商家和顧客三個不同的角色賦予不同的權限。當用戶登錄系統(tǒng)后,針對其每一個操作,系統(tǒng)判斷當前用戶所對應角色是否具有指定的操作權限,若具有該權限,則允許當前操作執(zhí)行;否則禁止當前操作,并強制當前用戶退出系統(tǒng)。
(1)用戶信息管理模塊設計
用戶包含三種,分別是管理員、影院負責人和觀影者,通過給不同用戶設置不同的角色編碼來進行區(qū)分。管理員賬戶由系統(tǒng)擁有者在數(shù)據(jù)庫中直接創(chuàng)建,并賦予其角色編碼ADMIN,使其具有管理員角色,管理員可以有多個;觀影者需要通過注冊才能成為系統(tǒng)用戶,注冊完成后,系統(tǒng)為其賦予角色編碼CUSTOMER;影院負責人由管理員添加后成為系統(tǒng)用戶,添加成功后,系統(tǒng)為其賦予角色編碼MERCHENT。管理員登錄系統(tǒng)后課進行影院負責人和觀影者信息的維護。觀影者信息維護包括查詢觀影者信息和凍結觀影者信息等功能。影院負責人信息維護則包括添加影院負責人信息、修改影院負責人信息、查詢影院負責人信息、刪除影院負責人信息、凍結影院負責人信息等功能。
(2)電影信息管理模塊設計
管理員登錄系統(tǒng)后,可以對電影信息進行維護:包括添加電影信息、查詢電影信息、修改電影信息、刪除電影信息等功能。影院負責人和觀影者具有查看電影信息的功能。
(3)影院信息管理模塊設計
影院負責人登錄系統(tǒng)后,可以對影院信息進行維護:包括添加影院信息、修改影院信息、查詢影院信息、刪除影院信息等操作。
(4)放映廳信息管理模塊設計
影院負責人可以對放映廳信息進行維護:包括添加放映廳信息、修改放映廳信息、查詢放映廳信息、刪除放映廳信息等操作。
(5)放映場次管理
影院負責人可以對放映場次信息進行維護:包括添加放映場次信息、修改放映場次信息、查詢放映場次信息、刪除放映場次信息。
(6)訂單信息管理模塊設計
觀影者和影院負責人都具有訂單管理的相關功能。觀影者具有創(chuàng)建訂單、查詢訂單信息、刪除訂單信息等功能。影院負責人具有查詢訂單信息的功能。在創(chuàng)建電影票訂單時需要選座,同一場次中已經(jīng)被選購的座位不能被再次選購。每一個訂單可以包含多張電影票,訂單中還會保存電影、影院、場次、座位的詳細信息作為快照,確保即使后續(xù)由于信息變更而導致糾紛時,可以使用快照作為判斷依據(jù)。
(7)評論信息管理
觀影者和影院負責人都可以查看商品的所有評論信息。此外,觀影者還具有創(chuàng)建評論的功能,觀影者在購買電影票之后,可以對電影進行評論。
顧客選購電影票過程流程如圖2所示。
圖2 顧客選購電影票過程流程圖
(1)用戶登錄控制
為了保證系統(tǒng)運行的安全性,避免數(shù)據(jù)被惡意獲取和篡改。系統(tǒng)所有功能都必須在用戶成功登錄后才能訪問,并使用SHA-256哈希算法對數(shù)據(jù)庫中的用戶密碼進行加密,防止用戶密碼泄露。
(2)用戶操作權限控制
為了控制不同用戶的操作權限,防止越權訪問,系統(tǒng)采用RBAC訪問控制策略,并使用Spring Security進行安全訪問的控制。
如前3.1所述,本系統(tǒng)中,數(shù)據(jù)庫中用戶表結構中每個用戶都有一個角色編碼,用于標識用戶的角色信息。同時數(shù)據(jù)庫中還存在一個角色權限關聯(lián)表,包含了角色與操作權限的對應關系,當用戶登錄成功后,系統(tǒng)將根據(jù)用戶角色,從數(shù)據(jù)庫的角色權限關聯(lián)表中讀取用戶的操作權限信息。當用戶執(zhí)行某項的操作時,若包含對應的操作權限,則允許用戶進行操作,反之則禁止當前操作,并強制用戶退出系統(tǒng)。
圖3 系統(tǒng)安全控制流程圖
本系統(tǒng)采用開源的MySQL數(shù)據(jù)庫系統(tǒng)進行數(shù)據(jù)存儲。包含的數(shù)據(jù)表有電影信息表、影院信息表、省市區(qū)信息表、放映廳信息表、放映場次信息表、訂單信息表、電影票信息表、評論信息表、用戶信息表等、權限信息表。
電影信息表(電影id、電影名稱、電影類型、放映時長、綜合評分、導演、主演、圖片存儲路徑、電影描述信息、刪除標志位、創(chuàng)建人id、創(chuàng)建時間、修改人id、修改時間);
影院信息表(影院id、影院名稱、所在省份id、所在市id、所在區(qū)/縣id、詳細地址、刪除標志位、創(chuàng)建人id、創(chuàng)建時間、修改人id、修改時間);
省市區(qū)信息表(區(qū)域id、區(qū)域編碼、區(qū)域名稱、父區(qū)域id、刪除標志位、創(chuàng)建人id、創(chuàng)建時間、修改人id、修改時間);
放映廳信息表(放映廳id、放映廳名稱、座位橫排總數(shù)、座位縱排總數(shù)、影院id、刪除標志位、創(chuàng)建人id、創(chuàng)建時間、修改人id、修改時間);
放映場次信息表(場次id、影院id、電影id、語言版本、放映廳id、電影票單價、放映時間、刪除標志位、創(chuàng)建人id、創(chuàng)建時間、修改人id、修改時間);
訂單信息表(訂單id、訂單編號、客戶id、電影場次id、電影名稱、影院名稱、影院位置、電影票單價、放映時間、放映時長、語言版本、放映廳名稱、訂單總金額、訂單狀態(tài)、刪除標志位、創(chuàng)建人id、創(chuàng)建時間、修改人id、修改時間);
電影票信息表(電影票id、座位所在橫排,座位所在縱排、訂單id、刪除標志位、創(chuàng)建人id、創(chuàng)建時間、修改人id、修改時間);
評論信息表(評論id、評論人id、電影id、所屬訂單id、評分、詳細評論信息、刪除標志位、創(chuàng)建人id、創(chuàng)建時間、修改人id、修改時間);
用戶信息表(用戶id、用戶名、密碼、昵稱、性別、聯(lián)系電話、郵箱、角色編碼、刪除標志位、創(chuàng)建人id、創(chuàng)建時間、修改人id、修改時間);
權限信息表(角色編碼、權限編碼)。
系統(tǒng)的E-R圖如圖4所示。
圖4 系統(tǒng)E-R圖
本文設計了一款在線影院購票系統(tǒng),能夠有效實現(xiàn)觀影者方便快捷地選購電影票的需要,節(jié)約排隊等候時間,提升影院服務質量,節(jié)約人力成本;還可以為影院提供了吸引客源的廣闊市場平臺。同時,使用Spring Security進行訪問權限控制,確保了系統(tǒng)的安全性能。