《快乐买网上商城详细设计说明书详细设计说明书.docx》由会员分享,可在线阅读,更多相关《快乐买网上商城详细设计说明书详细设计说明书.docx(64页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、快乐买网上商城详细设计说明书0. 导言0.1 目的 本文档的目的是描述快乐买网上商城项目的详细设计,其主要内容包括: 系统功能简介 系统详细设计简述 在SSH框架下各个模块的分层结构 本文档的预期读者是: 设计人员 开发人员 项目管理人员 测试人员0.2 范围 该文档定义了系统的各个模块与模块接口,但未确定单元的具体实现,这部分内容将在编码实现中确定。 引用标准 1 企业文档格式标准V1.1, XXX软件。 2 软件详细设计报告格式标准V1.1,XXX软件软件工程过程化组织0.4 参考资料 1 实战Struts,Ted Husted,机械工业出版社 2 Spring Live,Matt Rai
2、ble,0.5 版本更新信息 本文档版本更新记录如表C-1所示:表C-1 版本更新记录修改编号修改日期修改后版本修改位置修改内容概述0002015-2-18全部初始发布版本1. 系统设计概述 根据快乐买网上商城系统的概要设计,系统分前台业务与后台业务, 前台业务是针对终端用户使用,用户注册成网站会员后可以浏览商品,选购商品,秒杀商品等。访问个人中心还可以管理个人信息,购物车与订单。其功能模块如下图所示: 后台业务是针对管理员用户使用,管理员登录后台系统后可以对系统基本资料进行管理,如商品管理,用户管理,管理员账户管理,订单管理,评价管理等。其功能模块如下图所示:2. 详细设计概述 本系统采用了
3、SSH框架体系结构的设计,在整个开发过程中,尽可能采用复用的原则,例如使用工厂模式,JAVA反射机制达到统一数据库操作,统一结果显示等。 本文档的详细设计主要是按照SSH框架对视图层JSP、控制器Struts、业务层Spring与持久层Hibernate进行约定,为下一步的编码提供基础。3. 详细设计 系统前台业务实现 用户注册模块负责前台用户成为网站会员,注册成功的用户信息添加到users表中 3.1.1 实现流程图 3.1.2 输入输出规则用户注册模块输入输出规则模块名称用户注册功能描述用户注册成功后允许登录系统并享有注册用户的权限用户角色游客模块触发条件打开首页选择“立即注册”输入规则输
4、入用户基本信息。要求符合格式,另外账号不能重复,邮箱不能重复输出结果注册成功后打开登录界面关键算法1.查询数据中是否存在相同的账号与邮箱2.格式验证3.验证码的生成与验证数据库操作查询用户表,增加用户信息 视图层、Action、业务层、数据持久层的说明视图Action/Servlet业务层(biz)数据持久层(dao)register.jspValidateCodeServlet.java 视图层页面设计界面JSP功能描述注册界面登录主页面首页前台首页面,包括header.jsp与footer.jsp,是为了网站统一风格页面上端复用页面,记载用户登录信息及个人信息维护菜单以及网站Logo等信息
5、页面尾端复用页面,显示广告及友情链接信息Action/Servlet设计Action/Servlet入口方法出口UserActionexecute() ()成功:login.jsp失败:register.jspValidateCodeServletdoPost()输出验证码业务层设计业务接口本模块业务方法方法说明public void saveUser(Users user);接收用户对象,将用户对象信息保存到数据库public void saveUser(Users user)写具体的HQL语句,调用Dao层方法数据持久层设计持久层接口基类接口接口说明IGenericDao基类接口应用泛型与
6、反射机制,对数据的操作进行统一处理,无需各持久层接口设计方法。UserDaoImplIUserDaoAGenericHibernateDaoUserDaoImpl继承AgenericHibernateDao类,实现IUserDao接口 3.1.4 功能实现时序图 3.2 用户登录模块 用户登录是针对已注册的用户,登录成功后,注册用户获得购物交易的相应权限。 3.2.1 实现流程图 3.2.2 输入输出规则登录模块输入输出规则模块名称登录功能描述用户登录系统以达到注册用户的系统权限用户角色注册用户模块触发条件直接选择登录或在将商品加入购物车时转向登录输入规则按照注册时输入的用户名与密码及随机验证
7、码。可以选择两周内自动登录,则用户名与密码将存入cookie;如果不选将用户对象存入session输出结果登录成功后打开首页,登录用户信息存放在cookie中或者是session中,用户可以进行购买商品或对自己的信息进行维护。关键算法数据库操作查询用户表 3.2.3视图层、Action、业务层、数据持久层的说明视图Action/Servlet业务层(biz)数据持久层(dao)ValidateCodeServlet.java视图层页面设计界面JSP功能描述登录界面登录主页面首页前台首页面,包括header.jsp与footer.jsp,是为了网站统一风格页面上端复用页面,记载用户登录信息及个人
8、信息维护菜单以及网站Logo等信息页面尾端复用页面,显示广告及友情链接信息Action/Servlet设计Action/Servlet入口方法出口UserActionUserLogin()ValidateCodeServletdoPost()输出验证码业务层设计业务接口本模块业务方法方法说明public Users CheckLogin(final String username,final String password);接收用户名与密码查询数据库返回Users对象public Users CheckLogin(final String username,final String pass
9、word);写具体的HQL语句,调用数据持久层方法数据持久层设计持久层接口基类接口接口说明IGenericDao基类接口应用泛型与反射机制,对数据的操作进行统一处理,无需各持久层接口设计方法。IUserDaoAGenericHibernateDaoUserDaoImpl继承AgenericHibernateDao类,实现IUserDao接口 3.2.4 功能实现时序图 3.3 商品搜索-品牌检索 用户可以根据网站列出的鞋子品牌、款式进行快速搜索鞋子。还可以根据商品名字进行模糊搜素。另外可以根据尺码、版型、颜色、品牌进行综合搜索。搜索到的鞋子以列表形式分页显示,可以对两个及两个以上鞋子进行对比,
10、可以查看某个鞋子的详细信息。 本环节首先说明品牌搜索实现过程 3.3.1 品牌搜索实现流程图 3.3.2 品牌搜索输入输出规则商品品牌搜索显示输入输出规则模块名称商品品牌搜索显示功能描述根据商品品牌搜索鞋子用户角色注册用户或游客模块触发条件打开网站首页输入规则用鼠标单击品牌链接输出结果显示同一品牌的所有鞋子列表关键算法1.品牌列表链接具备性别与品牌名称参数2.Action中获取到性别及品牌名称,根据性别与品牌名称查找Shoes表数据库操作查询brands表与shoes表 3.3.3视图层、Action、业务层、数据持久层的说明视图Action/Servlet业务层(biz)数据持久层(dao)
11、lsShoesaIShoesShoesBizIShoesShoes视图层页面设计界面JSP功能描述首页左侧品牌导航页面left_menu.jsp列出品牌,款式及定制链接搜索结果页面Search.jsp,其中包含根据前置条件将搜索结果列表显示Action/Servlet设计Action/Servlet入口方法出口ShoesActionleft_menu.jspSearchShoesByGenderBrand()业务层设计业务接口本模块业务方法方法说明IShoespublic PageBean SearchShoesByGenderBrand(final String brandName,fina
12、l String gender,final int currentPage,final int pageSize)根据品牌名字,性别,当前页数与每页记录数查询数据库中鞋子信息返回分页信息。Shoespublic PageBean SearchShoesByGenderBrand(final String brandName,final String gender,final int currentPage,final int pageSize)写具体的HQL语句,调用数据持久层findByPageBean()方法数据持久层设计持久层接口基类接口接口说明IShoeIGenericDao获取分页信
13、息的统一方法public PageBean findByPageBean(final String hql,final Object param,final int currentpage,final int pageSize);ShoesIShoesDaoAGenericHibernateDaoShoesDaoImpl继承AgenericHibernateDao类,实现IShoesDao接口 3.3.4 功能实现时序图3.4 商品搜索-款式检索 3.4.1 款式搜索实现流程图 3.4.2 款式搜索输入输出规则商品款式搜索显示输入输出规则模块名称商品款式搜索显示功能描述根据商品款式搜索鞋子用户
14、角色注册用户或游客模块触发条件打开网站首页输入规则用鼠标单击款式链接输出结果显示同一款式的所有鞋子列表关键算法1.款式列表链接具备款式名称参数中获取到款式名称,根据款式名称查找Shoes表数据库操作查询types表与shoes表 3.4.3视图层、Action、业务层、数据持久层的说明视图Action/Servlet业务层(biz)数据持久层(dao)视图层页面设计界面JSP功能描述首页左侧品牌导航页面列出品牌,款式及定制链接搜索结果页面S根据前置条件将搜索结果列表显示Action/Servlet设计Action/Servlet入口方法出口ShoesActionSearchShoesByTyp
15、es()业务层设计业务接口本模块业务方法方法说明public PageBean SearchShoesByTypes(final String typename,final int currentPage,final int pageSize);根据款式名称,当前页数与每页记录数查询数据库中鞋子信息返回分页信息。public PageBean SearchShoesByTypes(final String typename,final int currentPage,final int pageSize);写具体的HQL语句,调用数据持久层findByPageBean()方法数据持久层设计持久
16、层接口基类接口接口说明IGenericDao获取分页信息的统一方法public PageBean findByPageBean(final String hql,final Object param,final int currentpage,final int pageSize);IShoesDaoAGenericHibernateDaoShoesDaoImpl继承AgenericHibernateDao类,实现IShoesDao接口 3.4.4 功能实现时序图(同3.3.4)3.5 商品搜索-根据商品名与产地模糊检索 3.5.1 模糊搜索实现流程图 3.5.2 模糊搜索输入输出规则商品模糊
17、搜索显示输入输出规则模块名称商品名称模糊搜索显示功能描述根据商品名称,产地搜索鞋子用户角色注册用户或游客模块触发条件打开网站首页输入规则输入商品名称或产地关键字,并选择男款还是女款输出结果显示包含名称或产地关键字的所有鞋子列表关键算法1. 获取表单鞋子名称或产地关键字及性别2. Action中获取关键字与性别3. 业务层根据关键字与性别查询Shoes表数据库操作查询shoes表 3.5.3视图层、Action、业务层、数据持久层的说明视图Action/Servlet业务层(biz)数据持久层(dao)header.jsp 视图层页面设计界面JSP功能描述网站头部独立页面接收关键字与性别选择搜索
18、结果页面S根据前置条件将搜索结果列表显示Action/Servlet设计Action/Servlet入口方法出口ShoesActionheader.jspFuzzySearch()业务层设计业务接口本模块业务方法方法说明public PageBean FuzzySearch(Object params,final int currentPage,final int pageSize);根据鞋子名称,产地关键字及性别,当前页数与每页记录数查询数据库中鞋子信息返回分页信息。public PageBean FuzzySearch(Object params,final int currentPage
19、,final int pageSize);写具体的HQL语句,调用数据持久层findByPageBean()方法数据持久层设计持久层接口基类接口接口说明IGenericDao获取分页信息的统一方法public PageBean findByPageBean(final String hql,final Object param,final int currentpage,final int pageSize);IShoesDaoAGenericHibernateDaoShoesDaoImpl继承AgenericHibernateDao类,实现IShoesDao接口 3.5.4 功能实现时序图(
20、同3.3.4)3.6 商品搜索-根据尺码,版型,颜色,品牌综合检索 3.6.1 综合搜索实现流程图 3.6.2 综合搜索输入输出规则商品综合搜索显示输入输出规则模块名称商品综合搜索显示功能描述根据鞋子尺码,版型,颜色,品牌搜索鞋子用户角色注册用户或游客模块触发条件打开网站首页输入规则输入鞋子尺码,版型,颜色,品牌输出结果显示符合综合条件的所有鞋子列表关键算法1. 选择鞋子尺码,版型,颜色,品牌一个或多个条件2. Action中获取实际选择的条件3. 业务层根据选择的条件查询Shoes表数据库操作查询shoes表 3.6.3视图层、Action、业务层、数据持久层的说明视图Action/Serv
21、let业务层(biz)数据持久层(dao)视图层页面设计界面JSP功能描述网站头部独立页面Search.jsp接收关键字与性别选择搜索结果页面S根据前置条件将搜索结果列表显示Action/Servlet设计Action/Servlet入口方法出口ShoesActionsearch.jspexecute()业务层设计业务接口本模块业务方法方法说明public List FindShoesByObjects(String hql,Object params);根据鞋子名称,产地关键字及性别,当前页数与每页记录数查询数据库中鞋子信息返回分页信息。public List FindShoesByObje
22、cts(String hql,Object params);写具体的HQL语句,调用数据持久层findByPageBean()方法数据持久层设计持久层接口基类接口接口说明IGenericDao获取分页信息的统一方法public PageBean findByPageBean(final String hql,final Object param,final int currentpage,final int pageSize);IShoesDaoAGenericHibernateDaoShoesDaoImpl继承AgenericHibernateDao类,实现IShoesDao接口 3.6.4
23、 功能实现时序图(同3.3.4)3.7 商品详情 3.7.1 商品详情实现流程图 3.7.2 商品详情输入输出规则商品详情输入输出规则模块名称商品详情显示功能描述显示指定鞋子的详细信息用户角色注册用户或游客模块触发条件打开商品列表页输入规则点击鞋子图片或商品名称输出结果显示指定鞋子的详细信息关键算法1. 鞋子列表中具有鞋子sid参数值2. Action中获取sid值3. 在业务层中通过sid值获取鞋子的详细信息数据库操作查询shoes表 3.7.3视图层、Action、业务层、数据持久层的说明视图Action/Servlet业务层(biz)数据持久层(dao)search_result.jsp
24、视图层页面设计界面JSP功能描述鞋子列表页面显示鞋子列表鞋子详情页面显示鞋子的详细信息Action/Servlet设计Action/Servlet入口方法出口ShoesActionSearch_result.jspFindBySid()业务层设计业务接口本模块业务方法方法说明public Shoes FindById(final int sid);根据鞋子id获取鞋子对象public Shoes FindById(final int sid);写具体的HQL语句,调用数据持久层findById(sid)方法数据持久层设计持久层接口基类接口接口说明IGenericDao获取分页信息的统一方法pu
25、blic T findById(ID id);IShoesDaoAGenericHibernateDaoShoesDaoImpl继承AgenericHibernateDao类,实现IShoesDao接口 3.7.4 功能实现时序图3.8 添加购物车 3.8.1 添加购物车实现流程图 3.8.2 添加购物车输入输出规则添加购物车输入输出规则模块名称添加购物车功能描述将鞋子添加到购物车用户角色注册用户模块触发条件登录用户打开商品详情页输入规则选择尺码后添加到购物车输出结果打开购物车页面,显示购物车信息关键算法1.页面判断是否选择尺码与个人是否有默认收货地址 2.获取鞋子编号,尺码与数量(默认为1)
26、3. 添加到购物车的Action中根据鞋子id,尺码,购买数量组合Shoesizes对象 ,shoesizes表中包含各鞋子对应尺寸的库存。4. 如果鞋子没有被删除,并且库存量大于购买量,将鞋子信息添加到Map集合(购物车 Cart ),并添加到session中数据库操作查询shoesizes表 3.8.3视图层、Action、业务层、数据持久层的说明视图Action/Servlet业务层(biz)数据持久层(dao)CartIShoeSizesShoeSizesIShoeSizesShoeSizes视图层页面设计界面JSP功能描述鞋子详情页面显示鞋子的详细信息购物车页面cart.jsp显示购
27、物车的详细信息Action/Servlet设计Action/Servlet入口方法出口CartActionexecute()CartActionPgetDefaultAddress()业务层设计业务接口本模块业务方法方法说明public Shoesizes FindByShoesid(final int sid,final int count,final float sizes);根据鞋子id,数量,尺寸获取鞋子尺寸信息对象(包含库存)public Shoesizes FindByShoesid(final int sid,final int count,final float sizes);
28、写具体的HQL语句,调用数据持久层findByObject方法public Receives FindByDefault(int uid);根据用户id获得默认收货地址public Receives FindByDefault(int uid);写具体的HQL语句,调用数据持久层findByObject方法数据持久层设计持久层接口基类接口接口说明IShoeSizesIGenericDao根据条件参数获取集合public List findByObject(String hql,Object param);ShoeSizesIShoeSizesDaoAGenericHibernateDaoSho
29、eSizesDaoImpl继承AgenericHibernateDao类,实现IShoeSizesDao接口IGenericDao根据条件参数获取集合public List findByObject(String hql,Object param);IReceiverDao AGenericHibernateDaoReceiverDaoImpl继承AgenericHibernateDao类,实现IReceiverDao接口 3.8.4 功能实现时序图3.9 删除购物车商品 3.9.1 删除购物车商品实现流程图 3.9.2删除购物车商品输入输出规则删除购物车商品输入输出规则模块名称删除购物车商品
30、功能描述将鞋子从购物车中删除用户角色注册用户模块触发条件登录用户在购物车页面选择删除商品输入规则点击“删除商品”链接 输出结果显示删除商品后的购物车信息页面关键算法1. 获取页面隐藏域信息2. 判断当前购物车中有几种商品(根据单个商品总价)3. 如果存在多种商品,通过js操作DOM对象删除商品4. 如果只剩下一种商品,则将购物车清空,实际操作是将购物车对象从session中删除。数据库操作无 3.9.3视图层、Action、业务层、数据持久层的说明视图Action/Servlet业务层(biz)数据持久层(dao)Order无无视图层页面设计界面JSP功能描述购物车页面显示购物车的详细信息及相
31、关js操作Action/Servlet设计Action/Servlet入口方法出口OrderActiondeleteCart(),清空购物车后返回首页 3.9.4 功能实现时序图不清空购物车(略)清空购物车3.10 结算购物车商品 3.10.1 结算购物车商品实现流程图 3.10.2结算购物车商品输入输出规则结算购物车商品输入输出规则模块名称结算购物车商品功能描述确定购物车中商品,提交结算用户角色注册用户模块触发条件登录用户在购物车页面选择“去结算”输入规则点击“去结算”链接 输出结果显示购物车所有商品结算信息与个人默认收货地址信息关键算法1. 获取购物车信息2. 获取个人默认收货地址信息数据
32、库操作查询receives 3.10.3视图层、Action、业务层、数据持久层的说明视图Action/Servlet业务层(biz)数据持久层(dao)Order视图层页面设计界面JSP功能描述购物车页面显示购物车的详细信息及相关js操作订单页面订单信息页面(购物车与收货地址)Action/Servlet设计Action/Servlet入口方法出口OrderActionexecute() 业务层设计业务接口本模块业务方法方法说明public Receives FindByDefault(int uid);根据用户id获得默认收货地址public Receives FindByDefault(
33、int uid);写具体的HQL语句,调用数据持久层findByObject方法数据持久层设计持久层接口基类接口接口说明IGenericDao根据条件参数获取集合public List findByObject(String hql,Object param);IReceiverDao AGenericHibernateDaoReceiverDaoImpl继承AgenericHibernateDao类,实现IReceiverDao接口 3.10.4 功能实现时序图3.11直接购买商品 3.11.1 直接购买商品实现流程图 3.11.2直接购买商品输入输出规则模块名称直接购买商品功能描述在商品详
34、情页选择直接购买商品,功能类似添加到购物车,只是直接购买的商品不经过购物车页面,直接到订单页用户角色注册用户模块触发条件登录用户在详情页选择“直接购买”输入规则选择尺码后点击“直接购买”链接 输出结果打开订单页,显示购物车所有商品结算信息与个人默认收货地址信息关键算法1. 将商品添加到购物车但不现实购物车页面2. 获取个人默认收货地址信息数据库操作查询shoesizes表与receives表 3.11.3视图层、Action、业务层、数据持久层的说明视图Action/Servlet业务层(biz)数据持久层(dao)Cart视图层页面设计界面JSP功能描述商品详情页面显示商品详情及“直接购买”
35、链接订单页面订单信息页面(购物车与收货地址)Action/Servlet设计Action/Servlet入口方法出口CartActionBuynow() 业务层设计业务接口本模块业务方法方法说明public Receives FindByDefault(int uid);根据用户id获得默认收货地址public Receives FindByDefault(int uid);写具体的HQL语句,调用数据持久层findByObject方法数据持久层设计持久层接口基类接口接口说明IGenericDao获取分页对象方法findByPageBeanIReceiverDao AGenericHibern
36、ateDaoReceiverDaoImpl继承AgenericHibernateDao类,实现IReceiverDao接口 3.11.4 功能实现时序图3.12秒杀商品 3.12.1 秒杀商品实现流程图 3.12.2秒杀商品输入输出规则模块名称秒杀商品功能描述有些商品在特定时期内价格优惠,用户可以选择抢在这期间提交订单,俗成“秒杀”用户角色注册用户模块触发条件登录用户在秒杀页面“秒杀”输入规则点击“秒杀”链接 输出结果打开订单页,显示秒杀商品结算信息与个人默认收货地址信息关键算法1. 列出所有处于秒杀期间的商品2. 判断用户的积分与商品秒杀所需积分3. 获取个人默认收货地址数据库操作查询sho
37、esizes表,receives表,second_kills表 3.12.3视图层、Action、业务层、数据持久层的说明视图Action/Servlet业务层(biz)数据持久层(dao)index.jspsecondKillsLst.jsp secondKills.jspSecondKillsISecondKillsBiz.java视图层页面设计界面JSP功能描述首页index.jsp显示“秒杀”链接,转向秒杀商品页面秒杀有效商品显示页面有效的,可以进行秒杀的商品列表,分页显示秒杀执行页面通过秒杀商品列表选择某个商品,打开该商品的详细信息与执行秒杀操作订单页面执行秒杀后转向订单页Actio
38、n/Servlet设计Action/Servlet入口方法出口execute()FindBySkid()addSecondKill() 业务层设计业务接口本模块业务方法方法说明ISecondKillsBiz.java/获取有效秒杀商品public PageBean findAvaliable(int currentpage,int pagesize);/获取单个秒杀商品对象public SecondKills FidnById(int skid);/获取有效秒杀商品public PageBean findAvaliable(int currentpage,int pagesize);/获取单个
39、秒杀商品对象public SecondKills FidnById(int skid);写具体的HQL语句访问持久层findByPageBean与findByObject方法public Receives FindByDefault(int uid);根据用户id获得默认收货地址public Receives FindByDefault(int uid);写具体的HQL语句,调用数据持久层findByObject方法数据持久层设计持久层接口基类接口接口说明IGenericDaofindByPageBeanfindByObjectISecondKillsDaoAGenericHibernateD
40、aoSecondKillsDaoImpl继承AgenericHibernateDao类,实现ISecondKillsDao接口IGenericDao获取默认对象方法findByObjectIReceiverDao AGenericHibernateDaoReceiverDaoImpl继承AgenericHibernateDao类,实现IReceiverDao接口 3.12.4 功能实现时序图 1)获取秒杀商品列表 2)打开秒杀商品详情页 3)执行秒杀3.13定制商品(仅对一种商品)3.1 定制商品实现流程图 3.13.2定制商品输入输出规则模块名称定制商品功能描述本案例提供一种鞋子可以根据用户
41、自己喜好定制特定鞋子用户角色注册用户模块触发条件登录用户在网站首页“进入专业定制首页”输入规则选择鞋子各部分颜色,尺码输出结果打开订单页,显示定制商品信息与个人默认收货地址信息关键算法1. 根据定制鞋编号获取可定制鞋信息2.获取个人默认收货地址数据库操作查询spcify_shoes表,receives表 3.13.3视图层、Action、业务层、数据持久层的说明视图Action/Servlet业务层(biz)数据持久层(dao)(left_menu.jsp) SpcifyShoesAction.javaCartISpcifySheosBiz.javaSpcifySheosBizISpsSizesBiz.javaSpsSizesBizISpcifySheosDao.javaSpcifySheosDaoISpsSizesSpsSizes视图层页面设计界面JSP功能描述首页(left_menu.jsp)显示“定制”链接,转向定制商品首页定制商品首页面定制商品首页面,jquery实现页面效果定制鞋页面定制鞋