解决方案说明书ShoppingSMD.docx
- 文档编号:26471774
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:30
- 大小:98.82KB
解决方案说明书ShoppingSMD.docx
《解决方案说明书ShoppingSMD.docx》由会员分享,可在线阅读,更多相关《解决方案说明书ShoppingSMD.docx(30页珍藏版)》请在冰豆网上搜索。
解决方案说明书ShoppingSMD
解决方案说明书
--购物流程
SolutionModelDescription
编号:
Shopping-SMD
版本1.0
作者:
日期:
审批:
日期:
变更记录
日期
版本
变更说明
作者
1.0
创建
1.简介
1.1内容
1.2适用对象
1.3参考文档
2.系统整体架构
MVC架构图
Tier和Layer的包图
部署图
3.资源层解决方案
3.1数据库设计的概念模型
3.2资源层组件
资源层组件是完成数据库处理的组件,例如数据源的管理、执行数据库的查询、CRUD。
资源层使用DAO模式实现。
通过DAO模式对各个数据库对象进行封装,我们对业务层屏蔽了数据库访问的底层实现,业务曾仅包含与本领域相关的逻辑对象和算法,这样对于业务逻辑开发人员(以及日后专注于业务逻辑的代码阅读者)而言,面对的是一个简洁明快的逻辑实现结构。
业务层的开发和维护将变得更加简单。
DAO模式中,数据库访问层实现被隐藏到DataAccessor中,前面说过,DAO模式实际上是两个模式的组合,即DataAccessor和DomainObject模式。
何谓DataAccessor?
即将数据访问的实现机制加以封装,与数据的使用代码相分离,从外部来看,DataAccessor提供了黑盒式的数据存取接口。
DomainObject则提供了对所面向领域内对象的封装。
具体实现步骤如下:
1.创建一个抽象工厂类,他包含两个重要的部分:
第一部分是 一些抽象方法,这些方法是所有实现该抽象工厂的具体工厂类所必须实现的. 第二部分 就是一个静态方法,该方法来创建一个具体类型数据源的工厂对象,比如文中的DB2DAOFactory().
2 然后,分别创建各个类型数据源的工厂类,(本文以DB2DAOFactory为例).在这个工厂类中里面也有两个重要组成部分:
第一部分就是实现在他继承的那个抽象工厂类中的左右抽象方法,在该方法中创建具体的DAO对象(这些对象的类在第4不具体定义实现),本文中三个方法分别创建了3个具体的DAO对象,当然为了实现细节的隐蔽,这些方法返回的是这些具体DAO类门实现的接口(这些接口在第3步实现).
3 定义具体DAO类的接口,并在接口中定义所有的业务方法,和数据操作方法.
4 定义具体的DAO类,在这个类中才是实际的业务方法,和数据的操作的实现.
5 定义数据传输对象,他是用来在客户端和DAO之间传递数据的,他其实就是一个JAVABEAN.
3.2.1资源层类图
3.2.2类详细设计
类名称
DAOFactory
所属包名称
com.ibm.edu.data
类静态变量定义
名称
类型
描述
类变量定义(先Public->protected->private)
名称
类型
描述
方法(先Public->protected->private)
名称
参数
返回值
简单描述
createConnection
Connection
得到数据库连结
getCustomerDAO
CustomerDAO
得到DAO
getOrderDAO
OrderDAO
得到DAO
getAddressDAO
AddressDAO
得到DAO
getOrderItemDAO
OrderItemDAO
得到DAO
getCatetoryDAO
CatetoryDAO
得到DAO
getProductDAO
ProductDAO
得到DAO
getWishlistDAO
WishlistDAO
得到DAO
getBonusDAO
BonusDAO
得到DAO
getCommentDAO
CommentDAO
得到DAO
类名称
CustomerDAO
所属包名称
com.ibm.edu.data
类静态变量定义
名称
类型
描述
类变量定义(先Public->protected->private)
名称
类型
描述
方法(先Public->protected->private)
名称
参数
返回值
简单描述
insertCustomer
CustomerBean
null
updateCustomer
CustomerBean
null
deleteCustomer
String
null
findCustomerByID
String
CustomerBean
findCustomerBy…
String
Collection
1.
4.业务层解决方案
4.1业务层概述
4.2业务层类图
4.3业务层类详细设计
类名称
ShoppingCart
所属包名称
com.ibm.edu.order.util
类静态变量定义
名称
类型
描述
类变量定义(先Public->protected->private)
名称
类型
描述
cartItems
Vector
购物车中商品条目
totalPrice
Decimal
商品总价格
totalDiscountPrice
Decimal
折后价格
totalPoint
Decimal
可获得的总积分
shipCharge
Decimal
送货费用
adjustPrice
Decimal
调整价格
userId
Integer
客户号
方法(先Public->protected->private)
名称
参数
返回值
简单描述
addItem
productId,productName,price,discountPrice,quantity
Null
增加商品到购物车
updateItem
productId,quantity
Null
修改购物车中的商品数量
getItems
List
得到购物车中所有商品
clearCart
Null
清空购物车
calTotalPrice
Decimal
计算购物车总价格
calDiscountPrice
Decimal
计算购物车折后价
calShipCharge
Decimal
计算送货费用,根据送货地址不同有不同的送货费用
calAdjustPrice
Decimal
计算调整价格,购物金额超过一定数额可以免送货费
calBonusPoint
Integer
计算可以获得的积分数,根据购物总金额和会员级别计算
removeItem
productId
null
从购物车删除商品
类名称
CartItem
所属包名称
com.ibm.edu.order.util
类静态变量定义
名称
类型
描述
类变量定义(先Public->protected->private)
名称
类型
描述
productId
Integer
商品标识
productName
String
商品名称
price
Decimal
商品价格
discountPrice
Decimal
折后价格
quantity
Integer
商品数量
方法(先Public->protected->private)
名称
参数
返回值
简单描述
getProductName
取得商品名称
getPrice
取得价格
getDiscountPrice
取得折后价
getQuantity
取得商品数量
setQuantity
设置商品数量
类名称
AddShoppingcartController
所属包名称
mand
类静态变量定义
名称
类型
描述
类变量定义(先Public->protected->private)
名称
类型
描述
方法(先Public->protected->private)
名称
参数
返回值
简单描述
execute
1.得到从页面层传递的数据:
要添加的商品号,商品名称,商品价格,商品折扣价,数量。
2.判断session里是否有购物车,如果没有,创建购物车对象,并放入session.如果存在,得到购物车对象。
3.调用ShoppingCart类的addItem()方法,把商品加入购物车
4.调用ShoppingCart类的calTotalPrice()和calDiscountPrice()得到购物车的总价格和折扣价格。
5.将结果返回到页面层。
类名称
UpdateShoppingcartController
所属包名称
mand
类静态变量定义
名称
类型
描述
类变量定义(先Public->protected->private)
名称
类型
描述
方法(先Public->protected->private)
名称
参数
返回值
简单描述
execute
1.得到从页面层传递的数据:
要修改的商品号,数量。
2.调用ShoppingCart类的updateItem()方法,修改商品数量。
3.调用ShoppingCart类的calTotalPrice()和calDiscountPrice()得到购物车的总价格和折扣价格。
4.将结果返回到页面层。
类名称
DeleteShoppingcartController
所属包名称
mand
类静态变量定义
名称
类型
描述
类变量定义(先Public->protected->private)
名称
类型
描述
方法(先Public->protected->private)
名称
参数
返回值
简单描述
execute
1.得到从页面层传递的数据:
要删除商品号。
2.调用ShoppingCart类的deleteItem()方法,把商品移出购物车
3.调用ShoppingCart类的calTotalPrice()和calDiscountPrice()得到购物车的总价格和折扣价格。
4.将结果返回到页面层。
类名称
SubmitOrderController
所属包名称
mand
类静态变量定义
名称
类型
描述
类变量定义(先Public->protected->private)
名称
类型
描述
方法(先Public->protected->private)
名称
参数
返回值
简单描述
exucute
1.判断用户是否登陆,如果没有登陆,跳转到登陆页面。
2.从session中得到购物车对象。
3.调用ShoppingCart类的getItems()方法,得到购物车中的每一条记录。
4.调用checkInventory()方法检查每件商品的库存是否满足购买需求。
5.调用createOrder()方法生成订单。
checkInventory
productId,quantity
1.从数据库中得到商品的数量。
2.和购物车中的数据做比较。
createOrder
1.根据购物车中的条目生成订单项。
2.扣除已购买的库存。
3.调用ShoppingCart类的calTotalPrice,calDiscountPrice,calShipCharge,calAdjustPrice,将结果写入订单。
4.调用ShoppingCart类的clearCart方法清空购物车。
5.调用ShoppingCart类的calBonusPoint方法计算积分,将积分记录写入数据库。
类名称
CheckAcountController
所属包名称
mand
类静态变量定义
名称
类型
描述
类变量定义(先Public->protected->private)
名称
类型
描述
方法(先Public->protected->private)
名称
参数
返回值
简单描述
exucute
1.判断用户是否登陆,如果没有登陆,跳转到登陆页面。
2.从session中得到购物车对象。
3.调用ShoppingCart类的calTotalPrice,calDiscountPrice,calShipCharge,calAdjustPrice,计算总价格,折扣价格,送货费用,调整价格。
4.调用ShoppingCart类calBonusPoint方法计算积分。
5.将计算结果返回到页面层。
类名称
CancelOrderController
所属包名称
mand
类静态变量定义
名称
类型
描述
类变量定义(先Public->protected->private)
名称
类型
描述
方法(先Public->protected->private)
名称
参数
返回值
简单描述
execute
1.判断用户是否登陆,如果没有登陆,跳转到登陆页面。
2.设置定单的状态为“取消”
3.根据此定单中每个订单项对应的商品数量,把库存数还原
4.修改该订单对应的积分记录的状态为“取消”
类名称
ApproveOrderController
所属包名称
mand
类静态变量定义
名称
类型
描述
类变量定义(先Public->protected->private)
名称
类型
描述
方法(先Public->protected->private)
名称
参数
返回值
简单描述
execute
1.判断用户是否登陆,如果没有登陆,跳转到登陆页面。
2.设置订单的状态为“已审批”
3.调用setBonusPoint设置用户的积分
4.调用EmailService类的sendMail方法给客户发送邮件通知
setBonusPoint
1.设置积分记录的状态为“已审批”
2.将积分累积到客户的总积分
3.根据积分规则,判断客户是否可以升级等级。
类名称
LoginController
所属包名称
mand
类静态变量定义
名称
类型
描述
类变量定义(先Public->protected->private)
名称
类型
描述
方法(先Public->protected->private)
名称
参数
返回值
简单描述
execute
null
1.得到客户端参数,包括用户名,密码。
2.调用checkPassword校验密码
3.将sessionId保存到customer表
4.将用户名信息保存到session.
checkPassword
Username,password
boolean
1.根据用户名从数据库中查询密码
2.比较用户输入的密码和数据库中保存的密码是否一致
类名称
RegisterController
所属包名称
mand
类静态变量定义
名称
类型
描述
类变量定义(先Public->protected->private)
名称
类型
描述
方法(先Public->protected->private)
名称
参数
返回值
简单描述
execute
null
1.得到客户端参数
2.调用register函数保存数据
3.将sessionId保存到customer表
4.将用户名信息保存到session.
5.调用EmailService的sendMail方法
给客户发送电子邮件
register
null
1.将注册信息保存到数据库
2.给客户赠送积分,保存到积分历史记录表,更新客户积分
类名称
ResetPasswdController
所属包名称
mand
类静态变量定义
名称
类型
描述
类变量定义(先Public->protected->private)
名称
类型
描述
方法(先Public->protected->private)
名称
参数
返回值
简单描述
execute
null
1.得到客户端参数
2.调用resetPassword重置密码
3.调用EmailService的sendMail方法将新密码发送到客户的邮箱
resetPassword
null
1.使用随机算法生成密码
2.将密码保存到客户表
类名称
AddCommentController
所属包名称
mand
类静态变量定义
名称
类型
描述
类变量定义(先Public->protected->private)
名称
类型
描述
方法(先Public->protected->private)
名称
参数
返回值
简单描述
execute
null
1.得到客户端参数
2.判断用户是否登陆,如果没有登陆,跳转到登陆页面。
3.将数据保存到数据库
5.表示层解决方案
5.1表示层概述
5.2表示层类图
5.3用例实现
5.3.1XXX用例
1.用例名称及编号
2.用例概述
3.页面流程图
4.视图设计(JSP、Servlet)
JSP页面说明
页面名称
categorydisplay.jsp
功能简述
显示商品目录,在首页显示
进入的URL
/product/categorydisplay
进入方式
Forward
输入参数
编号
参数名称
来源
说明
输出描述
显示商品目录的列表,目录分级显示
JSP页面说明
页面名称
productdisplay.jsp
功能简述
显示商品列表,用户点击目录或从搜索页面进入
进入的URL
/product/productdisplay
进入方式
Forward
输入参数
编号
参数名称
来源
说明
目录标识
request
用户选中的目录作为参数传到此页面
搜索关键词
request
用户输入的搜索关键词
输出描述
商品列表显示,显示项:
商品图片,商品名称,市场价,会员价,是否有货
JSP页面说明
页面名称
productdetail.jsp
功能简述
显示商品详细信息,用户点击商品进入此页面
进入的URL
/product/productdetail
进入方式
Forward
输入参数
编号
参数名称
来源
说明
商品标识
request
用户选中的目录作为参数传到此页面
输出描述
商品详细信息页面,显示项:
商品图片,商品名称,市场价,会员价,是否有货,商品描述信息,商品评论信息
JSP页面说明
页面名称
cart.jsp
功能简述
显示购物车信息
进入的URL
/product/cart
进入方式
Forward
输入参数
编号
参数名称
来源
说明
sessionId
request
系统参数
输出描述
购物车信息页面,显示购物车中的商品,显示项:
商品图片,商品名称,市场价,会员价,数量。
总计金额,总计折后价
JSP页面说明
页面名称
checkaccount.jsp
功能简述
显示结账信息
进入的URL
/product/checkaccount
进入方式
Forward
输入参数
编号
参数名称
来源
说明
sessionId
request
系统参数
输出描述
结账信息页面,显示购物车中的商品,显示项:
商品图片,商品名称,市场价,会员价,数量。
总计金额,总计折后价
送货地址信息
配送费用
免除送货费金额
JSP页面说明
页面名称
order.jsp
功能简述
显示订单历史记录
进入的URL
/product/order
进入方式
Forward
输入参数
编号
参数名称
来源
说明
sessionId
request
系统参数
starttime
request
用户输入
endtime
request
用户输入
orderstatus
request
用户输入
输出描述
订单列表,显示项目:
订单号,客户号,下单日期,订单状态
JSP页面说明
页面名称
Orderdetail.jsp
功能简述
显示订单详细信息
进入的URL
/product/orderdetail
进入方式
Forward
输入参数
编号
参数名称
来源
说明
orderId
request
用户点击订单,进入此页面
输出描述
订单详细信息显示,显示项目:
订单号,客户号,下单日期,订单状态,订单金额,送货地址,订单项信息
JSP页面说明
页面名称
addresslist.jsp
功能简述
显示地址簿列表
进入的URL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 解决方案 说明书 ShoppingSMD