资源描述
网络书店
一、课程设计(综合实验)的目的与要求
1.目的
1.1 开发背景
当代计算机网络发展非常迅速,越来越多的商品交易已成功的运用在电子商务上了。比较典型的电子商务网站有:易趣、亚马逊、阿里巴巴、当当网、淘宝网…
电子商务平台给企业带来更多的商业机会,同时也给客户的消费和交易带来很大的方便。所以电子商务系统的需求量将会越来越多。
1.2实验目的
通过本实验,深入了解电子商务系统的开发内容和运行过程。将所学的网络开发技术A 2.0运用到企业项目中去,后台使用数据库sql server 2005。同时开发过程要求运用软件工程方法和Case工具。
2.要求
开发工具:Visual Studio 2005
开发语言:C#
开发框架:A 2.0
数据库:sql server 2005
系统运行环境:Windows server 2003、IIS6、.NetFramework 2.0、CMailServer
二、设计(实验)正文
1. 使用UML进行系统建模
1.1 用例图
1.2 活动图(购物过程)
1.3类图
2. 利用SQL Sever2005设计数据库
2.1创建数据库:BookShopOnlineDB
2.2创建表:integerited security
数据库名:BookShopOnlineDB
表名:User
序号
列名
数据类型
长度
小数位
标识
主键
允许空
默认值
说明
1
UserID
int
4
0
√
√
编号
2
RoleID
smallint
2
0
角色
3
UserName
nvarchar
100
0
用户名
4
UserPwd
nvarchar
100
0
密码
5
RealName
nvarchar
100
0
√
收货人姓名
6
Email
nvarchar
100
0
√
邮件
7
Address
nvarchar
200
0
√
地址
8
PostalCode
varchar
10
0
√
邮编
9
Phone
varchar
50
0
√
电话
10
IsLock
bit
1
0
√
((0))
是否被锁定
表名:ShoppingCart
序号
列名
数据类型
长度
小数位
标识
主键
允许空
默认值
说明
1
CartID
bigint
8
0
√
√
编号
2
CartGuid
varchar
50
0
3
BookID
int
4
0
图书编号
4
Quatity
smallint
2
0
√
数量
5
DateAdded
smalldatetime
4
0
√
(getdate())
日期
表名:Role
序号
列名
数据类型
长度
小数位
标识
主键
允许空
默认值
说明
1
RoleID
smallint
2
0
√
√
角色编号
2
RoleName
nvarchar
100
0
角色名
表名:OrderStatic
序号
列名
数据类型
长度
小数位
标识
主键
允许空
默认值
说明
1
StaticID
smallint
2
0
√
订单状态编号
2
StaticName
nvarchar
100
0
状态名
表名:Orders
序号
列名
数据类型
长度
小数位
标识
主键
允许空
默认值
说明
1
OrderID
varchar
50
0
√
订单编号
2
UserID
int
4
0
用户编号
3
UserName
nvarchar
100
0
√
用户名
4
OrderDate
smalldatetime
4
0
√
(getdate())
订单日期
5
ReceiverName
nvarchar
100
0
√
收货人姓名
6
ReceiverAddress
nvarchar
200
0
√
收货人地址
7
ReceiverPostalCode
varchar
10
0
√
收货人邮编
8
ReceiverPhone
varchar
50
0
√
收货人电话
9
TotalBookPrice
money
8
4
√
((0))
订单总价
10
PortPrice
money
8
4
√
((0))
运费
11
HasPayedPrice
money
8
4
√
((0))
已付费
12
PortTypeID
smallint
2
0
√
13
PortTypeName
nvarchar
100
0
√
收货方式
14
PayTypeID
smallint
2
0
√
15
PayTypeName
nvarchar
100
0
√
付款方式
16
TipID
smallint
2
0
√
订单状态编号
17
TipName
nvarchar
100
0
√
订单状态
18
UpdateStaticDate
smalldatetime
4
0
√
(getdate())
更新状态日期
表名:OrderDetail
序号
列名
数据类型
长度
小数位
标识
主键
允许空
默认值
说明
1
OrderDetailID
bigint
8
0
√
√
订单明细编号
2
OrderID
varchar
50
0
订单编号
3
BookID
int
4
0
图书编号
4
Quatity
smallint
2
0
√
数量
表名:Favorites
序号
列名
数据类型
长度
小数位
标识
主键
允许空
默认值
说明
1
FavoritesID
int
4
0
√
√
2
UserID
int
4
0
√
3
BookID
int
4
0
√
4
DateAdded
smalldatetime
4
0
√
(getdate())
表名:BookType
序号
列名
数据类型
长度
小数位
标识
主键
允许空
默认值
说明
1
BookTypeID
int
4
0
√
√
图书类别编号
2
BookTypeName
nvarchar
100
0
图书类别名称
3
ParentID
int
4
0
((-1))
父类编号
4
OrderBy
int
4
0
√
顺序
表名:BookImg
序号
列名
数据类型
长度
小数位
标识
主键
允许空
默认值
说明
1
ImgID
int
4
0
√
√
图片编号
2
ImgPath
varchar
100
0
√
图片路径
表名:Book
序号
列名
数据类型
长度
小数位
标识
主键
允许空
默认值
说明
1
BookID
int
4
0
√
√
图书编号
2
BookName
nvarchar
200
0
图书名称
3
BookTypeID
int
4
0
√
类别编号
4
ImgID
int
4
0
√
图片编号
5
OriginalPrice
money
8
4
√
原价
6
SellPrice
money
8
4
√
售价
7
Description
ntext
16
0
√
描述
8
Quatity
int
4
0
√
总数量
9
Storage
int
4
0
√
当前库存
10
IsCommended
bit
1
0
√
((0))
是否推荐
11
VisitedCount
int
4
0
√
浏览次数
12
DateAdded
smalldatetime
4
0
√
(getdate())
上架添加日期
13
Author
nvarchar
200
0
√
作者
14
Press
nvarchar
100
0
√
出版社
15
DatePressed
smalldatetime
4
0
√
出版日期
16
ISBN
varchar
50
0
√
2.3建立关联
2.4往部分表中插入数据
insert into [Role](RoleName) values('注册用户')
insert into [Role](RoleName) values('后台管理员')
insert into OrderStatic(StaticName) values('等待处理')
insert into OrderStatic(StaticName) values('已处理')
insert into OrderStatic(StaticName) values('等待发货')
insert into OrderStatic(StaticName) values('正在配货')
insert into OrderStatic(StaticName) values('已发货')
2.5检查数据库的完整性
3. 使用Visual Studio 2005 创建解决方案
3.1 业务实体层:Model
3.2 数据访问助手:DBHelper
3.3 配置文件访问:WebConfig
3.4 Sql server数据库数据访问层:SQLServerDal
3.5 业务逻辑层:Bll
3.6 表示层(网站):Web
4.体系结构
表示层Web
业务逻辑层Bll
数据访问层SqlServerDal
公共对象实体Model
辅助
操作
Utility、
DBHelper
数据库SqlServer2005
4.1 创建公共对象
Model:Book.cs、BookImg.cs、BookType.cs、Favorites.cs、OrderDetail.cs、Orders.cs、OrderStatic.cs、OrderStaticTip.cs、PayType.cs、PortType.cs、Role.cs、ShoppingCart.cs、User.cs
例如:
public class BookImg
{
private int _ImgID;
public int ImgID
{
get { return _ImgID; }
set { _ImgID = value; }
}
private string _ImgPath;
public string ImgPath
{
get { return _ImgPath; }
set { _ImgPath = value; }
}
}
4.2 创建数据访问层
SqlServerDal:BookDAl.cs BookTypeDal.cs FavoritesDal.cs OrderDetailDal.cs OrdersDal.cs PayTypeDal.cs PortTypeDal.cs ShoppingCartDal.cs UserDal.cs DBAccess.cs
例如:
public class FavoritesDal
{
public int InsertFavorites(Favorites favorites)
{
SqlParameter[] parms ={
new SqlParameter("@UserID",favorites.UserID),
new SqlParameter("@BookID",favorites.BookID)
};
return base.ExecuteNonQuery(StoredProcedureName.sp_InsertFavorites, parms);
}
}
4.3 创建业务逻辑层
Bll:BookBll.cs BookTypeBll.cs FavoritesBll.cs OrderDetailBll.cs OrdersBll.cs PayTypeBll.cs PortTypeBll.cs ShoppingCartBll.cs UserBll.cs
例如:
public class BookBll
{
private static readonly IBook Dal = DataAccess.CreateBook();
public DataSet SelectTopSoldBooks()
{
DataSet ds = Dal.SelectTopSoldBooks(Config.TopSoldBooks);
SetRowNum(ds);
SetDefaultPic(ds);
return ds;
}
}
4.4 创建辅助操作
DBHelper:SQLHelper.cs
Utility:ErrorLog.cs MyEmail.cs Password.cs WebTool.cs
4.5 创建表示层
文件夹
BookImg:图书图片
Images:系统公用图片
Skins:网页样式default.css
ErrorLog:系统错误日志errorlog.txt
Controls:用户控件
Admin:管理员目录
其中有页面:
AddBook.aspx 添加图书
AddBookType.aspx 添加图书类别
AdminLogin.aspx 管理员登录
AdminLogout.aspx 管理员退出
OrderList.aspx 订单列表
SearchOrder.aspx 搜索订单
CheckOrder.aspx 处理订单
UserCenter:用户中心
其中有页面:
EditPwd.aspx 修改密码
Favorites.aspx 收藏夹
ModifyOrder.aspx 修改订单
OrderList.aspx 订单列表
ShowOrder.aspx 查看订单
UpdateUser.aspx 更新用户信息
UserCenter.aspx 用户中心首页
168regpay:付款处理
其中有页面:
payment.aspx 处理付款
PayResult.aspx 付款结果
根目录有页面:
AddOrder.aspx 添加订单
AddToFavorites.aspx 添加收藏夹
AddToShoppingCart.aspx 添加购物车
BookList.aspx 图书列表
BookListBySearch.aspx 图书搜索结果列表
Default.aspx 网站首页
ErrorPage.aspx 错误页面
Login.aspx 登录页面
Logout.aspx 退出页面
RegisterResult.aspx 注册结果
RegisterUser.aspx 注册页
ShowBookDetail.aspx 浏览图书
ShowShoppingCart.aspx 购物车
5. 核心业务分析
5.1 图书无限级分类
先获取根目录数据集,然后对该数据集进行循环获取对应的下级目录,其中获取下级目录采用递归方法。这样就要可参数无限级分类。
5.2 图书搜索并分页显示
用户输入关键字,且选择搜索类别:书名、作者、全文、出版社、ISDN。
以这两个条件进行记录的分页查询。由于前台的查询,容易造成特殊字符的查询或者SQL的注入,所以本系统采用存储过程(但存储过程中不使用动态查询语句)。
5.3 生成订单事务
订单事务包括:插入订单信息-》插入订单详细-》更新图书记录-》删除购物车。本系统采用的是ADO.net中的事务处理方法。
5.4 在线支付处理
本系统采用在线支付中介“贺喜支付平台”,它支持各大银行的在线支付:中国工商银行、中国建设银行、中国农业银行等等。该中介提供了很好的测试用例和详细的文档说明。
5.5处理废弃购物车
购物者添加购物车后由于各种原因未能生成订单,所有时间一长购物车表的记录数会很大,所以系统应该能够定期自动删除过期的购物车记录。该任务由Sql server 2005的代理服务器自动执行。
三、课程设计总结或结论
四、参考文献
展开阅读全文