网购管理系统详细设计说明书有图有
“网上购物”系统设计说明书
文件状态:
[。。] 草稿
[√] 正式发布
[ ] 正在修改 文件标识
当前版本
作 者
完成日期 2007年4月22日
版本历史
版本/状态 修订人 修改日期 备注
第一部分、概述
文档说明
本文档描述“网上购物”系统的设计文档,系统使用面向对象的设计方法,首先设计系统的总体结构,再设计各个用例的实现。
系统需求概述
网上购物系统,包括两方面的需求,分别是顾客的需求、后台管理人员的需求。顾客的需求是查询商品、个人购买情况及个人信息的修改;管理人员的功能最为复杂,包括对顾客、商品、订单进行管理和维护,及系统状态的查看。
第二部分、系统总体结构
...全部
“网上购物”系统设计说明书
文件状态:
[。。] 草稿
[√] 正式发布
[ ] 正在修改 文件标识
当前版本
作 者
完成日期 2007年4月22日
版本历史
版本/状态 修订人 修改日期 备注
第一部分、概述
文档说明
本文档描述“网上购物”系统的设计文档,系统使用面向对象的设计方法,首先设计系统的总体结构,再设计各个用例的实现。
系统需求概述
网上购物系统,包括两方面的需求,分别是顾客的需求、后台管理人员的需求。顾客的需求是查询商品、个人购买情况及个人信息的修改;管理人员的功能最为复杂,包括对顾客、商品、订单进行管理和维护,及系统状态的查看。
第二部分、系统总体结构
系统设计时基于MVC设计模型,采用三层架构,如图二所示。
图一:“网上购物”系统的体系结构
第三部分、系统设计
关键抽象
从需求中可以得出系统的如下关键抽象:管理员、用户、商品类别、商品信息、订单、订单-商品的访问。
这些实体可以设计为JavaBean类,例如商品信息具有这些属性:商品id号,商品名,商品类别id号,商品新旧程度,产地,内容介绍,价格,总数量,剩余数量,商品发布时间等。这些实体的详细信息如下:
管理员:
管理员id号,管理员名,密码。
用户:
用户id号,用户名,密码,姓名,性别,地址,电话,邮编,email,注册时间,注册时的ip地址。
商品类别:
商品类别id号,商品类别名。
商品信息:
商品id号,商品名,商品类别id号,商品新旧程度,产地,内容介绍,价格,总数量,剩余数量,商品发布时间。
订单:
订单id号,订单编号,用户id号,订单提交时间,总金额,用户备注,下单时ip地址,是否已付款,是否已发货,发货时间。
订单-商品:
订单-商品id号,订单id号,商品id号,订货数量。
用例的设计
使用面向对象设计时,关键在于描述那些对象如何交互完成用例的功能,下面将逐一解释用例。
管理员登录
显示登陆的jsp页面,输入帐号、密码后,该表单提交给Servlet,Servlet将提交的帐号信息封装成实体Bean的对象,将此作为参数,调用JavaBean中的方法查询数据库,该方法返回true证明为合法帐号,允许登陆,并重定向到管理员首页;否则返回登陆页,重新登陆。
管理商品
提供一个商品发布的jsp页面,该页面提交给Servlet,Servlet将提交的商品信息封装成对象,将此作为参数,调用JavaBean中的方法,将商品信息插入数据库。
提供一个查询商品的jsp页面,该页面调用JavaBean中的方法查询出所有商品的信息,此方法要将查询到的所有商品信息封装成对象并把这些对象封装到一个集合类(比如ArrayList)中返回。
Jsp页面将得到的集合用JSTL核心标签给予显示,并且每件商品右边提供“修改”、“删除”链接,点击“修改”打开另一个jsp页面,可以查看该商品详细信息(以表单的形式显示),并可以进行提交修改;点击“删除”,链接到一个Servlet,Servlet取得当前商品的id号作为参数,调用JavaBean中的方法进行删除操作。
管理用户
提供一个查询顾客帐户的jsp页面,该页面调用JavaBean中的方法查询出所有用户的信息,此方法要将查询到的所有用户信息封装成对象并把这些对象封装到一个集合类(比如ArrayList)中返回。
jsp页面将得到的集合用JSTL核心标签给予显示,并且每个用户信息右边提供“修改”、“删除”链接,点击“修改”打开另一个jsp页面,可以查看该用户详细信息(以表单的形式显示),并可以进行提交修改;点击“删除”,链接到一个Servlet,Servlet取得当前商品的id号作为参数,调用JavaBean中的方法进行删除操作。
管理订单
提供一个jsp页面显示所有订单信息列表,其实现方式是调用JavaBean中的方法对数据库进行查询,此方法将查询到的所有订单信息封装成对象并把这些对象封装到一个集合类(比如ArrayList)中返回。
jsp页面将得到的集合用JSTL核心标签给予显示,并且每条信息右边提供“查看详情”、“删除”链接,点击“查看详情”打开另一个jsp页面,可以查看该订单详细信息,包括此订单所选择的商品明细,这些信息是不可以修改的,还要查询数据库显示出此订单是否已发货、是否已付款(用表单显示),可以对这两个状态进行修改;点击“删除”,链接到一个Servlet,Servlet取得当前订单的id号作为参数,调用JavaBean中的方法进行删除操作。
用户注册
提供一个显示用户注册信息的表单,用户输入信息后提交给Servlet,Servlet取得注册信息,封装成对象,调用JavaBean插入数据库。
用户的登陆
显示登陆的jsp页面,输入帐号、密码后,该表单提交给Servlet,Servlet将提交的帐号信息封装成实体Bean的对象,将此作为参数,调用JavaBean中的方法查询数据库,该方法返回true证明为合法帐号,允许登陆,并重定向到用户首页,此时具备购买等权限;否则返回登陆页,重新登陆。
在线购物
提供jsp页面可以查看所有商品以及分类查看,以链接的形式,点击链接可查看到该类别下的所有商品,此功能调用JavaBean查询数据库即可实现,所有商品右边提供“详细信息”链接,可查看商品的详细信息;并提供购买数量的表单输入框,点击购买,表单提交给Servlet,Servlet将购买的商品信息封装成对象,然后从session中取出购物车中商品集合(ArrayList),如果取出为null,则证明当前购物车中还没有商品,创建一个新的ArrayList,将该实体Bean对象放入该ArrayList中,再写入session。
下订单
一个jsp页面给客户提供查看购物车功能,在购物车中所选商品列表右边提供修改购买数量的表单输入框以及“删除”链接,点击修改,提交给Servlet,Servlet将购买的商品数量信息取出,并从session中取出购物车中商品集合(ArrayList),从ArrayList中查找出相应商品对象,并调用相应set方法将购买数量修改,然后再将更新后的ArrayList放回session。
点击“删除”链接,访问Servlet,同样从session中先取出购物车中商品集合ArrayList,从ArrayList中删除掉相应商品,再回写入session。购物车中提供一个购买确认按钮,点击后访问Servlet,随即生成一个订单编号,并调用JavaBean,将确认购买的商品信息更新相应数据库表,商品信息表中的相应商品数量要-1。
查看订单信息
提供jsp页面,调用JavaBean查询数据库,显示订单信息,包括当前订单状态,是否已付款、是否发货、发货时间等。
第四部分、数据库设计
数据库名:shop
表设计
--------------------------------------------------管理员表
--drop table My_ShopAdminuser;
create table My_ShopAdminuser( --商店管理员表
AdminUser varchar(20), --管理员用户名
AdminPass varchar(20) --管理员密码
);
insert into My_ShopAdminuser --初始化管理员用户
values('admin','admin');
--------------------------------------------------注册用户表
--drop table My_Users;
create table My_Users ( --购物用户表
Id numeric not null identity(1,1), --ID序列号
UserName varchar(20) not null, --购物用户名
PassWord varchar(20) not null, --用户密码
Names varchar(20), --用户联系用姓名
Sex varchar(2), --用户性别
Address varchar(150), --用户联系地址
Phone varchar(25), --用户联系电话
Post varchar(8), --用户联系邮编
Email varchar(50), --用户电子邮件
RegTime datetime, --用户注册时间
RegIpAddress varchar(20) --用户注册时IP地址
);
alter table My_Users --设定Id为主键值
add primary key (Id);
--------------------------------------------------商品类别表
--drop table My_ShopClass;
create table My_ShopClass( --商品类别
Id numeric Not Null primary key, --ID序列号
ClassName varchar(30) not null --商品类别名
);
--------------------------------------------------商品信息表
--drop table My_Shop;
create table My_Shop( --商品信息表
Id numeric NOT NULL identity(1,1) , --ID序列号
ShopName varchar(40) NOT NULL, --商品名
ShopClass numeric not null, --商品类别ID
IsNew varchar(10) NULL, --商品新旧程度
ShopAddress varchar(100) NULL, --产地
Content varchar(3000) NULL, --内容介绍
Prince numeric NULL, --价格
Amount numeric NULL, --总数量
Leav_number numeric NULL, --剩余数量
RegTime datetime NOT NULl --商品发布时间
);
alter table My_Shop --设定Id为主键值
add primary key (Id);
--------------------------------------------------用户-订单表
--drop table My_Indent;
create table My_Indent( --购物车订单号表
Id numeric not null identity(1,1), --ID序列号
IndentNo varchar(20) not null, --订单编号
UserId numeric not null, --用户序列号
SubmitTime datetime not null, --提交订单时间
ConsignmentTime varchar(20), --发货时间
TotalPrice numeric, --总金额
content varchar(400), --用户备注
IPAddress varchar(20), --下单时IP
IsPayoff numeric null, --用户是否已付款
IsSales numeric null --是否已发货
);
alter table My_Indent --设定Id为主键值
add primary key (Id);
--------------------------------------------------订单-商品表
--drop table My_IndentList;
create table My_IndentList( --购物车订单货物列表
Id numeric not null identity(1,1), --ID序列号
IndentNo numeric not null, --订单号表ID号
ShopNo numeric not null, --商品表ID号
Amount numeric --订货数量
);
alter table My_IndentList --设定Id为主键值
add primary key (Id);
。收起