bookStore商城開發文檔
一、項目演示
看課堂筆記。
二、需求分析
2.1、系統體系結構
基於BS結構進行開發。(瀏覽器與服務器:瘦客戶端)
2.1、系統總體流程
2.3、功能描述
對於本系統,用戶一共分成三種,普通用戶(游客)、注冊會員(注冊用戶)、管理員。
用戶通過訪問http://www.bookStore.com頁面可能訪問到書城首面。
對於普通用戶可以瀏覽商品,查找商品,也可以注冊成會員。
注冊成會員后的用戶,不僅可以完成普通用戶具有的功能,還可以添加商品到購物車,並對購物車中的商品進行操作,並可以下訂單。通過會員操作頁面,查看與修改會員信息,對沒有支付的訂單進行支付操作及取消訂單操作。
管理員可以添加查看商品,並修改商品信息,.可以查看所有訂單,並對訂單進行管理。並能下載銷售榜單。
下面我們通過一個用例圖來描述每一個角色可以具有的功能,如下圖所示:
2.4、系統界面
美工:第一版的頁面可能是美工做的,用ps做的,會經過多次修改。
前端:前端開發人員做成靜態網頁。
后端:后端開發人員實現動態網頁。
2.4.1、前台界面
商城首頁
注冊頁面
登錄頁面
圖書瀏覽頁面
圖書詳細信息頁面
購物車頁面
用戶管理頁面
用戶信息修改頁面
訂單管理頁面
2.4.2、后台頁面
后台首頁
商品操作頁面
商品添加頁面
下載榜單頁面
訂單管理頁面
三、概要設計
3.1、運行環境
操作系統:Windows環境下運行
軟件需求:MySql5.x
Tomcat7.x
3.2、基本功能需求
本系統在實現上應該具有以下功能:
普通用戶可以通過系統瀏覽商品信息
普通用戶可以進行查詢完成商品的查找
普通用戶可以進行注冊成為會員
會員可以瀏覽及查找商品
會員可以添加商品到購物車
會員可以查看購物車中商品並進行操作
會員可以下訂單
會員可以瀏覽自己的商品
會員可以查看及修改個人信息
管理員可以添加商品
管理員可以下載銷售榜單
管理員可以查看並管理訂單
3.3、功能模塊設計
項目一共有以下幾個模塊:
用戶模塊
用戶注冊
用戶登錄
用戶激活
用戶信息修改
商品模塊
商品瀏覽
商品查找
商品添加
商品刪除
商品修改
訂單模塊
訂單創建
訂單查看
訂單刪除
購物車模塊
添加商品到購物車
購物車商品數量修改
購物車商品刪除
3.4、程序流程圖
3.4.1、用戶模塊
注冊流程
登錄流程
激活流程
用戶信息修改流程
3.4.2、商品模塊
商品瀏覽
商品查找
商品添加
商品刪除
商品修改
3.4.3、購物車模塊
添加商品到購物車
購物車商品數量修改
購物車商品刪除
3.4.4、訂單模塊
訂單創建 訂單查看
訂單刪除
3.5、數據庫設計
3.5.1、ER圖(實體關系圖)
3.5.2、表設計
根據ER圖(實體關系圖),我們分析當前系統具有以下幾個模塊:
用戶,商品,訂單,購物車
用戶與訂單之間存在一對多關系
(一個用戶可以有多個訂單)
商品與訂單之間存在多對多關系
(一個訂單中包含多個商品,一個商品被多個訂單下單)
購物車我們暫時不將信息存儲到數據庫中,所以不用生成表。
創建數據庫 create database productstore;
使用數據庫 USE productstore;
用戶表 CREATE TABLE `user` ( `id` INT(11) AUTO_INCREMENT, `username` VARCHAR(20) , `PASSWORD` VARCHAR(20) , `gender` VARCHAR(10) , `email` VARCHAR(50) , `telephone` VARCHAR(20) , `introduce` VARCHAR(100), `activeCode` VARCHAR(50) , `state` INT(11) , `role` VARCHAR(10) DEFAULT '普通用戶', `registTime` TIMESTAMP , PRIMARY KEY (`id`) ) 商品表 CREATE TABLE `products` ( `id` VARCHAR(100) , `name` VARCHAR(40) , `price` DOUBLE , `category` VARCHAR(40) , `pnum` INT(11) , `imgurl` VARCHAR(100) , `description` VARCHAR(255) , PRIMARY KEY (`id`) ) 訂單表 CREATE TABLE `orders` ( `id` VARCHAR(100) , `money` DOUBLE , `receiverAddress` VARCHAR(255) , `receiverName` VARCHAR(20) , `receiverPhone` VARCHAR(20) , `paystate` INT(11) , `ordertime` TIMESTAMP , `user_id` INT(11) , PRIMARY KEY (`id`), FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ) 訂單項表 CREATE TABLE `orderitem` ( `order_id` VARCHAR(100) , `product_id` VARCHAR(100), `buynum` INT(11) , PRIMARY KEY (`order_id`,`product_id`), FOREIGN KEY (`order_id`) REFERENCES `orders` (`id`), FOREIGN KEY (`product_id`) REFERENCES `products` (`id`) )
四、系統設計
4.1、開發環境
開發本系統我們所使用的工具與技術有:
Myeclipse10
tomcat7.x
mysql5.x
jst標簽庫
EL表達式
jsp
servlet
javabean
Filter
Listener
javaMail
commons-dbutils
commons-fileupload
commons-beanutils
c3p0
jdk1.6
jdbc
4.2、架構設計
采用javaweb開發的三層架構
Web層
Service層
Dao層
五、詳細設計
5.1、問題處理機制
5.1.1、功能問題
使用自定義異常來描述問題。
UserException來描述關於用戶的操作問題。
ProductException來描述關於商品操作問題。
OrderException來描述關於訂單操作問題。
5.1.2、權限問題
對於普通用戶(游客),不可以操作購物車、下訂單。
對於會員(注冊用戶),不可以添加商品、下載銷售榜單。
5.2、前台功能
5.2.1、用戶操作:
用戶注冊
用戶激活
用戶登錄
用戶信息修改
5.2.2、商品操作
查看全部商品(分頁)
根據分類查看商品(分頁)
與查看全部商品信息操作步驟一樣,只是需要在傳遞一個類別信息進行查找。
搜索商品
查看商品詳細信息
5.2.3、購物車操作
添加商品到購物車
查看購物車中商品
修改購物車中商品數量
刪除購物車中商品
刪除購物車商品,我們可以通過修改購物車中商品數量來完成,只需要將數量設置為0就可以。
5.2.4、訂單操作
生成訂單
查看訂單
刪除訂單(未支付訂單)
刪除訂單(已支付訂單)
對於已經支付的訂單,我們在刪除訂單時,不需要再修改商品的數量。
訂單的在線支付
5.3、后台功能
5.3.1、商品操作
查看商品列表
商品添加
修改商品信息
修改商品信息分成兩個步驟:
1. 根據id查找商品信息回顯
2.修改商品信息
多條件商品查找
商品刪除
下載銷售榜單
5.3.2、訂單操作
查看訂單列表(查看所有訂單)
訂單查詢(多條件查詢)
訂單詳細信息查看
訂單的刪除(只能刪除支付后的訂單)
六、編碼實現
6.1、環境搭建
導入jar包
導入mysql驅動
導入c3p0
導入dbutils
導入beanutils
導入fileupload
導入javamail mail.jar
導入jstl jstl.jar standard.jar
建立package結構 按照JavaEE 三層結構
cn.itcast.bookStore.dao
cn.itcast.bookStore.service
cn.itcast.bookStore.web.servlet
cn.itcast.bookStore.web.filter
cn.itcast.bookStore.web.listener
cn.itcast.bookStore.domain
cn.itcast.bookStore.util
cn.itcast.bookStore.exception
domain類編寫
User類 private int id; // 用戶編號 private String username; // 用戶姓名 private String password; // 用戶密碼 private String gender; // 用戶性別 private String email; // 用戶郵箱 private String telephone; // 用戶聯系電話 private String introduce; // 用戶介紹 private String activeCode; // 激活碼 private String role; // 用戶角色 private int state; // 用戶狀態 private Date registTime; // 注冊時間 Product類 private String id; // 商品編號 private String name; // 商品名稱 private double price; // 商品價格 private int pnum; // 商品數量 private String category; // 商品分類 private String description; // 商品描述 private String img_url; // 商品圖片路徑 Order類 private String id; // 訂單編號 private double money; // 訂單總價 private String receiverAddress; // 送貨地址 private String receiverName; // 收貨人姓名 private String receiverPhone; // 收貨人電話 private int paystate; // 訂單狀態 private Date ordertime; // 下單時間 private User user; private List<OrderItem> orderitems; // 表示一個order對象,對應多個orderitem OrderItem類 private Order order; // 訂單 private Product product; // 商品 private int buynum; // 購物數量 PageBean類 private int currentPage; // 當前頁碼 private int totalPage; // 總頁碼數 private int pageSize; // 每頁條數 private int count; // 總條數 private List<Product> products; // 每頁顯示的數據 private String category; //分類
6.2、功能實現
用戶注冊
用戶激活
用戶登錄
商品添加
商品顯示
商品修改
商品刪除
添加商品到購物車
購物車商品數量修改
購物車商品刪除
生成訂單
訂單查看
訂單刪除
下載榜單
權限控制
系統重構