梁錕, 鄧璞, 陳子楊, 周宇龍, 尚雪, 徐鑒
(哈爾濱商業(yè)大學(xué) 計算機與信息工程學(xué)院, 黑龍江 哈爾濱 150028)
隨著互聯(lián)網(wǎng)技術(shù)的迅速發(fā)展,禮儀文化也逐漸網(wǎng)絡(luò)化,人們挑選購買禮品也逐漸從線下購買轉(zhuǎn)向線上購買,但普通的電商平臺卻逐漸不能滿足人們挑選禮品的需求。而贈送禮品又是生活中比較重要的事情,人們常擔(dān)心送禮品不及時、不合適會影響感情,造成尷尬的局面,甚至引起損失。所以基于此情況,本研究應(yīng)用Java+MySQL開發(fā)技術(shù)設(shè)計了一個禮品代理平臺,以解決從挑選到贈送的一系列問題。用戶使用Web訪問服務(wù)器的方式,按照年齡、職業(yè)、性別、與用戶關(guān)系等篩選條件,通過大數(shù)據(jù)分析,挑選出合適的禮品,然后通過在線提交訂單,線下配送的方式送到收件人手中,從而解決挑選禮品難的問題。同時,禮品代理平臺會推出紀(jì)念日提醒服務(wù),用戶只需要輸入需要提醒的日期,在紀(jì)念日前系統(tǒng)將會通過發(fā)送短信、推送消息等形式進(jìn)行通知,以保證用戶在繁忙的生活中不會忘記紀(jì)念日。此外,禮品代理平臺還設(shè)置定制服務(wù),方便私人訂制或者企業(yè)定制。使收到禮品的人或者公司感受到送禮者的用心,以此滿足用戶的需求[1]。
國內(nèi)有很多禮品公司,發(fā)展到目前階段,禮品公司可以分為3種不同類型:第一種只做禮品的傳統(tǒng)形式的禮品公司;第二種是第一種的升級版,有積分及禮品冊,這種方式適合于員工福利類需求;第三種是由廣告公司牽頭所做的策劃、營銷、禮品的一條龍服務(wù),不適合日常生活需求。
國外網(wǎng)絡(luò)購物普遍運送費較高且用時較長,最優(yōu)選擇通常是自己在實體店購買。
國內(nèi)外禮品公司都普遍存在著以下幾點不足之處。
(1) 禮品價格過高,超出送禮者的預(yù)算。
(2) 運送不及時,容易造成一些損失。
(3) 運送過程中造成損壞,收禮者收到感觀不太好,而送禮者不知情,容易造成尷尬的局面。
(4) 沒有合適的送禮時間提醒,送禮者容易在忙碌的生活中忘記送禮。
(5) 匹配度不高且價格較昂貴,不適合日常送禮需求。
該系統(tǒng)的角色主要由管理員和用戶組成。管理員負(fù)責(zé)用戶的信息管理,如信息的更新刪除記錄等工作,用戶則按照自己的需求使用該系統(tǒng)。
用戶在注冊登錄后,填寫自己的相關(guān)信息。使用時將會對送禮對象的性別、年齡、職業(yè)、關(guān)系等進(jìn)行選擇。如果有特殊需求也可以進(jìn)行設(shè)置。系統(tǒng)則會根據(jù)其選擇進(jìn)行禮物的推薦和提供禮物的購買鏈接。其用例圖如圖1所示。
圖1 用戶用例圖
管理員有管理權(quán)限,能對用戶信息和禮品信息進(jìn)行更新、刪除、修改、管理第三方支付、進(jìn)行數(shù)據(jù)的統(tǒng)計和審核等。其用例圖如圖2所示。
圖2 管理員用例圖
(1) 易用性原則。方便客戶上網(wǎng)瀏覽和操作,最大限度地減輕后臺管理人員的負(fù)擔(dān),實現(xiàn)部分業(yè)務(wù)的自動化處理[2]。
(2) 安全性原則。系統(tǒng)采取全面的安全保護措施,具有防病毒感染、防黑客攻擊措施,同時在防雷擊、過載、斷電和人為破壞方面進(jìn)行加強,具有高度的安全性和保密性。對接入系統(tǒng)的設(shè)備和用戶,進(jìn)行嚴(yán)格的接入認(rèn)證,以保證接入的安全性。系統(tǒng)支持對關(guān)鍵設(shè)備、關(guān)鍵數(shù)據(jù)、關(guān)鍵程序模塊采取備份、冗余措施,有較強的容錯和系統(tǒng)恢復(fù)能力,確保系統(tǒng)長期正常運行。
(3) 業(yè)務(wù)完整性原則。對于業(yè)務(wù)進(jìn)行中的特殊情況能夠做出及時、正確的響應(yīng),保證業(yè)務(wù)數(shù)據(jù)的完整性。
(4) 業(yè)務(wù)規(guī)范化原則。在系統(tǒng)設(shè)計的同時,也為將來的業(yè)務(wù)流程制定了較為完善的規(guī)范,具有較強的實際操作性。
(5) 可擴展性原則。系統(tǒng)設(shè)計要考慮到業(yè)務(wù)未來發(fā)展的需要,要盡可能設(shè)計得簡明,各個功能模塊間的耦合度小,便于系統(tǒng)的擴展。如果存在舊有的數(shù)據(jù)庫系統(tǒng),則需要充分考慮兼容性。
(6) 開放性原則。系統(tǒng)設(shè)計遵循開放性原則,能夠支持多種硬件設(shè)備和網(wǎng)絡(luò)系統(tǒng),軟硬件支持二次開發(fā)。各系統(tǒng)采用標(biāo)準(zhǔn)數(shù)據(jù)接口,具有與其他信息系統(tǒng)進(jìn)行數(shù)據(jù)交換和數(shù)據(jù)共享的能力。
該系統(tǒng)完成了用戶注冊登錄模塊、商品檢索模塊、購物車模塊、個人信息模塊、訂單模塊、支付模塊和管理員模塊。
(1) 用戶注冊登錄模塊:當(dāng)用戶首次使用該系統(tǒng)時,為了更好地滿足用戶的需求,用戶需要注冊自己的信息。例如用戶名、密碼、性別、年齡等個人信息。
(2) 商品檢索模塊:當(dāng)用戶需要挑選禮物時,可根據(jù)平臺提供的年齡、關(guān)系、職業(yè)、性別、價格等選項,進(jìn)行商品檢索,挑選合適的禮品。
(3) 購物車模塊:當(dāng)用戶挑選出合適的禮品之后,可以將禮品放入購物車中,在購物車模塊進(jìn)行再次選擇或直接填寫相關(guān)要求下單購買。
(4) 個人信息模塊:在該模塊中,用戶可以查看、修改和刪除自己的個人信息。例如用戶名、密碼、性別、年齡、收貨地址等信息。
(5) 訂單模塊:在該模塊中,用戶可以查看所有的訂單信息。包括商品的價格、是否發(fā)貨情況和物流狀況等。
(6) 支付模塊:當(dāng)用戶決定下單購買禮品后,會出現(xiàn)該模塊。用戶可以選擇自己習(xí)慣的支付方式進(jìn)行支付。例如支付寶支付、微信支付或銀行卡支付等。
(7) 管理員模塊:在該模塊中,管理員可以對用戶和商家的信息進(jìn)行管理,例如更新、增加和修改信息等。同時也會對商品的信息進(jìn)行及時的管理,例如會對商品進(jìn)行上架、下架、修改。管理員也可以對首頁的廣告頁進(jìn)行操作,對訂單信息進(jìn)行查詢和修改等。
該系統(tǒng)采用B/S體系結(jié)構(gòu)。在軟件的通用性上,B/S 架構(gòu)的客戶端具有更好的通用性,對應(yīng)用環(huán)境的依賴性較小,同時因為客戶端使用瀏覽器,在開發(fā)維護上更加便利,可以減少系統(tǒng)開發(fā)和維護的成本,同時對系統(tǒng)的安全性更好[3]。采用C/S體系結(jié)構(gòu)方便管理員對服務(wù)器進(jìn)行維護和修改,形成“內(nèi)外有別”結(jié)構(gòu),如圖3所示。
圖3 系統(tǒng)體系結(jié)構(gòu)設(shè)計圖
3.4.1 前端設(shè)計
該平臺網(wǎng)頁前端使用HTML+CSS+JS技術(shù),禮品平臺頁面和管理系統(tǒng)頁面的樣式不一致,使用了Rapid-framework框架和多次使用include標(biāo)簽來實現(xiàn)頁面繼承(書寫模板頁),以減輕開發(fā),減少重復(fù)代碼。該平臺使用了表達(dá)式語言EL來簡化JSP表達(dá)。該項目中使用的是JSP標(biāo)準(zhǔn)標(biāo)簽庫(JavaScript Pages Standard Tag Library,JSTL),以解決遍歷Map或者集合。前臺邏輯是基于Jquer,編寫了許多Ajax邏輯。管理員后臺頁面是基于Bootstrap布局的,直接使用了Font-awesome的符號字體。
禮品查找時的分類界面,如圖4所示。
圖4 禮品查找時分類界面
3.4.2 后臺開發(fā)概要
該系統(tǒng)后臺是基于Java的SSM框架實現(xiàn)的,即Spring、SpringMVC、MyBatis。Spring是一個開源的框架,是由Apache公司開發(fā)的,Spring是為了簡化企業(yè)級應(yīng)用開發(fā)而生的。而SpringMVC是在Spring基礎(chǔ)上的MVC框架,支持注解,大大提高了易用性,對于Model層,分為POJO層和Mapper層。并且使用MBG(MyBatis Generator)配置生成,控制器分為Controller層和Service層。
該系統(tǒng)使用了MySQL數(shù)據(jù)庫進(jìn)行存儲。MySQL 是一種高性能、快速運行、非常易用、多線程、多用戶、開放源碼的關(guān)系數(shù)據(jù)庫管理系統(tǒng),建立在 B/S 架構(gòu)之上。MySQL 是一個關(guān)系數(shù)據(jù)庫管理系統(tǒng)。關(guān)系數(shù)據(jù)庫將數(shù)據(jù)存儲在不同的表中,類似于數(shù)據(jù)倉庫環(huán)境下的操作性數(shù)據(jù)存儲,這樣可以提高報表的抽取速度,提高系統(tǒng)的反應(yīng)時間[4]。一個禮品代理購買系統(tǒng),首先需要確認(rèn)的兩個實體是商品和用戶。一個用戶可以選擇多個商品,而一個商品也可以被多個用戶選擇購買,所以這就是多對多的關(guān)系。對于用戶的屬性可以模擬出用戶編碼、姓名、電話、郵箱等屬性,方便用戶、管理員管理信息。其中用戶編碼適合作為用戶關(guān)系的唯一標(biāo)識符。為了更好地方便用戶挑選商品,對于商品這個實體,通過不同的篩選條件進(jìn)行不斷的分類。方便用戶對不同的職業(yè)、年齡、關(guān)系、性別、價格、用途的商品進(jìn)行挑選,因此關(guān)系模式的設(shè)置需要設(shè)置這些選擇屬性。同時為了方便用戶使用,還有商品訂單、對應(yīng)圖片、地區(qū)表等設(shè)置。
3.5.1 數(shù)據(jù)庫配置
該系統(tǒng)采用MyBatis進(jìn)行和數(shù)據(jù)庫交互。MyBatis 是一個基于 Java 的持久層框架。MyBatis 提供的持久層框架包括 SQL Maps 和 Data Access Objects(DAO),它消除了幾乎所有的 JDBC 代碼和參數(shù)的手工設(shè)置以及結(jié)果集的檢索。MyBatis 使用簡單的 XML 或注解用于配置和原始映射,將接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java 對象)映射成數(shù)據(jù)庫中的記錄。它的優(yōu)勢是小巧、方便、高效、簡單、直接、半自動化。非常適合在此應(yīng)用,以下是部分代碼。
1.maven引入mybatis依賴 (pom.xml)
2. 數(shù)據(jù)庫連接池配置
3.配置mapper接口。
3.5.2 數(shù)據(jù)庫模型結(jié)構(gòu)
滿足項目需求而設(shè)計的數(shù)據(jù)庫實體關(guān)系圖,如圖5所示。
圖5 數(shù)據(jù)庫實體關(guān)系圖
整個數(shù)據(jù)庫的表大致分為產(chǎn)品(禮品)類、賬戶類和其他類。
產(chǎn)品類是由Product表為源頭衍生出的幾個相關(guān)表,諸如表示屬性的Property表,表示分類的Category表,表示屬性標(biāo)簽的Label表,表示訂單的Order表,表示購物車的Product_item表,表示收藏夾的Collection_item表。
賬戶類包括普通用戶User表和管理員賬戶Administrator表。
其他類包括了前臺廣告Scroll_ad表和表示地理位置的Administrator_area表。一般和數(shù)據(jù)庫內(nèi)其他表的聯(lián)系不大(無引用關(guān)系)。
3.5.3 數(shù)據(jù)庫特點
(1) 數(shù)據(jù)庫安全性。通過用戶權(quán)限定義和合法權(quán)檢查確保只有合法權(quán)限的管理員才能訪問數(shù)據(jù)庫,例如創(chuàng)建新的表和視圖、查看表中信息、刪除無效信息等。而普通用戶只能查詢修改自己的個人信息。系統(tǒng)提供一定的方式讓用戶標(biāo)記自己的身份信息,每次用戶進(jìn)入系統(tǒng)時,由系統(tǒng)進(jìn)行核對后才能進(jìn)入系統(tǒng)。對存儲和傳輸?shù)臄?shù)據(jù)進(jìn)行加密處理,從而使不知道解密算法的人無法獲取數(shù)據(jù)的內(nèi)容[5]。
(2) 數(shù)據(jù)庫完整性。數(shù)據(jù)庫完整性是指數(shù)據(jù)在邏輯上的一致性、正確性、有效性和相容性。該系統(tǒng)數(shù)據(jù)庫的數(shù)據(jù)是符合現(xiàn)實世界語義、反映實際情況的,且有數(shù)據(jù)庫完整性約束的設(shè)計[6]。
(3) 數(shù)據(jù)庫規(guī)范性。實現(xiàn)了更好、更快、更強的搜索功能,通過數(shù)據(jù)庫規(guī)范化,數(shù)據(jù)完整性也可以改善,因為它把所有數(shù)據(jù)分成單獨的實體,并用關(guān)聯(lián)數(shù)據(jù)在實體間建立強連接[7]。
平臺在測試階段,在某學(xué)院隨機選取150名同學(xué)進(jìn)行測試使用。在使用過程中,同學(xué)們對其感觀良好,認(rèn)為較為方便,解決了他們?nèi)粘L暨x禮物的煩惱。
經(jīng)過6月份到11月份的測試階段,平臺的電子產(chǎn)品銷量件數(shù)分別為13,7,14,12,8,9;實用商品銷量件數(shù)分別為19,13,21,22,16,19;裝飾品銷量件數(shù)分別為23,10,26,28,10,12;食品銷量件數(shù)分別為20,11,22,26,10,11。每個月份綜合評價分為4.0,4.1,3.9,4.3,4.1,4.2。圖6是它們的直方圖表示。
由此可見,該平臺測試階段的反應(yīng)較為良好,在節(jié)假日時期銷量呈逐步上升的趨勢。
根據(jù)系統(tǒng)的后臺數(shù)據(jù)表明,該平臺測試階段的各項指標(biāo)如表1所示,該平臺得到了測試用戶的廣泛關(guān)注和應(yīng)用。
表1 測試階段平臺的各項指標(biāo)
同時通過問卷調(diào)查的方式,得出數(shù)據(jù)表明,80%的同學(xué)對該平臺推薦的禮物表示滿意;76%的同學(xué)表示如果平臺上線,將繼續(xù)在此平臺進(jìn)行購買;90%的同學(xué)表示會對此平臺持續(xù)關(guān)注。由此發(fā)現(xiàn),大家對此平臺比較感興趣,并且希望其作用范圍更大。
本研究組通過對社會禮物購買者的研究分析,研究了由Java和MySQL開發(fā)的禮品代理平臺,根據(jù)篩選條件和大數(shù)據(jù)分析,挑選出合適的禮品,有效解決了挑選禮品難的問題,推動了禮品代理平臺的實現(xiàn)發(fā)展。與此同時,在經(jīng)過測試階段后,篩選和推薦禮品的算法尚存在檢索速度慢,方案不合理的情況。此外,禮品代理平臺如何進(jìn)行推廣應(yīng)用,如何應(yīng)對在大流量沖擊下的系統(tǒng)安全保護是一個問題。在平臺的運行過程中,將繼續(xù)完善該平臺,以更完善的功能服務(wù)于當(dāng)代消費者。