《快樂買網(wǎng)上商城詳細設(shè)計說明書詳細設(shè)計說明書.docx》由會員分享,可在線閱讀,更多相關(guān)《快樂買網(wǎng)上商城詳細設(shè)計說明書詳細設(shè)計說明書.docx(31頁珍藏版)》請在裝配圖網(wǎng)上搜索。
快樂買網(wǎng)上商城詳細設(shè)計說明書
0. 導言
0.1 目的
本文檔的目的是描述快樂買網(wǎng)上商城項目的詳細設(shè)計,其主要內(nèi)容包括:
? 系統(tǒng)功能簡介
? 系統(tǒng)詳細設(shè)計簡述
? 在SSH框架下各個模塊的分層結(jié)構(gòu)
本文檔的預(yù)期讀者是:
? 設(shè)計人員
? 開發(fā)人員
? 項目管理人員
? 測試人員
0.2 范圍
該文檔定義了系統(tǒng)的各個模塊和模塊接口,但未確定單元的具體實現(xiàn),這部分內(nèi)容將在編碼實現(xiàn)中確定。
0.3 引用標準
[1] 《企業(yè)文檔格式標準》V1.1, XXX軟件有限公司。
[2] 《軟件詳細設(shè)計報告格式標準》V1.1,XXX軟件有限公司軟件工程過程化組織
0.4 參考資料
[1] 《實戰(zhàn)Struts》,Ted Husted,機械工業(yè)出版社
[2] 《Spring Live》,Matt Raible,
0.5 版本更新信息
本文檔版本更新記錄如表C-1所示:
表C-1 版本更新記錄
修改編號
修改日期
修改后版本
修改位置
修改內(nèi)容概述
000
2015-2-18
0.1
全部
初始發(fā)布版本
1. 系統(tǒng)設(shè)計概述
根據(jù)快樂買網(wǎng)上商城系統(tǒng)的概要設(shè)計,系統(tǒng)分前臺業(yè)務(wù)和后臺業(yè)務(wù),
前臺業(yè)務(wù)是針對終端用戶使用,用戶注冊成網(wǎng)站會員后可以瀏覽商品,選購商品,秒殺商品等。訪問個人中心還可以管理個人信息,購物車和訂單。其功能模塊如下圖所示:
后臺業(yè)務(wù)是針對管理員用戶使用,管理員登錄后臺系統(tǒng)后可以對系統(tǒng)基本資料進行管理,如商品管理,用戶管理,管理員賬戶管理,訂單管理,評價管理等。其功能模塊如下圖所示:
2. 詳細設(shè)計概述
本系統(tǒng)采用了SSH框架體系結(jié)構(gòu)的設(shè)計,在整個開發(fā)過程中,盡可能采用復(fù)用的原則,例如使用工廠模式,JAVA反射機制達到統(tǒng)一數(shù)據(jù)庫操作,統(tǒng)一結(jié)果顯示等。
本文檔的詳細設(shè)計主要是按照SSH框架對視圖層JSP、控制器Struts、業(yè)務(wù)層Spring和持久層Hibernate進行約定,為下一步的編碼提供基礎(chǔ)。
3. 詳細設(shè)計
系統(tǒng)前臺業(yè)務(wù)實現(xiàn)
3.1用戶注冊模塊
用戶注冊模塊負責前臺用戶成為網(wǎng)站會員,注冊成功的用戶信息添加到users表中
3.1.1 實現(xiàn)流程圖
3.1.2 輸入輸出規(guī)則
用戶注冊模塊輸入輸出規(guī)則
模塊名稱
用戶注冊
功能描述
用戶注冊成功后允許登錄系統(tǒng)并享有注冊用戶的權(quán)限
用戶角色
游客
模塊觸發(fā)條件
打開首頁選擇“立即注冊”
輸入規(guī)則
輸入用戶基本信息。要求符合格式,另外賬號不能重復(fù),郵箱不能重復(fù)
輸出結(jié)果
注冊成功后打開登錄界面
關(guān)鍵算法
1.查詢數(shù)據(jù)中是否存在相同的賬號和郵箱
2.格式驗證
3.驗證碼的生成和驗證
數(shù)據(jù)庫操作
查詢用戶表,增加用戶信息
3.1.3視圖層、Action、業(yè)務(wù)層、數(shù)據(jù)持久層的說明
視圖
Action/Servlet
業(yè)務(wù)層(biz)
數(shù)據(jù)持久層(dao)
register.jsp
index.jsp
header.jsp
footer.jsp
UserAction.java
ValidateCodeServlet.java
IUserBiz.java
UserBizImpl.java
IUserDao.java
UserDaoImpl.java
視圖層頁面設(shè)計
界面
JSP
功能描述
注冊界面
register.jsp
登錄主頁面
首頁
index.jsp
前臺首頁面,包括header.jsp和footer.jsp,是為了網(wǎng)站統(tǒng)一風格
頁面上端
header.jsp
復(fù)用頁面,記載用戶登錄信息及個人信息維護菜單以及網(wǎng)站Logo等信息
頁面尾端
footer.jsp
復(fù)用頁面,顯示廣告及友情鏈接信息
Action/Servlet設(shè)計
Action/Servlet
入口
方法
出口
UserAction
register.jsp
execute() ()
成功:login.jsp
失敗:register.jsp
ValidateCodeServlet
register.jsp
doPost()
輸出驗證碼
業(yè)務(wù)層設(shè)計
業(yè)務(wù)接口
本模塊業(yè)務(wù)方法
方法說明
IUserBiz.java
public void saveUser(Users user);
接收用戶對象,將用戶對象信息保存到數(shù)據(jù)庫
UserBizImpl.java
public void saveUser(Users user)
寫具體的HQL語句,調(diào)用Dao層方法
數(shù)據(jù)持久層設(shè)計
持久層接口
基類接口
接口說明
IUserDao.java
IGenericDao
基類接口應(yīng)用泛型和反射機制,對數(shù)據(jù)的操作進行統(tǒng)一處理,無需各持久層接口設(shè)計方法。
UserDaoImpl
IUserDao
AGenericHibernateDao
UserDaoImpl繼承AgenericHibernateDao類,實現(xiàn)IUserDao接口
3.1.4 功能實現(xiàn)時序圖
3.2 用戶登錄模塊
用戶登錄是針對已注冊的用戶,登錄成功后,注冊用戶獲得購物交易的相應(yīng)權(quán)限。
3.2.1 實現(xiàn)流程圖
3.2.2 輸入輸出規(guī)則
登錄模塊輸入輸出規(guī)則
模塊名稱
登錄
功能描述
用戶登錄系統(tǒng)以達到注冊用戶的系統(tǒng)權(quán)限
用戶角色
注冊用戶
模塊觸發(fā)條件
直接選擇登錄或在將商品加入購物車時轉(zhuǎn)向登錄
輸入規(guī)則
按照注冊時輸入的用戶名和密碼及隨機驗證碼??梢赃x擇兩周內(nèi)自動登錄,則用戶名和密碼將存入cookie;如果不選將用戶對象存入session
輸出結(jié)果
登錄成功后打開首頁,登錄用戶信息存放在cookie中或者是session中,用戶可以進行購買商品或?qū)ψ约旱男畔⑦M行維護。
關(guān)鍵算法
1.查詢數(shù)據(jù)庫中用戶名和密碼
2.驗證碼的生成和驗證
3.兩周內(nèi)自動登錄的選擇
4.根據(jù)用戶ID獲得用戶默認收貨地址
數(shù)據(jù)庫操作
查詢用戶表
3.2.3視圖層、Action、業(yè)務(wù)層、數(shù)據(jù)持久層的說明
視圖
Action/Servlet
業(yè)務(wù)層(biz)
數(shù)據(jù)持久層(dao)
login.jsp
index.jsp
header.jsp
footer.jsp
UserAction.java
ValidateCodeServlet.java
IUserBiz.java
UserBizImpl.java
IReceiverBiz.java
RecieverBizImpl.java
IUserDao.java
UserDaoImpl.java
IReceiverDao.java
RecieverDaoImpl.java
視圖層頁面設(shè)計
界面
JSP
功能描述
登錄界面
login.jsp
登錄主頁面
首頁
index.jsp
前臺首頁面,包括header.jsp和footer.jsp,是為了網(wǎng)站統(tǒng)一風格
頁面上端
header.jsp
復(fù)用頁面,記載用戶登錄信息及個人信息維護菜單以及網(wǎng)站Logo等信息
頁面尾端
footer.jsp
復(fù)用頁面,顯示廣告及友情鏈接信息
Action/Servlet設(shè)計
Action/Servlet
入口
方法
出口
UserAction
login.jsp
UserLogin()
成功:index.jsp
失?。簂ogin.jsp
ValidateCodeServlet
login.jsp
doPost()
輸出驗證碼
業(yè)務(wù)層設(shè)計
業(yè)務(wù)接口
本模塊業(yè)務(wù)方法
方法說明
IUserBiz.java
public Users CheckLogin(final String username,final String password);
接收用戶名和密碼查詢數(shù)據(jù)庫返回Users對象
UserBizImpl.java
public Users CheckLogin(final String username,final String password);
寫具體的HQL語句,調(diào)用數(shù)據(jù)持久層方法
數(shù)據(jù)持久層設(shè)計
持久層接口
基類接口
接口說明
IUserDao.java
IGenericDao
基類接口應(yīng)用泛型和反射機制,對數(shù)據(jù)的操作進行統(tǒng)一處理,無需各持久層接口設(shè)計方法。
UserDaoImpl.java
IUserDao
AGenericHibernateDao
UserDaoImpl繼承AgenericHibernateDao類,實現(xiàn)IUserDao接口
3.2.4 功能實現(xiàn)時序圖
3.3 商品搜索-品牌檢索
用戶可以根據(jù)網(wǎng)站列出的鞋子品牌、款式進行快速搜索鞋子。還可以根據(jù)商品名字進行模糊搜素。另外可以根據(jù)尺碼、版型、顏色、品牌進行綜合搜索。搜索到的鞋子以列表形式分頁顯示,可以對兩個及兩個以上鞋子進行對比,可以查看某個鞋子的詳細信息。
本環(huán)節(jié)首先說明品牌搜索實現(xiàn)過程
3.3.1 品牌搜索實現(xiàn)流程圖
3.3.2 品牌搜索輸入輸出規(guī)則
商品品牌搜索顯示輸入輸出規(guī)則
模塊名稱
商品品牌搜索顯示
功能描述
根據(jù)商品品牌搜索鞋子
用戶角色
注冊用戶或游客
模塊觸發(fā)條件
打開網(wǎng)站首頁
輸入規(guī)則
用鼠標單擊品牌鏈接
輸出結(jié)果
顯示同一品牌的所有鞋子列表
關(guān)鍵算法
1.品牌列表鏈接具備性別和品牌名稱參數(shù)
2.Action中獲取到性別及品牌名稱,根據(jù)性別和品牌名稱查找Shoes表
數(shù)據(jù)庫操作
查詢brands表和shoes表
3.3.3視圖層、Action、業(yè)務(wù)層、數(shù)據(jù)持久層的說明
視圖
Action/Servlet
業(yè)務(wù)層(biz)
數(shù)據(jù)持久層(dao)
left_menu.jsp
search.jsp
ShoesAction.java
IShoesBiz.java
ShoesBizImpl.java
IShoesDao.java
ShoesDaoImpl.java
視圖層頁面設(shè)計
界面
JSP
功能描述
首頁左側(cè)品牌導航頁面
left_menu.jsp
列出品牌,款式及定制鏈接
搜索結(jié)果頁面
Search.jsp,其中包含search_result.jsp
根據(jù)前置條件將搜索結(jié)果列表顯示
Action/Servlet設(shè)計
Action/Servlet
入口
方法
出口
ShoesAction
left_menu.jsp
SearchShoesByGenderBrand()
search_result.jsp
業(yè)務(wù)層設(shè)計
業(yè)務(wù)接口
本模塊業(yè)務(wù)方法
方法說明
IShoesBiz.java
public PageBean SearchShoesByGenderBrand(final String brandName,final String gender,final int currentPage,final int pageSize)
根據(jù)品牌名字,性別,當前頁數(shù)和每頁記錄數(shù)查詢數(shù)據(jù)庫中鞋子信息返回分頁信息。
ShoesBizImpl.java
public PageBean SearchShoesByGenderBrand(final String brandName,final String gender,final int currentPage,final int pageSize)
寫具體的HQL語句,調(diào)用數(shù)據(jù)持久層findByPageBean()方法
數(shù)據(jù)持久層設(shè)計
持久層接口
基類接口
接口說明
IShoeDao.java
IGenericDao
獲取分頁信息的統(tǒng)一方法
public PageBean findByPageBean(final String hql,final Object[] param,final int currentpage,final int pageSize);
ShoesDaoImpl.java
IShoesDao
AGenericHibernateDao
ShoesDaoImpl繼承AgenericHibernateDao類,實現(xiàn)IShoesDao接口
3.3.4 功能實現(xiàn)時序圖
3.4 商品搜索-款式檢索
3.4.1 款式搜索實現(xiàn)流程圖
3.4.2 款式搜索輸入輸出規(guī)則
商品款式搜索顯示輸入輸出規(guī)則
模塊名稱
商品款式搜索顯示
功能描述
根據(jù)商品款式搜索鞋子
用戶角色
注冊用戶或游客
模塊觸發(fā)條件
打開網(wǎng)站首頁
輸入規(guī)則
用鼠標單擊款式鏈接
輸出結(jié)果
顯示同一款式的所有鞋子列表
關(guān)鍵算法
1.款式列表鏈接具備款式名稱參數(shù)
2.Action中獲取到款式名稱,根據(jù)款式名稱查找Shoes表
數(shù)據(jù)庫操作
查詢types表和shoes表
3.4.3視圖層、Action、業(yè)務(wù)層、數(shù)據(jù)持久層的說明
視圖
Action/Servlet
業(yè)務(wù)層(biz)
數(shù)據(jù)持久層(dao)
left_menu.jsp
search.jsp
ShoesAction.java
IShoesBiz.java
ShoesBizImpl.java
IShoesDao.java
ShoesDaoImpl.java
視圖層頁面設(shè)計
界面
JSP
功能描述
首頁左側(cè)品牌導航頁面
left_menu.jsp
列出品牌,款式及定制鏈接
搜索結(jié)果頁面
Search.jsp,其中包含search_result.jsp
根據(jù)前置條件將搜索結(jié)果列表顯示
Action/Servlet設(shè)計
Action/Servlet
入口
方法
出口
ShoesAction
left_menu.jsp
SearchShoesByTypes()
search.jsp
業(yè)務(wù)層設(shè)計
業(yè)務(wù)接口
本模塊業(yè)務(wù)方法
方法說明
IShoesBiz.java
public PageBean SearchShoesByTypes(final String typename,final int currentPage,final int pageSize);
根據(jù)款式名稱,當前頁數(shù)和每頁記錄數(shù)查詢數(shù)據(jù)庫中鞋子信息返回分頁信息。
ShoesBizImpl.java
public PageBean SearchShoesByTypes(final String typename,final int currentPage,final int pageSize);
寫具體的HQL語句,調(diào)用數(shù)據(jù)持久層findByPageBean()方法
數(shù)據(jù)持久層設(shè)計
持久層接口
基類接口
接口說明
IShoeDao.java
IGenericDao
獲取分頁信息的統(tǒng)一方法
public PageBean findByPageBean(final String hql,final Object[] param,final int currentpage,final int pageSize);
ShoesDaoImpl.java
IShoesDao
AGenericHibernateDao
ShoesDaoImpl繼承AgenericHibernateDao類,實現(xiàn)IShoesDao接口
3.4.4 功能實現(xiàn)時序圖(同3.3.4)
3.5 商品搜索-根據(jù)商品名和產(chǎn)地模糊檢索
3.5.1 模糊搜索實現(xiàn)流程圖
3.5.2 模糊搜索輸入輸出規(guī)則
商品模糊搜索顯示輸入輸出規(guī)則
模塊名稱
商品名稱模糊搜索顯示
功能描述
根據(jù)商品名稱,產(chǎn)地搜索鞋子
用戶角色
注冊用戶或游客
模塊觸發(fā)條件
打開網(wǎng)站首頁
輸入規(guī)則
輸入商品名稱或產(chǎn)地關(guān)鍵字,并選擇男款還是女款
輸出結(jié)果
顯示包含名稱或產(chǎn)地關(guān)鍵字的所有鞋子列表
關(guān)鍵算法
1. 獲取表單鞋子名稱或產(chǎn)地關(guān)鍵字及性別
2. Action中獲取關(guān)鍵字和性別
3. 業(yè)務(wù)層根據(jù)關(guān)鍵字和性別查詢Shoes表
數(shù)據(jù)庫操作
查詢shoes表
3.5.3視圖層、Action、業(yè)務(wù)層、數(shù)據(jù)持久層的說明
視圖
Action/Servlet
業(yè)務(wù)層(biz)
數(shù)據(jù)持久層(dao)
header.jsp search.jsp
ShoesAction.java
IShoesBiz.java
ShoesBizImpl.java
IShoesDao.java
ShoesDaoImpl.java
視圖層頁面設(shè)計
界面
JSP
功能描述
網(wǎng)站頭部獨立頁面
header.jsp
接收關(guān)鍵字和性別選擇
搜索結(jié)果頁面
Search.jsp,其中包含search_result.jsp
根據(jù)前置條件將搜索結(jié)果列表顯示
Action/Servlet設(shè)計
Action/Servlet
入口
方法
出口
ShoesAction
header.jsp
FuzzySearch()
search.jsp
業(yè)務(wù)層設(shè)計
業(yè)務(wù)接口
本模塊業(yè)務(wù)方法
方法說明
IShoesBiz.java
public PageBean FuzzySearch(Object[] params,final int currentPage,final int pageSize);
根據(jù)鞋子名稱,產(chǎn)地關(guān)鍵字及性別,當前頁數(shù)和每頁記錄數(shù)查詢數(shù)據(jù)庫中鞋子信息返回分頁信息。
ShoesBizImpl.java
public PageBean FuzzySearch(Object[] params,final int currentPage,final int pageSize);
寫具體的HQL語句,調(diào)用數(shù)據(jù)持久層findByPageBean()方法
數(shù)據(jù)持久層設(shè)計
持久層接口
基類接口
接口說明
IShoeDao.java
IGenericDao
獲取分頁信息的統(tǒng)一方法
public PageBean findByPageBean(final String hql,final Object[] param,final int currentpage,final int pageSize);
ShoesDaoImpl.java
IShoesDao
AGenericHibernateDao
ShoesDaoImpl繼承AgenericHibernateDao類,實現(xiàn)IShoesDao接口
3.5.4 功能實現(xiàn)時序圖(同3.3.4)
3.6 商品搜索-根據(jù)尺碼,版型,顏色,品牌綜合檢索
3.6.1 綜合搜索實現(xiàn)流程圖
3.6.2 綜合搜索輸入輸出規(guī)則
商品綜合搜索顯示輸入輸出規(guī)則
模塊名稱
商品綜合搜索顯示
功能描述
根據(jù)鞋子尺碼,版型,顏色,品牌搜索鞋子
用戶角色
注冊用戶或游客
模塊觸發(fā)條件
打開網(wǎng)站首頁
輸入規(guī)則
輸入鞋子尺碼,版型,顏色,品牌
輸出結(jié)果
顯示符合綜合條件的所有鞋子列表
關(guān)鍵算法
1. 選擇鞋子尺碼,版型,顏色,品牌一個或多個條件
2. Action中獲取實際選擇的條件
3. 業(yè)務(wù)層根據(jù)選擇的條件查詢Shoes表
數(shù)據(jù)庫操作
查詢shoes表
3.6.3視圖層、Action、業(yè)務(wù)層、數(shù)據(jù)持久層的說明
視圖
Action/Servlet
業(yè)務(wù)層(biz)
數(shù)據(jù)持久層(dao)
search.jsp
ShoesAction.java
IShoesBiz.java
ShoesBizImpl.java
IShoesDao.java
ShoesDaoImpl.java
視圖層頁面設(shè)計
界面
JSP
功能描述
網(wǎng)站頭部獨立頁面
Search.jsp
接收關(guān)鍵字和性別選擇
搜索結(jié)果頁面
Search.jsp,其中包含search_result.jsp
根據(jù)前置條件將搜索結(jié)果列表顯示
Action/Servlet設(shè)計
Action/Servlet
入口
方法
出口
ShoesAction
search.jsp
execute()
search.jsp
業(yè)務(wù)層設(shè)計
業(yè)務(wù)接口
本模塊業(yè)務(wù)方法
方法說明
IShoesBiz.java
public List
FindShoesByObjects(String hql,Object[] params);
根據(jù)鞋子名稱,產(chǎn)地關(guān)鍵字及性別,當前頁數(shù)和每頁記錄數(shù)查詢數(shù)據(jù)庫中鞋子信息返回分頁信息。
ShoesBizImpl.java
public List FindShoesByObjects(String hql,Object[] params);
寫具體的HQL語句,調(diào)用數(shù)據(jù)持久層findByPageBean()方法
數(shù)據(jù)持久層設(shè)計
持久層接口
基類接口
接口說明
IShoeDao.java
IGenericDao
獲取分頁信息的統(tǒng)一方法
public PageBean findByPageBean(final String hql,final Object[] param,final int currentpage,final int pageSize);
ShoesDaoImpl.java
IShoesDao
AGenericHibernateDao
ShoesDaoImpl繼承AgenericHibernateDao類,實現(xiàn)IShoesDao接口
3.6.4 功能實現(xiàn)時序圖(同3.3.4)
3.7 商品詳情
3.7.1 商品詳情實現(xiàn)流程圖
3.7.2 商品詳情輸入輸出規(guī)則
商品詳情輸入輸出規(guī)則
模塊名稱
商品詳情顯示
功能描述
顯示指定鞋子的詳細信息
用戶角色
注冊用戶或游客
模塊觸發(fā)條件
打開商品列表頁
輸入規(guī)則
點擊鞋子圖片或商品名稱
輸出結(jié)果
顯示指定鞋子的詳細信息
關(guān)鍵算法
1. 鞋子列表中具有鞋子sid參數(shù)值
2. Action中獲取sid值
3. 在業(yè)務(wù)層中通過sid值獲取鞋子的詳細信息
數(shù)據(jù)庫操作
查詢shoes表
3.7.3視圖層、Action、業(yè)務(wù)層、數(shù)據(jù)持久層的說明
視圖
Action/Servlet
業(yè)務(wù)層(biz)
數(shù)據(jù)持久層(dao)
search_result.jsp
product_detail.jsp
ShoesAction.java
IShoesBiz.java
ShoesBizImpl.java
IShoesDao.java
ShoesDaoImpl.java
視圖層頁面設(shè)計
界面
JSP
功能描述
鞋子列表頁面
search_result.jsp
顯示鞋子列表
鞋子詳情頁面
product_detail.jsp
顯示鞋子的詳細信息
Action/Servlet設(shè)計
Action/Servlet
入口
方法
出口
ShoesAction
Search_result.jsp
FindBySid()
product_detail.jsp
業(yè)務(wù)層設(shè)計
業(yè)務(wù)接口
本模塊業(yè)務(wù)方法
方法說明
IShoesBiz.java
public Shoes FindById(final int sid);
根據(jù)鞋子id獲取鞋子對象
ShoesBizImpl.java
public Shoes FindById(final int sid);
寫具體的HQL語句,調(diào)用數(shù)據(jù)持久層findById(sid)方法
數(shù)據(jù)持久層設(shè)計
持久層接口
基類接口
接口說明
IShoeDao.java
IGenericDao
獲取分頁信息的統(tǒng)一方法
public T findById(ID id);
ShoesDaoImpl.java
IShoesDao
AGenericHibernateDao
ShoesDaoImpl繼承AgenericHibernateDao類,實現(xiàn)IShoesDao接口
3.7.4 功能實現(xiàn)時序圖
3.8 添加購物車
3.8.1 添加購物車實現(xiàn)流程圖
3.8.2 添加購物車輸入輸出規(guī)則
添加購物車輸入輸出規(guī)則
模塊名稱
添加購物車
功能描述
將鞋子添加到購物車
用戶角色
注冊用戶
模塊觸發(fā)條件
登錄用戶打開商品詳情頁
輸入規(guī)則
選擇尺碼后添加到購物車
輸出結(jié)果
打開購物車頁面,顯示購物車信息
關(guān)鍵算法
1.頁面判斷是否選擇尺碼和個人是否有默認收貨地址
2.獲取鞋子編號,尺碼和數(shù)量(默認為1)
3. 添加到購物車的Action中根據(jù)鞋子id,尺碼,購買數(shù)量組合Shoesizes對象 ,shoesizes表中包含各鞋子對應(yīng)尺寸的庫存。
4. 如果鞋子沒有被刪除,并且?guī)齑媪看笥谫徺I量,將鞋子信息添加到Map集合(購物車 Cart ),并添加到session中
數(shù)據(jù)庫操作
查詢shoesizes表
3.8.3視圖層、Action、業(yè)務(wù)層、數(shù)據(jù)持久層的說明
視圖
Action/Servlet
業(yè)務(wù)層(biz)
數(shù)據(jù)持久層(dao)
product_detail.jsp
cart.jsp
cart_table.jsp
CartAction.java
IShoeSizesBiz.java
ShoeSizesBizImpl.java
IReceiverBiz.java
ReceiverBizImpl.java
IShoeSizesDao.java
ShoeSizesDaoImpl.java
IReceiverDao.java
ReceiverDaoImpl.java
視圖層頁面設(shè)計
界面
JSP
功能描述
鞋子詳情頁面
product_detail.jsp
顯示鞋子的詳細信息
購物車頁面
cart.jsp,其中包括cart_table.jsp
顯示購物車的詳細信息
Action/Servlet設(shè)計
Action/Servlet
入口
方法
出口
CartAction
product_detail.jsp
execute()
cart.jsp
CartAction
Product_detail.jsp
getDefaultAddress()
personal_center.jsp
業(yè)務(wù)層設(shè)計
業(yè)務(wù)接口
本模塊業(yè)務(wù)方法
方法說明
IShoeSizesBiz.java
public Shoesizes FindByShoesid(final int sid,final int count,final float sizes);
根據(jù)鞋子id,數(shù)量,尺寸獲取鞋子尺寸信息對象(包含庫存)
ShoeSizesBizImpl.java
public Shoesizes FindByShoesid(final int sid,final int count,final float sizes);
寫具體的HQL語句,調(diào)用數(shù)據(jù)持久層findByObject方法
IReceiverBiz.java
public Receives FindByDefault(int uid);
根據(jù)用戶id獲得默認收貨地址
ReceiverBizImpl.java
public Receives FindByDefault(int uid);
寫具體的HQL語句,調(diào)用數(shù)據(jù)持久層findByObject方法
數(shù)據(jù)持久層設(shè)計
持久層接口
基類接口
接口說明
IShoeSizesDao.java
IGenericDao
根據(jù)條件參數(shù)獲取集合
public List findByObject(String hql,Object[] param);
ShoeSizesDaoImpl.java
IShoeSizesDao
AGenericHibernateDao
ShoeSizesDaoImpl
繼承AgenericHibernateDao類,實現(xiàn)IShoeSizesDao接口
IReceiverDao.java
IGenericDao
根據(jù)條件參數(shù)獲取集合
public List findByObject(String hql,Object[] param);
ReceiverDaoImpl.java
IReceiverDao AGenericHibernateDao
ReceiverDaoImpl
繼承AgenericHibernateDao類,實現(xiàn)IReceiverDao接口
3.8.4 功能實現(xiàn)時序圖
3.9 刪除購物車商品
3.9.1 刪除購物車商品實現(xiàn)流程圖
3.9.2刪除購物車商品輸入輸出規(guī)則
刪除購物車商品輸入輸出規(guī)則
模塊名稱
刪除購物車商品
功能描述
將鞋子從購物車中刪除
用戶角色
注冊用戶
模塊觸發(fā)條件
登錄用戶在購物車頁面選擇刪除商品
輸入規(guī)則
點擊“刪除商品”鏈接
輸出結(jié)果
顯示刪除商品后的購物車信息頁面
關(guān)鍵算法
1. 獲取頁面隱藏域信息
2. 判斷當前購物車中有幾種商品(根據(jù)單個商品總價)
3. 如果存在多種商品,通過js操作DOM對象刪除商品
4. 如果只剩下一種商品,則將購物車清空,實際操作是將購物車對象從session中刪除。
數(shù)據(jù)庫操作
無
3.9.3視圖層、Action、業(yè)務(wù)層、數(shù)據(jù)持久層的說明
視圖
Action/Servlet
業(yè)務(wù)層(biz)
數(shù)據(jù)持久層(dao)
cart.jsp
cart_table.jsp
OrderAction.java
無
無
視圖層頁面設(shè)計
界面
JSP
功能描述
購物車頁面
cart.jsp,其中包括cart_table.jsp
顯示購物車的詳細信息及相關(guān)js操作
Action/Servlet設(shè)計
Action/Servlet
入口
方法
出口
OrderAction
cart_table.jsp
deleteCart()
index.jsp,清空購物車后返回首頁
3.9.4 功能實現(xiàn)時序圖
不清空購物車(略)
清空購物車
3.10 結(jié)算購物車商品
3.10.1 結(jié)算購物車商品實現(xiàn)流程圖
3.10.2結(jié)算購物車商品輸入輸出規(guī)則
結(jié)算購物車商品輸入輸出規(guī)則
模塊名稱
結(jié)算購物車商品
功能描述
確定購物車中商品,提交結(jié)算
用戶角色
注冊用戶
模塊觸發(fā)條件
登錄用戶在購物車頁面選擇“去結(jié)算”
輸入規(guī)則
點擊“去結(jié)算”鏈接
輸出結(jié)果
顯示購物車所有商品結(jié)算信息和個人默認收貨地址信息
關(guān)鍵算法
1. 獲取購物車信息
2. 獲取個人默認收貨地址信息
數(shù)據(jù)庫操作
查詢receives
3.10.3視圖層、Action、業(yè)務(wù)層、數(shù)據(jù)持久層的說明
視圖
Action/Servlet
業(yè)務(wù)層(biz)
數(shù)據(jù)持久層(dao)
cart.jsp
cart_table.jsp
OrderAction.java
IReceiverBiz.java
ReceiverBizImpl.java
IReceiverDao.java
ReceiverDaoImpl.java
視圖層頁面設(shè)計
界面
JSP
功能描述
購物車頁面
cart.jsp,其中包括cart_table.jsp
顯示購物車的詳細信息及相關(guān)js操作
訂單頁面
ordersheet.jsp
訂單信息頁面(購物車和收貨地址)
Action/Servlet設(shè)計
Action/Servlet
入口
方法
出口
OrderAction
cart_table.jsp
execute()
ordersheet.jsp
業(yè)務(wù)層設(shè)計
業(yè)務(wù)接口
本模塊業(yè)務(wù)方法
方法說明
IReceiverBiz.java
public Receives FindByDefault(int uid);
根據(jù)用戶id獲得默認收貨地址
ReceiverBizImpl.java
public Receives FindByDefault(int uid);
寫具體的HQL語句,調(diào)用數(shù)據(jù)持久層findByObject方法
數(shù)據(jù)持久層設(shè)計
持久層接口
基類接口
接口說明
IReceiverDao.java
IGenericDao
根據(jù)條件參數(shù)獲取集合
public List findByObject(String hql,Object[] param);
ReceiverDaoImpl.java
IReceiverDao AGenericHibernateDao
ReceiverDaoImpl
繼承AgenericHibernateDao類,實現(xiàn)IReceiverDao接口
3.10.4 功能實現(xiàn)時序圖
3.11直接購買商品
3.11.1 直接購買商品實現(xiàn)流程圖
3.11.2直接購買商品輸入輸出規(guī)則
模塊名稱
直接購買商品
功能描述
在商品詳情頁選擇直接購買商品,功能類似添加到購物車,只是直接購買的商品不經(jīng)過購物車頁面,直接到訂單頁
用戶角色
注冊用戶
模塊觸發(fā)條件
登錄用戶在詳情頁選擇“直接購買”
輸入規(guī)則
選擇尺碼后點擊“直接購買”鏈接
輸出結(jié)果
打開訂單頁,顯示購物車所有商品結(jié)算信息和個人默認收貨地址信息
關(guān)鍵算法
1. 將商品添加到購物車但不現(xiàn)實購物車頁面
2. 獲取個人默認收貨地址信息
數(shù)據(jù)庫操作
查詢shoesizes表和receives表
3.11.3視圖層、Action、業(yè)務(wù)層、數(shù)據(jù)持久層的說明
視圖
Action/Servlet
業(yè)務(wù)層(biz)
數(shù)據(jù)持久層(dao)
cart.jsp
cart_table.jsp
CartAction.java
IShoeSizesBiz.java
ShoeSizesBizImpl.java
IReceiverBiz.java
ReceiverBizImpl.java
IShoeSizesDao.java
ShoeSizesDaoImpl.java
IReceiverDao.java
ReceiverDaoImpl.java
視圖層頁面設(shè)計
界面
JSP
功能描述
商品詳情頁面
product_detail.jsp
顯示商品詳情及“直接購買”鏈接
訂單頁面
ordersheet.jsp
訂單信息頁面(購物車和收貨地址)
Action/Servlet設(shè)計
Action/Servlet
入口
方法
出口
CartAction
product_detail.jsp
Buynow()
ordersheet.jsp
業(yè)務(wù)層設(shè)計
業(yè)務(wù)接口
本模塊業(yè)務(wù)方法
方法說明
IReceiverBiz.java
public Receives FindByDefault(int uid);
根據(jù)用戶id獲得默認收貨地址
ReceiverBizImpl.java
public Receives FindByDefault(int uid);
寫具體的HQL語句,調(diào)用數(shù)據(jù)持久層findByObject方法
數(shù)據(jù)持久層設(shè)計
持久層接口
基類接口
接口說明
IReceiverDao.java
IGenericDao
獲取分頁對象方法findByPageBean
ReceiverDaoImpl.java
IReceiverDao AGenericHibernateDao
ReceiverDaoImpl繼承AgenericHibernateDao類,實現(xiàn)IReceiverDao接口
3.11.4 功能實現(xiàn)時序圖
3.12秒殺商品
3.12.1 秒殺商品實現(xiàn)流程圖
3.12.2秒殺商品輸入輸出規(guī)則
模塊名稱
秒殺商品
功能描述
有些商品在特定時期內(nèi)價格優(yōu)惠,用戶可以選擇搶在這期間提交訂單,俗成“秒殺”
用戶角色
注冊用戶
模塊觸發(fā)條件
登錄用戶在秒殺頁面“秒殺”
輸入規(guī)則
點擊“秒殺”鏈接
輸出結(jié)果
打開訂單頁,顯示秒殺商品結(jié)算信息和個人默認收貨地址信息
關(guān)鍵算法
1. 列出所有處于秒殺期間的商品
2. 判斷用戶的積分和商品秒殺所需積分
3. 獲取個人默認收貨地址
數(shù)據(jù)庫操作
查詢shoesizes表,receives表,second_kills表
3.12.3視圖層、Action、業(yè)務(wù)層、數(shù)據(jù)持久層的說明
視圖
Action/Servlet
業(yè)務(wù)層(biz)
數(shù)據(jù)持久層(dao)
index.jsp
secondKillsLst.jsp secondKills.jsp
ordersheet.jsp
SecondKillsAction.java
OrderAction.java
ISecondKillsBiz.java
SecondKillsBizImpl.java
IReceiverBiz.java
ReceiverBizImpl.java
ISecondKillsDao.java
SecondKillsDaoImpl.java
IReceiverDao.java
ReceiverDaoImpl.java
視圖層頁面設(shè)計
界面
JSP
功能描述
首頁
index.jsp
顯示“秒殺”鏈接,轉(zhuǎn)向秒殺商品頁面
秒殺有效商品顯示頁面
secondKillsLst.jsp
有效的,可以進行秒殺的商品列表,分頁顯示
秒殺執(zhí)行頁面
secondKills.jsp
通過秒殺商品列表選擇某個商品,打開該商品的詳細信息和執(zhí)行秒殺操作
訂單頁面
ordersheet.jsp
執(zhí)行秒殺后轉(zhuǎn)向訂單頁
Action/Servlet設(shè)計
Action/Servlet
入口
方法
出口
SecondKillsAction.java
index.jsp
execute()
secondKillsLst.jsp
SecondKillsAction.java
secondKillsLst.jsp
FindBySkid()
secondKills.jsp
OrderAction.java
secondKills.jsp
addSecondKill()
ordersheet.jsp
業(yè)務(wù)層設(shè)計
業(yè)務(wù)接口
本模塊業(yè)務(wù)方法
方法說明
ISecondKillsBiz.java
//獲取有效秒殺商品
public PageBean findAvaliable(int currentpage,int pagesize);
//獲取單個秒殺商品對象
public SecondKills FidnById(int skid);
獲取有效秒殺商品在secondKillsLst.jsp中顯示,獲取單個秒殺商品對象是在secondKills.jsp中顯示
SecondKillsBizImpl.java
//獲取有效秒殺商品
public PageBean findAvaliable(int currentpage,int pagesize);
//獲取單個秒殺商品對象
public SecondKills FidnById(int skid);
寫具體的HQL語句訪問持久層findByPageBean和findByObject方法
IReceiverBiz.java
public Receives FindByDefault(int uid);
根據(jù)用戶id獲得默認收貨地址
ReceiverBizImpl.java
public Receives FindByDefault(int uid);
寫具體的HQL語句,調(diào)用數(shù)據(jù)持久層findByObject方法
數(shù)據(jù)持久層設(shè)計
持久層接口
基類接口
接口說明
ISecondKillsDao.java
IGenericDao
1.獲取分頁對象方法findByPageBean
2.根據(jù)條件獲取單個對象方法findByObject
SecondKillsDaoImpl.java
ISecondKillsDao
AGenericHibernateDao
SecondKillsDaoImpl繼承AgenericHibernateDao類,實現(xiàn)ISecondKillsDao接口
IReceiverDao.java
IGenericDao
獲取默認對象方法findByObject
ReceiverDaoImpl.java
IReceiverDao AGenericHibernateDao
ReceiverDaoImpl繼承AgenericHibernateDao類,實現(xiàn)IReceiverDao接口
3.12.4 功能實現(xiàn)時序圖
1)獲取秒殺商品列表
2)打開秒殺商品詳情頁
3)執(zhí)行秒殺
3.13定制商品(僅對一種商品)
3.13.1 定制商品實現(xiàn)流程圖
3.13.2定制商品輸入輸出規(guī)則
模塊名稱
定制商品
功能描述
本案例提供一種鞋子可以根據(jù)用戶自己喜好定制特定鞋子
用戶角色
注冊用戶
模塊觸發(fā)條件
登錄用戶在網(wǎng)站首頁“進入專業(yè)定制首頁”
輸入規(guī)則
選擇鞋子各部分顏色,尺碼
輸出結(jié)果
打開訂單頁,顯示定制商品信息和個人默認收貨地址信息
關(guān)鍵算法
1. 根據(jù)定制鞋編號獲取可定制鞋信息
2.獲取個人默認收貨地址
數(shù)據(jù)庫操作
查詢spcify_shoes表,receives表
3.13.3視圖層、Action、業(yè)務(wù)層、數(shù)據(jù)持久層的說明
視圖
Action/Servlet
業(yè)務(wù)層(biz)
數(shù)據(jù)持久層(dao)
index.jsp(left_menu.jsp)
specify_shoes_homepage.jsp specify_shoes.jsp
ordersheet.jsp
SpcifyShoesAction.java
CartAction.java
ISpcifySheosBiz.java
SpcifySheosBizImpl.java
ISpsSizesBiz.java
SpsSizesBizImpl.java
IReceiverBiz.java
ReceiverBizImpl.java
ISpcifySheosDao.java
SpcifySheosDaoImpl.java
ISpsSizesDao.java
SpsSizesDaoImpl.java
IReceiverDao.java
ReceiverDaoImpl.java
視圖層頁面設(shè)計
界面
JSP
功能描述
首頁
index.jsp(left_menu.jsp)
顯示“定制”鏈接,轉(zhuǎn)向定制商品首頁
定制商品首頁面
specify_shoes_homepage.jsp
定制商品首頁面,jquery實現(xiàn)頁面效果
定制鞋頁面
specify_shoes.jsp
定制鞋子樣式,尺寸及數(shù)量
訂單頁面
ordersheet.jsp
執(zhí)行定制后轉(zhuǎn)向訂單頁
Action/Servlet設(shè)計
Action/Servlet
入口
方法
出口
SpcifyShoesAction.java
specify_shoes_homepage.jsp
FindBySpsid()
specify_shoes.jsp
CartAction.java
specify_shoes.jsp
execute()
ordersheet.jsp
業(yè)務(wù)層設(shè)計
業(yè)務(wù)接口
本模塊業(yè)務(wù)方法
方法說明
ISpcifySheosBiz.java
/ /獲取定制鞋對象
public SpcifyShoes FindBySpid(int spsid);
根據(jù)定制鞋編號獲得定制鞋對象
SpcifySheosBizImpl.java
/ /獲取定制鞋對象
public SpcifyShoes FindBySpid(int spsid);
寫具體的HQL語句訪問持久層findByObject方法
ISpsSizesBiz.java
public SpsSizes FindBySpsid(int spsid);
根據(jù)定制鞋編號獲得定制鞋尺寸對象
SpsSizesBizImpl.java
public SpsSizes FindBySpsid(int spsid);
寫具體的HQL語句訪問持久層findByObject方法
IReceiverBiz.java
public Receives FindByDefault(int uid);
根據(jù)用戶id獲得默認收貨地址
ReceiverBizImpl.java
public Receives FindByDefault(int uid);
寫具體的HQL語句,調(diào)用數(shù)據(jù)持久層findByObject方法
數(shù)據(jù)持久層設(shè)計
持久層接口
基類接口
接口說明
ISpcifySheosDao.java
IGenericDao
獲取定制鞋對象方法findByObject
SpcifySheosDaoImpl.java
ISpcifySheosDao AGenericHibernateDao
SpcifySheosDaoImpl繼承AgenericHibernateDao類,實現(xiàn)ISpcifySheosDao接口
ISpsSizesDao.java
IGenericDao
獲取定制鞋尺寸對象方法findByObject
SpsSizesDaoImpl.java
ISpsSizesDao AGenericHibernateDao
SpsSizesDaoImpl繼承AgenericHibernateDao類,實現(xiàn)ISpsSizesDao接口
IReceiverDao.java
IGenericDao
獲取默認對象方法findByObject
ReceiverDaoImpl.java
IReceiverDao AGenericHibernateDao
ReceiverDaoImpl繼承AgenericHibernateDao類,實現(xiàn)IReceiverDao接口
3.13.4 功能實現(xiàn)時序圖
1)打開定制鞋頁面
2)打開定制鞋訂單頁
3.14生成訂單
3.14.1 生成訂單實現(xiàn)流程圖
3.14.2生成訂單輸入輸出規(guī)則
模塊名稱
生成訂單
功能描述
購買
鏈接地址:http://zhongcaozhi.com.cn/p-9477428.html