張 俐, 張維璽, 陸冰峰
(江蘇理工學院a.計算機工程學院;b.電氣信息工程學院,江蘇常州213001)
在線B2C充值卡銷售系統設計與實現
張 俐a, 張維璽b, 陸冰峰a
(江蘇理工學院a.計算機工程學院;b.電氣信息工程學院,江蘇常州213001)
像充值卡這樣的卡片類商品,消費者往往需要為了簡單的卡號與密碼跑去營業廳或商店,這將會浪費人們大量的時間,給生活帶來了很大的不便。本文從電子商務應用的角度出發,并結合當今充值卡銷售的業務流程,設計并開發了基于Struts+DAO工廠模式架構開發的B2C充值卡銷售電子商務系統,并對其關鍵技術進行了探討。該系統有效地解決了傳統充值卡銷售帶來的弊端,節約銷售成本,提高顧客的生活效率,更好地提高企業市場競爭力。
B2C充值卡銷售系統;Struts框架;DAO工廠模式
針對充值卡企業和客戶的實際需求,在對國內外各種游戲卡代理商管理系統進行充分調研和分析的基礎上,采用Struts+MySQL+DAO Factory技術[1-3]研究并實現了在線B2C充值卡銷售系統。在系統的實際運行中達到了提高系統的可用性、安全性和可維護性,同時也實現了系統內的高內聚、低耦合效果。
1.1 Struts實現MVC
Struts[4]是Apache基金組織中Jakarta項目組的一個開源項目,主要實現了MVC設計模式,在Struts1中有自己的控制器(ActionServlet),同時也提供了各種常用的頁面標簽以減少JSP頁面中scriptlet代碼。Struts實際上就屬于在傳統技術上發展起來的一種新的應用模式,其操作的本質依然是JSP、Servlert、JavaBean等技術的應用。下面是Struts的詳細工作原理,見圖1。
1.2 統一建模語言(UML)
UML(Unified Modeling Language,UML)是一種可視化的面向對象模型分析語言。UML的目標是:易于使用、表達能力強、可進行可視化建模;與具體的實現無關,可用于任何語言平臺和工具平臺;為面向對象的設計與開發中涌現出高級概念,提供支持,強調組件重用;具有廣闊的適應性和可用性,有利于面向對象工具的市場成長。

圖1 Struts工作原理
本系統結合實際充值卡以及電子商務的特點,為廣大通訊者們和網絡游戲愛好者提供了一種靈活方便的充值平臺[5-6]。其基本流程為注冊會員可以檢索商品、加入購物車進行購物、進行匯款、購物投訴;查詢購物記錄、匯款記錄、修改個人信息等。商城管理員可以對注冊用戶進行審核、對每個用戶進行角色分配、重要的是能進行充值卡類型管理、商品上架、下架、審核用戶的匯款、發布網站公告,統計商品銷售量、瀏覽消費者投訴以及修改本人資料等。銀行主要進行用戶匯款金額的核算。其基本數據流圖如下圖2所示。

圖2 系統數據流圖
依據以上分析,本系統定義的數據庫中包含以下12個表:用戶信息表 (UserInfo)、用戶狀態(UserState)、角色信息表(RoleInfo)、卡片類型表(CardType)、卡片基本信息表(Card)、卡片狀態表(CardState)、購物車表(ShoppingCart)、購物歷史記錄表(ShopHistory)、匯款記錄表(PostHistory)、匯款審核狀態表(ApproveState)、系統公告表(News_以及投訴建議表(Advice),下面將詳細介紹系統功能并依據下面的分析得出具體E_R設計[7]。
2.1 登錄模塊
用戶(含會員和管理員)在審核后,并具備一定的權限,即可登錄系統,行使本用戶的權限,本次過程需涉及以下3個表的信息:
(1)用戶表(UserInfo)。用于存儲會員和管理員登錄信息,包括登錄名、真實姓名、性別和登錄密碼等多個字段;
(2)角色信息表(RoleInfo)。用于存儲用戶表中存放的用戶的角色信息,包括角色名稱、角色描述、角色相應的折扣價;
(3)用戶狀態表(UserState)。用于存儲會員的狀態信息,只有被審核通過的用戶才能登陸系統進行購物,包括狀態代號和狀態名稱。
2.2 充值卡信息模塊
只有當管理員把相關充值卡信息上架后,才能供會員購買,本次過程需涉及以下3個表的信息:
(1)充值卡類型表(CardType)。用于存儲每種類型的充值卡信息,包括登類型Id、充值卡類型名稱、點卡價格和對應存放的圖片地址;
(2)具體充值卡信息表(Card)。用于存放每張充值卡的具體信息,包括所屬類型、點卡賬號、點卡密碼、點卡描述、點卡上架時間以及點卡售出狀態;
(3)卡片售出狀態表(CardState)。用于存儲充值卡的售出狀態信息,只有未被售出的充值卡才能被購買,包括狀態代號和狀態名稱。
2.3 購物模塊
每當會員進行購物時,需先把充值卡加入自己的購物車,然后進行付款,當購物完成后,會產生本次的購物記錄,一次購物過程需涉及以下2個表的信息:
(1)購物車表(ShoppingCart)。用于存放每次購物單的相關信息,包括本次購物編號、當前會員、充值卡所屬類型和購買的數量等;
(2)購物歷史記錄表(ShopHistory)。用于存儲每次購物完成后的記錄信息,包括本次購物編號、購買會員、點卡編號以及點卡售出時間。
2.4 匯款記錄模塊
每當會員購物挑選完充值卡后,需進行付款,付款完成后會產生本次匯款的記錄以便核對,匯款記錄需涉及以下2個表的信息:
(1)匯款歷史記錄表(PostHistory)。用于存放每次匯款的記錄信息,包括本次匯款編號、匯款會員、匯款銀行、匯款金額、匯款時間、備注和匯款審核狀態等;
(2)匯款審核狀態表(ApproveState)。每次當會員發出匯款請求后,只有當商城管理員進行核對完畢,代表確實已匯款,用于存儲匯款狀態信息,包括狀態代號和狀態名稱;
2.5 商城公告模塊
網站管理員在后臺發布公告,公告內容顯示在前臺,系統公告到數據中News表,該表用于存儲系統前臺新聞公告信息,包括編號、新聞標題、新聞內容、發布時間信息及發布狀態。
2.6 消費投訴建議模塊
如果消費者在購物過程中遇到問題或建議,可發表建議或投訴,以便商城管理員及時處理,投訴建議涉及數據庫中Advice表,該表用于存儲每條投訴建議信息,包括投訴編號、投訴用戶已經投訴內容等。
3.1 系統體系架構設計
為實現基于B2C充值卡銷售電子商務系統[8-11],本系統以MVC設計模式為出發點。控制器層:采用Struts框架;模型層:采用JavaBean+JDBC技術;視圖層:采用JSP技術,并結合EL表達式 +Ajax技術;業務層:采用DAO Factroy+DAO模式;數據庫層:采用MySQL5.0數據庫。同時選擇MyEclipse9,Tomcat6.0作為開發環境,利用Dreamweaver CS5和Photoshop CS進行頁面設計。為了更清晰的表達這種層次關系,架構示意圖3所示。具體描述如下以Struts為主導,并整合JDBC,工廠設計模式,其目的就是為了體現出了嚴格的MVC設計模式的體系層次,并將業務規則及數據庫訪問等操作放置于中間層處理,客戶端不直接與數據庫交互,而是通過控制器與中間層建立連接,再由中間層與數據庫交互。

圖3 系統模型構架圖
3.2 基于B2C的在線充值卡銷售系統的實現
由于Struts框架采用了基于MVC的設計模式,把頁面顯示、數據控制以及業務邏輯操作做了做了很好的分離,從而使得開發和維護都更加方便和合理。而對于基于B2C的在線充值卡銷售系統來說,各個模塊的構造方法基本相同。下面以商城管理員模塊[12-14]為例,說明用Struts+jQuery+MySQL+DAO Factory技術實現基于B2C的在線充值卡銷售系統的開發過程。
3.2.1 商城管理員模塊用例設計
商城管理員模塊的作用主要為整個商城提供管理和維護,包括用戶審核、匯款審核、用戶管理、角色管理、充值卡分類管理、點卡信息管理、前臺公告管理、銷量統計、投訴處理等。見圖4。

圖4 管理員用例圖
3.2.2 基于DAO工廠模式的設計與實現
DAO模塊[15]是Struts與JDBC互通互聯的橋梁。DAO工廠模式用來定義和創建DAO對象。用工廠來管理DAO接口及組件。它可以預防廣大用戶頻繁訪問數據庫而帶來的龐大的系統開銷,在這里我們的DAO工廠模式采用 Singlone方式來產生一個公用SysFactory類,并把該類放置在Business包中,該類只需實例化一次,這樣可以大大節省系統開銷。同時,為了保持類與類之間的解耦關系,DAO工廠類通過讀取配置文件daoFactory.properties來降低了類與類之間的耦合度,同時通用過反射的方式即就是用 Class.forName(Stringstring)方法來創建對象。DAOFactory模式整合DAO類和DAO接口類見圖5。

圖5 DAO工廠模式整合類圖
3.2.3 JSP組件的設計與實現
JSP組件的主要功能是如何將數據顯示給用戶,在本系統中視圖部分主要是有Struts標簽、Div、CSS樣式、HTML、JSP頁面以及formbean組成構成的,這樣做的好處是可以避免在JSP頁面中直接將Java源代碼和HTML語句進行耦合,同時增強JSP組件的重用性。從而大大簡化了頁面開發,并便于后期測試和維護。
首先,使用Dreamweaver去創建具體的JSP頁面,他們是:1添加和修改充值卡的頁面addCard.jsp;2刪除某個具體商品的詳細信息的頁面delCard.jsp;3基于多少方式去查詢商品信息的searchCard.jsp頁面;以及總的維護商品信息的JSP頁面cardInfoMaint.jsp,它可以顯示所有商品的信息,并可以對所選擇的充值卡進行增加、刪除、修改、編輯等操作。
最后,對 CardFormbean進行定義和描述。CardFormbean它繼承了Struts中的org.apache.struts.action.ActionForm這個類。該類得主要作用是頁面中收集數據或顯示數據。收集數據的作用是給Model組件提供業務模型;而顯示數據是將處理好的結果給客戶看的。
由于添加充值卡、上架、下架以及維護充值卡信息流程基本相似,我們以上架和下架為例,其序列如下圖6所示。
3.2.4 Controller組件的設計與實現
Controller組件是所有操作的核心,無論何時,都由controller中的ActionServlet類進行處理,它決定系統中各個模塊之間的流程關系。如何完成這些工作呢?首先,需要在Web.xml中注冊ActionServlet類和Struts-config.xml文件,Web.xml是描述Controller組件ActionServlet和struts-config.xml的地方,其中*.do表示請求映射的模式,具體配置如下:


圖6 上架/下架序列圖

其次,對 struts-config.xml進行配置,在 strutsconfig.xml文件中,主要是確定所有頁面的導航關系,它們之間的關系主要是通過ActionMapping、Action和ActionForm組件完成的,好處是使得開發簡便、維護成本低、流程清晰明了了。部分配置如下:

基于Struts+DAO工廠模式設計開發的B2C充值卡銷售電子商務系統通過實際試運行,表現良好,具有高可擴展性,高可靠性的特點,證明了Struts+DAO工廠模式整合架構是一個行之有效的輕量級JavaEE應用系統解決方案。它充分滿足了在電子商務迅速發展的情況下,B2C充值卡銷售電子商務系統的能夠充分滿足了消費者和企業的需求,使得消費者購物更快捷、更節約時間,企業的管理更高效、更有序。從而使得基于Struts+DAO工廠模式架構具有廣闊的應用前景。
[1] Alan Shalloway,James R.Trott.熊節譯.設計模式精解[M].北京:清華大學出版社,2005:50-61,165-173,206-211.
[2] 張 俐,張維璽.Facade模式在數據持久層中的應用[J].計算機工程與科學,2011,33(10):105-110.
[3] 張 俐,張維璽.基于B_S的實驗室信息系統的分析與設計[J].實驗室研究與探索,2012,31(5):80-83.
[4] 孫衛琴.精通Struts基于MVC的Java Web設計與開發[M].北京:電子工業出版社,2004.
[5] Deepak Alur.J2EE核心模式[M].牛志奇譯.北京:機械工業出版社,2003.
[6] 郭文生,杜軍平,尹怡欣.基于J2EE的旅游電子商務平臺的設計研究[J].計算機應用與軟件,2007,24(2):118-120.
[7] 軒興濤.基于PowerDesigner模型驅動機制下的全程建模研究[J].西安石油大學學報(自然科學版),2008,23(6):104-106.
[8] 張 俐,張維璽.基于JavaEE的固定資產管理系統的設計與實現[J].計算機工程與設計,2009,30(16):3797-3800.
[9] 郝應光,于 慧,劉曉冰.基于CRM的面向鋼鐵行業的企業管理信息系統研究[J].計算機應用研究,2004,21(11):75-77.
[10] 楊 栩,劉仍奎.基于客戶關系管理的快遞營銷管理系統設計與實現[J].北京交通大學學報,2006,30(3):27-30.
[11] 張 俐.基于MVC模式的分頁組件應用[J].計算機工程,2011,37(21):255-257.
[12] 張 俐,張維璽.基于JavaEE的固定資產管理系統的設計與實現[J].計算機工程與設計,2009,30(16):3797-3800.
[13] 張 俐,張維璽.改進的JDBC框架在數據持久層的應用[J].計算機工程與設計,2010,31(8):1746-1749.
[14] 張 俐,張維璽.旅游電子商務系統的持久性框架設計與實現[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
江蘇省高校自然科學基礎研究基金資助項目(08KJD520005)
張 俐(1977-),男,碩士,副教授,陜西漢中人,主要研究領域為企業建模和基于JavaEE的系統開發。
Tel.:13961123368;E-mail:zhangli_3913@163.com