張 俐, 張維璽, 陸冰峰
(江蘇理工學(xué)院a.計(jì)算機(jī)工程學(xué)院;b.電氣信息工程學(xué)院,江蘇常州213001)
在線B2C充值卡銷售系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
張 俐a, 張維璽b, 陸冰峰a
(江蘇理工學(xué)院a.計(jì)算機(jī)工程學(xué)院;b.電氣信息工程學(xué)院,江蘇常州213001)
像充值卡這樣的卡片類商品,消費(fèi)者往往需要為了簡單的卡號(hào)與密碼跑去營業(yè)廳或商店,這將會(huì)浪費(fèi)人們大量的時(shí)間,給生活帶來了很大的不便。本文從電子商務(wù)應(yīng)用的角度出發(fā),并結(jié)合當(dāng)今充值卡銷售的業(yè)務(wù)流程,設(shè)計(jì)并開發(fā)了基于Struts+DAO工廠模式架構(gòu)開發(fā)的B2C充值卡銷售電子商務(wù)系統(tǒng),并對(duì)其關(guān)鍵技術(shù)進(jìn)行了探討。該系統(tǒng)有效地解決了傳統(tǒng)充值卡銷售帶來的弊端,節(jié)約銷售成本,提高顧客的生活效率,更好地提高企業(yè)市場競爭力。
B2C充值卡銷售系統(tǒng);Struts框架;DAO工廠模式
針對(duì)充值卡企業(yè)和客戶的實(shí)際需求,在對(duì)國內(nèi)外各種游戲卡代理商管理系統(tǒng)進(jìn)行充分調(diào)研和分析的基礎(chǔ)上,采用Struts+MySQL+DAO Factory技術(shù)[1-3]研究并實(shí)現(xiàn)了在線B2C充值卡銷售系統(tǒng)。在系統(tǒng)的實(shí)際運(yùn)行中達(dá)到了提高系統(tǒng)的可用性、安全性和可維護(hù)性,同時(shí)也實(shí)現(xiàn)了系統(tǒng)內(nèi)的高內(nèi)聚、低耦合效果。
1.1 Struts實(shí)現(xiàn)MVC
Struts[4]是Apache基金組織中Jakarta項(xiàng)目組的一個(gè)開源項(xiàng)目,主要實(shí)現(xiàn)了MVC設(shè)計(jì)模式,在Struts1中有自己的控制器(ActionServlet),同時(shí)也提供了各種常用的頁面標(biāo)簽以減少JSP頁面中scriptlet代碼。Struts實(shí)際上就屬于在傳統(tǒng)技術(shù)上發(fā)展起來的一種新的應(yīng)用模式,其操作的本質(zhì)依然是JSP、Servlert、JavaBean等技術(shù)的應(yīng)用。下面是Struts的詳細(xì)工作原理,見圖1。
1.2 統(tǒng)一建模語言(UML)
UML(Unified Modeling Language,UML)是一種可視化的面向?qū)ο竽P头治稣Z言。UML的目標(biāo)是:易于使用、表達(dá)能力強(qiáng)、可進(jìn)行可視化建模;與具體的實(shí)現(xiàn)無關(guān),可用于任何語言平臺(tái)和工具平臺(tái);為面向?qū)ο蟮脑O(shè)計(jì)與開發(fā)中涌現(xiàn)出高級(jí)概念,提供支持,強(qiáng)調(diào)組件重用;具有廣闊的適應(yīng)性和可用性,有利于面向?qū)ο蠊ぞ叩氖袌龀砷L。
圖1 Struts工作原理
本系統(tǒng)結(jié)合實(shí)際充值卡以及電子商務(wù)的特點(diǎn),為廣大通訊者們和網(wǎng)絡(luò)游戲愛好者提供了一種靈活方便的充值平臺(tái)[5-6]。其基本流程為注冊會(huì)員可以檢索商品、加入購物車進(jìn)行購物、進(jìn)行匯款、購物投訴;查詢購物記錄、匯款記錄、修改個(gè)人信息等。商城管理員可以對(duì)注冊用戶進(jìn)行審核、對(duì)每個(gè)用戶進(jìn)行角色分配、重要的是能進(jìn)行充值卡類型管理、商品上架、下架、審核用戶的匯款、發(fā)布網(wǎng)站公告,統(tǒng)計(jì)商品銷售量、瀏覽消費(fèi)者投訴以及修改本人資料等。銀行主要進(jìn)行用戶匯款金額的核算。其基本數(shù)據(jù)流圖如下圖2所示。
圖2 系統(tǒng)數(shù)據(jù)流圖
依據(jù)以上分析,本系統(tǒng)定義的數(shù)據(jù)庫中包含以下12個(gè)表:用戶信息表 (UserInfo)、用戶狀態(tài)(UserState)、角色信息表(RoleInfo)、卡片類型表(CardType)、卡片基本信息表(Card)、卡片狀態(tài)表(CardState)、購物車表(ShoppingCart)、購物歷史記錄表(ShopHistory)、匯款記錄表(PostHistory)、匯款審核狀態(tài)表(ApproveState)、系統(tǒng)公告表(News_以及投訴建議表(Advice),下面將詳細(xì)介紹系統(tǒng)功能并依據(jù)下面的分析得出具體E_R設(shè)計(jì)[7]。
2.1 登錄模塊
用戶(含會(huì)員和管理員)在審核后,并具備一定的權(quán)限,即可登錄系統(tǒng),行使本用戶的權(quán)限,本次過程需涉及以下3個(gè)表的信息:
(1)用戶表(UserInfo)。用于存儲(chǔ)會(huì)員和管理員登錄信息,包括登錄名、真實(shí)姓名、性別和登錄密碼等多個(gè)字段;
(2)角色信息表(RoleInfo)。用于存儲(chǔ)用戶表中存放的用戶的角色信息,包括角色名稱、角色描述、角色相應(yīng)的折扣價(jià);
(3)用戶狀態(tài)表(UserState)。用于存儲(chǔ)會(huì)員的狀態(tài)信息,只有被審核通過的用戶才能登陸系統(tǒng)進(jìn)行購物,包括狀態(tài)代號(hào)和狀態(tài)名稱。
2.2 充值卡信息模塊
只有當(dāng)管理員把相關(guān)充值卡信息上架后,才能供會(huì)員購買,本次過程需涉及以下3個(gè)表的信息:
(1)充值卡類型表(CardType)。用于存儲(chǔ)每種類型的充值卡信息,包括登類型Id、充值卡類型名稱、點(diǎn)卡價(jià)格和對(duì)應(yīng)存放的圖片地址;
(2)具體充值卡信息表(Card)。用于存放每張充值卡的具體信息,包括所屬類型、點(diǎn)卡賬號(hào)、點(diǎn)卡密碼、點(diǎn)卡描述、點(diǎn)卡上架時(shí)間以及點(diǎn)卡售出狀態(tài);
(3)卡片售出狀態(tài)表(CardState)。用于存儲(chǔ)充值卡的售出狀態(tài)信息,只有未被售出的充值卡才能被購買,包括狀態(tài)代號(hào)和狀態(tài)名稱。
2.3 購物模塊
每當(dāng)會(huì)員進(jìn)行購物時(shí),需先把充值卡加入自己的購物車,然后進(jìn)行付款,當(dāng)購物完成后,會(huì)產(chǎn)生本次的購物記錄,一次購物過程需涉及以下2個(gè)表的信息:
(1)購物車表(ShoppingCart)。用于存放每次購物單的相關(guān)信息,包括本次購物編號(hào)、當(dāng)前會(huì)員、充值卡所屬類型和購買的數(shù)量等;
(2)購物歷史記錄表(ShopHistory)。用于存儲(chǔ)每次購物完成后的記錄信息,包括本次購物編號(hào)、購買會(huì)員、點(diǎn)卡編號(hào)以及點(diǎn)卡售出時(shí)間。
2.4 匯款記錄模塊
每當(dāng)會(huì)員購物挑選完充值卡后,需進(jìn)行付款,付款完成后會(huì)產(chǎn)生本次匯款的記錄以便核對(duì),匯款記錄需涉及以下2個(gè)表的信息:
(1)匯款歷史記錄表(PostHistory)。用于存放每次匯款的記錄信息,包括本次匯款編號(hào)、匯款會(huì)員、匯款銀行、匯款金額、匯款時(shí)間、備注和匯款審核狀態(tài)等;
(2)匯款審核狀態(tài)表(ApproveState)。每次當(dāng)會(huì)員發(fā)出匯款請求后,只有當(dāng)商城管理員進(jìn)行核對(duì)完畢,代表確實(shí)已匯款,用于存儲(chǔ)匯款狀態(tài)信息,包括狀態(tài)代號(hào)和狀態(tài)名稱;
2.5 商城公告模塊
網(wǎng)站管理員在后臺(tái)發(fā)布公告,公告內(nèi)容顯示在前臺(tái),系統(tǒng)公告到數(shù)據(jù)中News表,該表用于存儲(chǔ)系統(tǒng)前臺(tái)新聞公告信息,包括編號(hào)、新聞標(biāo)題、新聞內(nèi)容、發(fā)布時(shí)間信息及發(fā)布狀態(tài)。
2.6 消費(fèi)投訴建議模塊
如果消費(fèi)者在購物過程中遇到問題或建議,可發(fā)表建議或投訴,以便商城管理員及時(shí)處理,投訴建議涉及數(shù)據(jù)庫中Advice表,該表用于存儲(chǔ)每條投訴建議信息,包括投訴編號(hào)、投訴用戶已經(jīng)投訴內(nèi)容等。
3.1 系統(tǒng)體系架構(gòu)設(shè)計(jì)
為實(shí)現(xiàn)基于B2C充值卡銷售電子商務(wù)系統(tǒng)[8-11],本系統(tǒng)以MVC設(shè)計(jì)模式為出發(fā)點(diǎn)??刂破鲗?采用Struts框架;模型層:采用JavaBean+JDBC技術(shù);視圖層:采用JSP技術(shù),并結(jié)合EL表達(dá)式 +Ajax技術(shù);業(yè)務(wù)層:采用DAO Factroy+DAO模式;數(shù)據(jù)庫層:采用MySQL5.0數(shù)據(jù)庫。同時(shí)選擇MyEclipse9,Tomcat6.0作為開發(fā)環(huán)境,利用Dreamweaver CS5和Photoshop CS進(jìn)行頁面設(shè)計(jì)。為了更清晰的表達(dá)這種層次關(guān)系,架構(gòu)示意圖3所示。具體描述如下以Struts為主導(dǎo),并整合JDBC,工廠設(shè)計(jì)模式,其目的就是為了體現(xiàn)出了嚴(yán)格的MVC設(shè)計(jì)模式的體系層次,并將業(yè)務(wù)規(guī)則及數(shù)據(jù)庫訪問等操作放置于中間層處理,客戶端不直接與數(shù)據(jù)庫交互,而是通過控制器與中間層建立連接,再由中間層與數(shù)據(jù)庫交互。
圖3 系統(tǒng)模型構(gòu)架圖
3.2 基于B2C的在線充值卡銷售系統(tǒng)的實(shí)現(xiàn)
由于Struts框架采用了基于MVC的設(shè)計(jì)模式,把頁面顯示、數(shù)據(jù)控制以及業(yè)務(wù)邏輯操作做了做了很好的分離,從而使得開發(fā)和維護(hù)都更加方便和合理。而對(duì)于基于B2C的在線充值卡銷售系統(tǒng)來說,各個(gè)模塊的構(gòu)造方法基本相同。下面以商城管理員模塊[12-14]為例,說明用Struts+jQuery+MySQL+DAO Factory技術(shù)實(shí)現(xiàn)基于B2C的在線充值卡銷售系統(tǒng)的開發(fā)過程。
3.2.1 商城管理員模塊用例設(shè)計(jì)
商城管理員模塊的作用主要為整個(gè)商城提供管理和維護(hù),包括用戶審核、匯款審核、用戶管理、角色管理、充值卡分類管理、點(diǎn)卡信息管理、前臺(tái)公告管理、銷量統(tǒng)計(jì)、投訴處理等。見圖4。
圖4 管理員用例圖
3.2.2 基于DAO工廠模式的設(shè)計(jì)與實(shí)現(xiàn)
DAO模塊[15]是Struts與JDBC互通互聯(lián)的橋梁。DAO工廠模式用來定義和創(chuàng)建DAO對(duì)象。用工廠來管理DAO接口及組件。它可以預(yù)防廣大用戶頻繁訪問數(shù)據(jù)庫而帶來的龐大的系統(tǒng)開銷,在這里我們的DAO工廠模式采用 Singlone方式來產(chǎn)生一個(gè)公用SysFactory類,并把該類放置在Business包中,該類只需實(shí)例化一次,這樣可以大大節(jié)省系統(tǒng)開銷。同時(shí),為了保持類與類之間的解耦關(guān)系,DAO工廠類通過讀取配置文件daoFactory.properties來降低了類與類之間的耦合度,同時(shí)通用過反射的方式即就是用 Class.forName(Stringstring)方法來創(chuàng)建對(duì)象。DAOFactory模式整合DAO類和DAO接口類見圖5。
圖5 DAO工廠模式整合類圖
3.2.3 JSP組件的設(shè)計(jì)與實(shí)現(xiàn)
JSP組件的主要功能是如何將數(shù)據(jù)顯示給用戶,在本系統(tǒng)中視圖部分主要是有Struts標(biāo)簽、Div、CSS樣式、HTML、JSP頁面以及formbean組成構(gòu)成的,這樣做的好處是可以避免在JSP頁面中直接將Java源代碼和HTML語句進(jìn)行耦合,同時(shí)增強(qiáng)JSP組件的重用性。從而大大簡化了頁面開發(fā),并便于后期測試和維護(hù)。
首先,使用Dreamweaver去創(chuàng)建具體的JSP頁面,他們是:1添加和修改充值卡的頁面addCard.jsp;2刪除某個(gè)具體商品的詳細(xì)信息的頁面delCard.jsp;3基于多少方式去查詢商品信息的searchCard.jsp頁面;以及總的維護(hù)商品信息的JSP頁面cardInfoMaint.jsp,它可以顯示所有商品的信息,并可以對(duì)所選擇的充值卡進(jìn)行增加、刪除、修改、編輯等操作。
最后,對(duì) CardFormbean進(jìn)行定義和描述。CardFormbean它繼承了Struts中的org.apache.struts.action.ActionForm這個(gè)類。該類得主要作用是頁面中收集數(shù)據(jù)或顯示數(shù)據(jù)。收集數(shù)據(jù)的作用是給Model組件提供業(yè)務(wù)模型;而顯示數(shù)據(jù)是將處理好的結(jié)果給客戶看的。
由于添加充值卡、上架、下架以及維護(hù)充值卡信息流程基本相似,我們以上架和下架為例,其序列如下圖6所示。
3.2.4 Controller組件的設(shè)計(jì)與實(shí)現(xiàn)
Controller組件是所有操作的核心,無論何時(shí),都由controller中的ActionServlet類進(jìn)行處理,它決定系統(tǒng)中各個(gè)模塊之間的流程關(guān)系。如何完成這些工作呢?首先,需要在Web.xml中注冊ActionServlet類和Struts-config.xml文件,Web.xml是描述Controller組件ActionServlet和struts-config.xml的地方,其中*.do表示請求映射的模式,具體配置如下:
圖6 上架/下架序列圖
其次,對(duì) struts-config.xml進(jìn)行配置,在 strutsconfig.xml文件中,主要是確定所有頁面的導(dǎo)航關(guān)系,它們之間的關(guān)系主要是通過ActionMapping、Action和ActionForm組件完成的,好處是使得開發(fā)簡便、維護(hù)成本低、流程清晰明了了。部分配置如下:
基于Struts+DAO工廠模式設(shè)計(jì)開發(fā)的B2C充值卡銷售電子商務(wù)系統(tǒng)通過實(shí)際試運(yùn)行,表現(xiàn)良好,具有高可擴(kuò)展性,高可靠性的特點(diǎn),證明了Struts+DAO工廠模式整合架構(gòu)是一個(gè)行之有效的輕量級(jí)JavaEE應(yīng)用系統(tǒng)解決方案。它充分滿足了在電子商務(wù)迅速發(fā)展的情況下,B2C充值卡銷售電子商務(wù)系統(tǒng)的能夠充分滿足了消費(fèi)者和企業(yè)的需求,使得消費(fèi)者購物更快捷、更節(jié)約時(shí)間,企業(yè)的管理更高效、更有序。從而使得基于Struts+DAO工廠模式架構(gòu)具有廣闊的應(yīng)用前景。
[1] Alan Shalloway,James R.Trott.熊節(jié)譯.設(shè)計(jì)模式精解[M].北京:清華大學(xué)出版社,2005:50-61,165-173,206-211.
[2] 張 俐,張維璽.Facade模式在數(shù)據(jù)持久層中的應(yīng)用[J].計(jì)算機(jī)工程與科學(xué),2011,33(10):105-110.
[3] 張 俐,張維璽.基于B_S的實(shí)驗(yàn)室信息系統(tǒng)的分析與設(shè)計(jì)[J].實(shí)驗(yàn)室研究與探索,2012,31(5):80-83.
[4] 孫衛(wèi)琴.精通Struts基于MVC的Java Web設(shè)計(jì)與開發(fā)[M].北京:電子工業(yè)出版社,2004.
[5] Deepak Alur.J2EE核心模式[M].牛志奇譯.北京:機(jī)械工業(yè)出版社,2003.
[6] 郭文生,杜軍平,尹怡欣.基于J2EE的旅游電子商務(wù)平臺(tái)的設(shè)計(jì)研究[J].計(jì)算機(jī)應(yīng)用與軟件,2007,24(2):118-120.
[7] 軒興濤.基于PowerDesigner模型驅(qū)動(dòng)機(jī)制下的全程建模研究[J].西安石油大學(xué)學(xué)報(bào)(自然科學(xué)版),2008,23(6):104-106.
[8] 張 俐,張維璽.基于JavaEE的固定資產(chǎn)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30(16):3797-3800.
[9] 郝應(yīng)光,于 慧,劉曉冰.基于CRM的面向鋼鐵行業(yè)的企業(yè)管理信息系統(tǒng)研究[J].計(jì)算機(jī)應(yīng)用研究,2004,21(11):75-77.
[10] 楊 栩,劉仍奎.基于客戶關(guān)系管理的快遞營銷管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].北京交通大學(xué)學(xué)報(bào),2006,30(3):27-30.
[11] 張 俐.基于MVC模式的分頁組件應(yīng)用[J].計(jì)算機(jī)工程,2011,37(21):255-257.
[12] 張 俐,張維璽.基于JavaEE的固定資產(chǎn)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30(16):3797-3800.
[13] 張 俐,張維璽.改進(jìn)的JDBC框架在數(shù)據(jù)持久層的應(yīng)用[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(8):1746-1749.
[14] 張 俐,張維璽.旅游電子商務(wù)系統(tǒng)的持久性框架設(shè)計(jì)與實(shí)現(xiàn)[J].武漢理工大學(xué)學(xué)報(bào),2010,32(24):113-117.
[15] Christian Bauer,Gavin King.Hibernate in Action[M].北京:人民郵電出版社,2008.
Design of a B2C Prepaid Card Marketing E-system
ZHANG lia, ZHANGWei-xib, LU Bing-fenga
(a.College of Computer Engineering;b.Electronic&Information Engineering Department,Jiangsu University of Technology,Changzhou 213001,China)
This paper,starting from the perspective of e-commerce application,and taking the business process of the prepaid card sale into consideration,intended to design and develop a B2C prepaid card marketing e-system based on the framework of Struts+DAO.It also discussed the key technology of the system.Practice shows that this system solves the problem of traditional prepaid card marketing,saved the marketing cost,raised the efficiency of consumers,and improved the competitiveness of the enterprise.
B2C prepaid card marketing E-system;struts framework; DAO factory model
TP 319
A
1006-7167(2013)07-0076-05
2012-10-12
江蘇省高校自然科學(xué)基礎(chǔ)研究基金資助項(xiàng)目(08KJD520005)
張 俐(1977-),男,碩士,副教授,陜西漢中人,主要研究領(lǐng)域?yàn)槠髽I(yè)建模和基于JavaEE的系統(tǒng)開發(fā)。
Tel.:13961123368;E-mail:zhangli_3913@163.com