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