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