学生作品SOA架构网上书店系统功能分析与设计.docx
- 文档编号:12413797
- 上传时间:2023-04-18
- 格式:DOCX
- 页数:15
- 大小:58.73KB
学生作品SOA架构网上书店系统功能分析与设计.docx
《学生作品SOA架构网上书店系统功能分析与设计.docx》由会员分享,可在线阅读,更多相关《学生作品SOA架构网上书店系统功能分析与设计.docx(15页珍藏版)》请在冰豆网上搜索。
学生作品SOA架构网上书店系统功能分析与设计
常州信息职业技术学院
《软件开发与项目管理》
学生作品
作品题目:
基于SOA技术的网上书店
功能分析与设计
作品作者:
申秋晨
指导教师:
郭永洪
完成时间:
2012年07月
一、项目简介
能在Internet上实现商品的展示、商品的检索、商品的订购、订单的全程跟踪与管理、货款的支付的系统称为网上购物系统。
本项目拟为XXX书籍销售商构建一个网上书籍定购平台。
为提高系统的灵活性和可扩展性,平台将采用WebService技术,在平台组件的构成中使用面向服务架构(SOA)。
网上书籍订购平台将基于微软WindowsServer2003操作系统,利用微软.NET平台和WebService相关技术设计与开发。
二、功能描述
网上书籍订购平台在逻辑上由两个主要部分组成:
●客户服务网站
●商品配送中心
客户服务网站是平台面向客户的门户网站,主要提供书籍的检索、列表和购买功能。
客户通过登录进入平台客户服务网站,查找他们喜欢的书籍,定购并选择送货的时间和地址。
完成订货后,客户可以在客户服务网站上跟踪订单的状态,了解发货送货的情况。
客户服务网站是平台的核心部分,由XXX书籍销售商负责运营。
商品仓储配送中心(以下简称配送中心)是XXX书籍销售商在全国各地的配送网点。
配送中心可以是XXX书籍销售商的分支机构,也可以是XXX书籍销售商在各地的合作伙伴。
XXX书籍销售商通过书籍订购平台与配送中心协调工作,借助平台完成发送订单数据,最终配送商品的完整过程。
图1网上书籍订购平台业务流程图
二、功能设计
(一)客户信息管理
客户信息管理记录了客户的基本信息,为客户服务网站中的帐户,提供了注册登录功能。
该模块的功能包括:
注册、登录、注销。
1.用户注册界面
用户注册界面包含用户注册时需要填写的用户信息。
需要的用户信息包括:
用户名、笔名、密码、确认密码、电子邮件地址、送货地址(姓名、地址、省份、城市、邮政编码、国家、手机)
以上所有信息都是必须填写的信息。
用户注册界面下方有1个按钮:
确定。
单击确定按钮将根据用户输入的信息注册用户账户。
如果用户名已存在将提示用户重新选择用户名。
输入验证:
●用户名可以是数字和字符的组合
●密码和确认密码要相同
●电子邮件格式要正确
2.用户登录界面
用户登录界面使用文本框控件来接受用户输入的用户名和密码。
接受用户输入的控件是:
用户、密码。
用户登录界面右方有1个按钮:
登录。
如果输入的用户名密码正确,单击登录按钮将成功登录,并在网站页面中显示登录成功欢迎信息。
如果输入的用户名密码不匹配,则回到登录界面,清除用户输入的错误的用户名和密码。
使用者必须输入用户名和密码,才可以单击登录按钮登录,因此对以下输入进行验证:
●用户名已输入
●密码已输入
3.登录成功欢迎信息和注销
登录成功欢迎信息界面显示了:
用户登录名。
登录成功欢迎信息界面中包含一个按钮:
退出。
用户登录成功后,主页面中显示登录成功欢迎信息。
其中包括用户的登录名。
用户单击“退出”按钮将退出登录。
此后用户可以根据需要重新登录网站。
(二)商品信息浏览和查询
该模块用于在客户服务网站上显示书籍销售商目前可以供应的书籍产品。
用户可以按照分类浏览各种书籍的图片和介绍信息。
用户还可以通过关键字和书籍用途查询书籍信息。
该模块主要功能包括:
书籍分类列表、书籍详细信息浏览、书籍查询。
1.书籍分类列表
书籍分类列表用于显示可供定购的书籍品种分类,帮助客户根据分类进行浏览。
书籍分类的层次为简单的一层分类,每个分类下不包含子分类,而直接包含书籍产品。
分类信息不能由用户定义和修改,用户也不能选择只查看一部分的分类信息。
预设的分类方式有:
●书籍分类
●出版社
●作者
每个分类名称都包含一个链接,用户单击分类相关的链接即可跳转至相应的分类列表,浏览该分类中所有的书籍。
分类列表中显示所有属于该类别书籍产品的简要信息和图片。
单击产品名称或图片将跳转至书籍详细信息。
2.书籍详细信息
书籍详细信息包含以下内容:
书籍名称、封面图片、书籍简介、作者、出版社。
书籍详细信息界面中还包括一个购买按钮:
加入购物车。
单击加入购物车按钮将把当前浏览的书籍加入购物车中,默认的购买数量为1。
3.书籍查询界面
在书籍查询界面中,用户可以根据选择的查询关键字和查询条件查询书籍产品。
查询结果显示在书籍查询结果列表中。
书籍查询界面需要以下输入:
查询关键字、查询条件。
查询关键字以文本框形式接受用户输入的关键字。
查询条件为下拉列表框,可以选择的条件为:
名称(默认条件)、作者、出版社、ISBN、类别。
用户输入的关键字必须与所选择的查询条件相关,这样才能进行有效查询。
查询界面包括一个按钮:
查找。
单击查找按钮将根据输入的关键字和选定的条件执行查找功能。
书籍查询结果列表:
在书籍查询结果列表界面中,列表的内容和功能与书籍分类列表相同。
(三)购物车和订单确认
书籍订购平台客户服务网站的购物车和订单确认系统可以帮助客户保存需要定购的书籍,包括书籍名称、定购数量,显示书籍的单价、总价;帮助客户完成定购、付款确认和指定送货地址,完成订单。
当订单确认后,平台将根据用户指定的送货地域自动选择合适的配送中心,完成交货配送。
该模块主要功能包括:
购物车管理、确认订单和确认发货地址、订单路由。
1.购物车管理
用户可以通过购物车管理界面查看当前购物车中的书籍产品信息、数量及单价、总价。
还可以通过该界面更新定购货物的数量,删除某个或多个购物车中的商品,更新购物车状态。
购物车管理界面中的按钮有:
更新、删除、继续购买、确定。
单击更新按钮,将根据用户修改的书籍定购数量更新购物车。
单击某本书后的删除按钮,该书籍将从购物车中删除。
2.订单确认
用户使用订单确认界面最后确认订单,确定送货地址并提交订单。
该界面上显示用户订单的内容提要,包括所选择的商品名称、单价、总价,送货的地址。
订单确认界面有一个按钮:
确定。
单击“确定”按钮将确认订单,认可购买的书籍。
3.配送地址确认
配送地址确认界面,用于显示送货地址和帐单地址。
地址来自用户的注册信息,用户可以在本界面修改预设的配送地址。
单击确定按钮完成地址确定。
(四)客户订单管理
客户可以使用本模块提供的功能查询所有历史订单(包括订单的日期、内容等信息),跟踪某个正在交易、送货过程中的订单的状态。
该模块主要功能包括:
已完成订单查询、订单详细信息显示、当前订单跟踪。
用户登录已经完成订单界面后,即可查看自己订单的历史记录。
通过本界面显示已经完成的订单,包括订单编号,完成的时间和下单的时间。
每条订单信息后有详细信息链接,单击详细信息链接则可以显示每条订单的详细信息,包括:
订单编号、客户的姓名、订单日期、联系方式、订单中包括的商品名称和相应的数量、价格、订单总价。
(五)订单管理和跟踪
配送中心可以检查所有发送到本中心的订单历史记录以及目前需要完成的订单,并向客户服务网站提供当前订单的状态,以供客户通过客户服务网站进行查询。
该模块主要功能包括:
订单历史记录的列表和查询、未完成订单的状态查询和状态更新、订单信息明细列表、客户订单状态跟踪支持。
1.订单历史记录查询窗体
在订单历史记录查询窗体中,配送中心管理员通过输入订单日期的起始和结束时间,查询在该时间段内已经完成的订单记录。
查询结果将显示在窗体的列表框中。
单击每条订单对应的详细信息按钮将转到订单详细信息窗体。
2.未完成订单窗体
未完成订单窗体用于显示配送中心尚未完成,需要配送的订单信息。
单击每条订单信息对应的完成按钮将表示配送完成。
3.订单详细信息窗体
订单详细信息窗体,用于显示某个订单的详细信息,包括:
订单编号、客户的姓名、订单日期、联系方式、订单中包括的商品名称和相应的数量、价格、订单总价。
4.客户订单状态跟踪支持
客户订单状态跟踪支持功能是配送中心提供给客户服务网站的功能,没有界面。
该功能将客户的订单状态传递给客户服务网站,使用户可以统一地通过客户服务网站查询订单状态,而无需与配送中心交互。
三、系统主要功能编码实现
(一)书籍查找页面
该页面是在MasterPage.master中下拉菜单,其中放入条码,书名,作者,出版社,种类等相关查找,并放一个文本框输入关键字,点击按扭后连接到此页,此页中放入一个GridView并加一个返回按扭返回到CategoryView.aspx继续查找。
首先MasterPage.master中
Session["search"]=DropDownList1.SelectedValue.ToString();
Session["searchword"]=TextBox3.Text.ToString();
Response.Redirect("~/BookSearch.aspx");
此页面代码如下:
stringstrWord=Session["searchword"].ToString();
stringserCar=Session["search"].ToString();
SqlConnectioncon=newSqlConnection();
con.ConnectionString="server=localhost;database=BookShop;userid=book;password=book";
con.Open();
stringsql="SELECTBook.BookId,Book.Name,Book.Price,Author.NameASExpr1,Publisher.NameASExpr2,Category.NameAsExpr3FROMBookINNERJOINAuthorONBook.AuthorFK=Author.AuthorIdINNERJOINCategoryONBook.CategoryFK=Category.CategoryIdINNERJOINPublisherONBook.PublisherFK=Publisher.PublisherId";
if(serCar=="作者"){
sql=sql+"whereAuthor.NameLike'%"+strWord+"%'";
}
elseif(serCar=="出版社"){
sql=sql+"wherePublisher.NameLike'%"+strWord+"%'";
}
elseif(serCar=="书名"){
sql=sql+"whereBook.NameLike'%"+strWord+"%'";
}
SqlDataAdapterda=newSqlDataAdapter(sql,con);
DataSetds=newDataSet();
da.Fill(ds,"search");
DataList1.DataKeyField="BookId";
DataList1.DataMember="search";
DataList1.DataSource=ds;
DataList1.DataBind();
con.Close();
(二)热门书籍查询页面
本页面是用来查询热门书籍的,由于方便购买将所有书籍都设为热门的在此页中放入一个DataList将数据库中的所有书信息导入到DataList中,编辑模板在模板列中放入一个按扭用于放入购物车。
代码如下:
SqlConnectioncon=newSqlConnection();
con.ConnectionString="server=localhost;database=BookShop;userid=book;password=book";
con.Open();
stringsql="SELECTTop5Book.BookId,Book.Name,Book.Price,Author.NameASExpr1,Publisher.NameASExpr2,Category.NameAsExpr3,Category.CategoryIdASExpr4FROMBookINNERJOINAuthorONBook.AuthorFK=Author.AuthorIdINNERJOINCategoryONBook.CategoryFK=Category.CategoryIdINNERJOINPublisherONBook.PublisherFK=Publisher.PublisherIdOrderbyBook.PurchaseCounterdesc";
SqlDataAdapterda=newSqlDataAdapter(sql,con);
DataSetds=newDataSet();
da.Fill(ds,"search");
DataList1.DataKeyField="BookId";
DataList1.DataMember="search";
DataList1.DataSource=ds;
DataList1.DataBind();
con.Close();
(三)购物车功能实现
该页面是在用户选择购买某中图书商品后,进入的页面。
在该页面中将显示该用户购物车中现有的所有购买需求记录。
同时提供更新购物车的操作界面,例如,可以输入购买数量或者选择删除购买记录。
单击“更新”按钮后,将提交更新请求,进行对应的图书数量更改;若单击“删除”按钮,将删除选中的书籍;单击“确定”按钮,将进入订单确认界面。
此外,也可以单击“继续购买”按钮,请求返回网上书店主页面继续购书。
相关代码:
1.删除购物车中选中的商品
protectedvoidGridView1_RowDeleting(objectsender,GridViewDeleteEventArgse){
intid=(int)GridView1.DataKeys[e.RowIndex].Value;
SqlConnectioncon=newSqlConnection();
con.ConnectionString="server=127.0.0.1;database=BookShop;userid=book;password=book";
con.Open();
SqlCommandcmd=newSqlCommand("deletefromOrderLinewhereOrderLineId="+id,con);
cmd.ExecuteNonQuery();
con.Close();
}
2.更新购物车中选中的商品
protectedvoidGridView1_RowUpdating(objectsender,GridViewUpdateEventArgse){
intid=(int)GridView1.DataKeys[e.RowIndex].Value;
TextBoxt_Quantity=(TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox1");
stringt_Quantity1=t_Quantity.Text;
intt_Quantity2=Convert.ToInt32(t_Quantity1);
SqlConnectioncon=newSqlConnection();
con.ConnectionString="server=127.0.0.1;database=BookShop;userid=book;password=book";
con.Open();
SqlCommandcmd=newSqlCommand("updateOrderLinesetQuantity="+t_Quantity2+"whereOrderLineId="+id,con);
cmd.ExecuteNonQuery();
con.Close();
}
3.实现页面跳转
protectedvoidButton1_Click(objectsender,EventArgse){
Response.Redirect("BookSearchHot.aspx");
}
(四)订单确认功能的实现
订单确认界面主要用来显示顾客的原始地址信息,当单击“确定按钮”,即可实现订单确认,并转到“配置地址确认”界面。
相关代码:
1.显示订单原始地址信息
protectedvoidPage_Load(objectsender,EventArgse)
{SqlConnectioncon=newSqlConnection();
con.ConnectionString="server=127.0.0.1;database=BookShop;userid=book;password=book";
con.Open();
SqlCommandcmd=newSqlCommand("selectmax(AccountId)fromAccount",con);
SqlDataReaderdr=cmd.ExecuteReader();
if(dr.Read()){
Session["AccountId"]=Convert.ToInt32(dr[0]);
}
SqlCommandcmd2=newSqlCommand("selectAddressFkfromAccountwhereAccountId="+Session["AccountId"],con);
SqlDataReaderdr2=cmd2.ExecuteReader();
if(dr2.Read())
{
Session["AddressFk"]=Convert.ToInt32(dr2[0]);
}
stringaddressString="selectName,Add1,Add2,Add3,City,State,Zip,Country,Phone,MobilefromAddresswhereAddressId="+Session["AddressFk"];
SqlCommandcmd1=newSqlCommand(addressString,con);
SqlDataReaderdr1=cmd1.ExecuteReader();
if(dr1.Read()){
//读取地址信息显示在界面上
}
con.Close();
}
2.保存Dropdownlist中选择的单位,在单击Button时实现页面跳转
protectedvoidButton1_Click(objectsender,EventArgse){
Session["DelivererName"]=DropDownList1.SelectedValue.ToString();
Response.Redirect("ShoppingConfirm.aspx");
}
(五)配置地址确认功能的实现
配置地址确认界面中,“订单地址”用来显示顾客的原始地址信息,“送货地址”用来输入顾客的新地址信息。
单击“确认”按钮,将会把顾客的新地址信息插入到数据库相应的表中。
相关代码:
1.在帐单地址栏里显示原始地址信息
protectedvoidPage_Load(objectsender,EventArgse){
TextBox1.Text=Convert.ToString(Session["name"]);
TextBox2.Text=Convert.ToString(Session["add1"]);
TextBox3.Text=Convert.ToString(Session["add2"]);
TextBox4.Text=Convert.ToString(Session["add3"]);
TextBox5.Text=Convert.ToString(Session["city"]);
TextBox6.Text=Convert.ToString(Session["state"]);
TextBox7.Text=Convert.ToString(Session["zip"]);
TextBox7.Text=Convert.ToString(Session["zip"]);
TextBox7.Text=Convert.ToString(Session["zip"]);
TextBox8.Text=Convert.ToString(Session["country"]);
TextBox9.Text=Convert.ToString(Session["phone"]);
TextBox10.Text=Convert.ToString(Session["mobile"]);
}
2.在送货地址栏中输入新地址,并把它插入到Address表中;另外把相关的订单信息插入到Order表中
protectedvoidButton1_Click(objectsender,EventArgse){
SqlConnectioncon=newSqlConnection();
con.ConnectionString="server=127.0.0.1;database=BookShop;userid=book;password=book";
con.Open();
stringsqlString="selectName,Add1,Add2,Add3,City,State,Zip,Country,Phone,MobilefromAddress";
SqlDataAdapterda=newSqlDataAdapter(sqlString,con);
DataSetds=newDataSet();
da.Fill(ds,"Address");
DataTabledt=ds.Tables["Address"];
DataRownewRow=dt.NewRow();
newRow["Name"]=TextBox11.Text;
newRow["Add1"]=TextBox12.Text;
newRow["Add2"]=TextBox13.Text;
newRow["Add3"]=TextBox14.Text;
newRow["City"]=TextBox15.Text;
newRow["State"]=TextBox16.Text;
newRow["Zip"]=TextBox17.Text;
newRow["Country"]=TextBox18.Text;
newRow["Phon
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 作品 SOA 架构 网上 书店 系统 功能分析 设计