在线花店系统设计与实现_第1页
在线花店系统设计与实现_第2页
在线花店系统设计与实现_第3页
在线花店系统设计与实现_第4页
在线花店系统设计与实现_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

[12],在本系统中,有现实世界中的对象如用户类、订单类、评论类、鲜花类、花材类、鲜花类别类、订单项类。如图3-3所示:图3-3:在线花店系统领域模型图用例模型总用例图系统用例图是用来显示一个系统为哪些对象提供了哪些功能的用例图REF建模\h\r[13],本系统主要面对的对象是用户和管理员,系统提供了如图3-4所示的功能:图3-4:在线花店系统总用例图用例列表本节用表格的形式简单描述系统全部的用例,如表3-1所示:表3-1:系统用例表用例编号用例名称描述参与者UC01用户注册用户根据要求填写注册表的信息用户UC02登陆系统根据用户名和密码进行身份验证登录到系统用户、管理员UC03登出系统退出系统用户、管理员UC04查看鲜花查看鲜花的详情用户UC05鲜花搜索根据名称、用途、花材、价格等关键字进行搜索用户UC06加入购物车将用户要购买的鲜花记录起来用户UC07查看购物车用户查看购物车车中的鲜花用户UC08从购物车删除用户将鲜花从购物车中删除用户UC09清空购物车用户清空购物车中的鲜花用户UC10修改购物车用户修改购物车中鲜花的数量用户UC11购买结算将购物车内的鲜花转为订单,填表订单信息用户UC12鲜花评论用户对自己购买过的鲜花进行评论用户UC13查看订单用户查询自己的订单历史用户UC14修改资料用户修改个人资料用户UC15鲜花管理增加、修改、删除、查询鲜花信息管理员UC16花材管理增加、修改、删除、查询花材信息管理员UC17类型管理增加、修改、删除、查询类型信息管理员UC18用户管理删除、查询用户信息管理员UC19订单管理查询、处理订单信息管理员UC11购买结算用例购买结算用例如表3-2所示:表3-2:购买结算用例表用例编号:UC11用例名称:购买结算范围:在线花店系统级别:用户目标主要参与者:用户涉众及其关注点:1.用户:希望能否快捷准确地查询到自己想要的商品的信息。2.管理员:希望系统能够准确显示商品信息,方便用户选购。前置条件:用户已成功登录系统后置条件:数据库信息更新,记录了订单的详情;购物车内容被清空。主成功场景:1.用户登陆系统。2.在搜索框中输入查询鲜花的关键字。3.系统显示符合条件的一系列鲜花。4.用户选择鲜花查看详情。5.系统显示该鲜花的详细信息,包括鲜花详细参数、客户评价等。6.用户将要购买的鲜花加入购物车后,修改数量,选择结算下单。7.系统返回填写订单资料的页面。8.客户根据提示填写相关信息(收件人姓名、联系方式、地址、寄件人姓名、联系方式、鲜花留言、支付方式、配送方式)并提交。9.系统确认信息有效,自动列出订单信息(订单编号、订单状态、购买鲜花、购买数量、商品总价、配送费用、下订日期、收件人地址、收件人名字、联系号码、寄件人姓名、联系方式、鲜花留言、其他要求)。10.用户确定下单。11.系统提示下单成功。扩展:*a.系统在任意时刻失效:重新启动系统,登录,重新执行操作。5a.没有搜索到合符条件的相关信息系统提示查询结果为0条记录。用户重新在输入框中输入查询关键字,进行新的搜索。6a.结算下单按钮失效。6b.鲜花库存不足提示库存不足,结算下单按钮失效。8a.订单必填信息为空系统显示不能为空。用户根据提示,重新输入。8b.输入信息格式错误系统显示错误信息。用户根据提示,重新输入。9a.订单信息填写有误点击返回链接,跳转回订单资料填写页面。用户重新填写订单资料,点击下一步,进行订单确认。系统列出订单的详细内容。特殊需求:无发生频率:随网站访问量而定未解决问题:无购买结算活动图如图3-5所示:图3-5:购买结算活动图架构设计系统架构及原理本系统采用MVC的设计模式,将项目应用分成:Model(模型层),View(视图层)和Controller(控制器层)这三个基本部分。其中Model层包括实现业务处理的Action类、读取访问数据的DAO层和对象关系映射的ORM中间件;Controller层包括FilterDispatcher和struts.xml配置文件;View层主要由JSP和Sitemesh技术完成,整个项目的架构图如图4-1所示REF刘中兵\h\r[14]:图4-1:系统架构图本系统框架设计说明如下:用户通过JSP页面,也就是视图层,向系统发出请求;视图层将请求数据进行封装,并传递给控制器层;控制器层通过FilterDispatcher截获用户的请求行为,并通过struts.xml配置文件将请求数据传递指定的模型层;模型层将相关数据按照业务逻辑进行处理,如Action类调用DAO层进行数据的增删查改等操作,DAO层通过ORM访问相关的数据库,对数据库的数据进行增删查改等操作。模型层将请求处理后,通过struts.xml配置文件将数据传回指定页面,页面得到数据并根据Sitemesh框架组织形式展示给用户。业务用例的实现本系统通过顺序图来展现主要的业务用例。下面将介绍鲜花搜索、加入购物车和购买结算用例的实现过程。鲜花搜索用例鲜花搜索用例的实现步骤说明如下:用户点击进入index.jsp页面,在搜索框中输入需要查询的商品名称,点击搜索提交到SearcbynameAction类;SearcbynameAction类接受index.jsp页面提交的搜索表单信息nameKey。SearcbynameAction类调用ProductDaoImpl的searchByName();searchByName()调用HibernateSessionFactory.getSession()方法,实例化Session类,经过HQL语句查询createQuery(),得到Product的集合;SearcbynameAction调用setProducts()方法为Products属性赋值,将查询结果传递给searchResult.jsp;searchResult.jsp将搜索结果显示在用户界面中;鲜花搜索的顺序图如图4-2所示:图4-2:鲜花搜索顺序图加入购物车用例加入购物车用例的实现步骤说明如下:用户点击进入鲜花的详细页面showproduct.jsp,点击加入购物车提交到AddtoCartAction类;AddtoCartAction类接受showproduct.jsp页面提交的搜索鲜花id;AddtoCartAction类中对session的cart判断是否为空;若cart为空,实例化Cart,得到一个cart对象,根据传递过来的id实例化一个Product对象,利用此Product对象实例化cartItem对象,将此cartItem加入cart中;若cart不为空,根据传递过来的id找到购物车中对应的cartItem,若cartItem不为空,cartItem调用setAmount()修改鲜花数量;若cartItem为空,根据传递过来的id实例化一个Product对象,利用此Product对象实例化cartItem对象,将此cartItem加入cart中返回SUCCESS,跳转到addtoCart.jsp加入购物车的顺序图如图4-3所示:图4-3:加入购物车顺序图购买结算用例购买结算用例的实现步骤说明如下:用户已登录并已将鲜花加入购物车;点击购物车链接,进入购物车页面showcart.jsp,点击结账下单,提交到CheckoutAction类;CheckoutAction类返回SUCCESS,跳转到orderInfo.jsp,要求用户输入订单必要信息。用户填写完毕好,点击下一步,将订单填写信息提交到CalorderpriceAction类;CalorderpriceAction类中实例化Cart对象,调用getTotalPrice()计算订单的总价;CalorderpriceAction类返回SUCCESS,跳转到checkout.jsp,列出订单的详细信息待用户确认。用户点击确定下单进行下单,将订单信息提交到AddorderinfoAction,调用execute()方法,并通过orderDao.add()向数据库插入订单数据;AddorderinfoAction类返回SUCCESS,跳转到checkoutsuccess.jsp页面,显示下单成功。购买结算顺序图如图4-4所示:图4-4:购买结算顺序图数据库设计数据库是数据的集合,用于描述一个或多个相关组织的活动REF数据库\h\r[15]。E-R图系统的E-R图如图4-5所示:图4-5:系统E-R图数据库数据库描述本系统的数据库总共包含十个表fs_admin,fs_user,fs_cartitem,fs_order,fs_order_cartitem,fs_flower,fs_purpose,fs_comment,fs_product,fs_product_flower,如表4-1所示:表4-1:系统的数据库各表的描述表名描述fs_user记录系统的注册用户信息fs_admin记录系统的管理员信息fs_flower记录花材的信息fs_purpose记录类型的信息fs_product记录鲜花的信息fs_order记录订单的信息fs_comment记录评论的信息fs_cartitem记录订单的订单项--鲜花和数量的关系fs_product_flower记录鲜花和花材的关系fs_order_cartitem记录订单和订单项的关系数据库设计本系统采用MySQLServer5.5进行数据库设计,系统的主要数据表的详细设计如下:用户表fs_user,id为主键,设为自增长,如表4-2所示:表4-2:用户表fs_user的描述字段名数据类型描述idINT记录用户id号,唯一标识用户身份nameVARCHAR记录用户名称pwdVARCHAR记录用户密码emailVARCHAR记录用户的邮箱地址telVARCHAR记录用户的联系方式addressVARCHAR记录用户的联系地址postcodeVARCHAR记录用户的邮编地址questionVARCHAR记录用户的密码提示answerVARCHAR记录用户的密码提示答案鲜花表fs_product,id为主键,设为自增长,如表4-3所示:表4-3:鲜花表fs_product的描述字段名数据类型描述idINT记录鲜花id号,唯一标识鲜花nameVARCHAR记录鲜花名称propicVARCHAR记录鲜花图片的文件名flower_descriptionVARCHAR记录鲜花的材料描述package_descriptionVARCHAR记录鲜花的包装描述meaningVARCHAR记录鲜花的花语attachment_descriptionVARCHAR记录鲜花的附件描述delivery_scopeVARCHAR记录配送范围的描述market_priceDEMICAL记录鲜花的市场价格special_priceDEMICAL记录鲜花的优惠价格quantityINT记录鲜花的进货量salesINT记录鲜花的卖出量pidINT记录鲜花所属类型的id订单表fs_order,id为主键,设为自增长,如表4-4所示:表4-4:订单表fs_order的描述字段名数据类型描述idINT记录订单id号,唯一标识订单unameVARCHAR记录寄件人名称utelVARCHAR记录寄件人联系电话nameVARCHAR记录收件人姓名telVARCHAR记录收件人联系电话addressVARCHAR记录收件人联系地址postcodeVARCHAR记录收件人邮政编码freight_priceDEMICAL记录订单的运费pay_methodVARCHAR记录订单的支付方式pay_priceDEMICAL记录订单的鲜花总额stateVARCHAR记录订单的状态card_messageVARCHAR记录订单的留言requestVARCHAR记录订单的其它要求order_datetimestamp记录订单的下单时间ship_datedatetime记录订单的发货时间订单项表fs_cartitem,id为主键,设为自增长,如表4-5所示:表4-5:订单项cartitem的描述字段名数据类型描述idINT记录订单项id号,唯一标识订单项amountINT记录鲜花的数目itemPriceDEMICAL记录订单项的总额pidINT记录鲜花的id鲜花-花材关系表fs_product_flower,id为主键,设为自增长,如表4-6所示:表4-6:鲜花花材关系表fs_product_flower的描述字段名数据类型描述idINT记录表项id号fidINT记录花材idpidINT记录鲜花id订单-订单项关系表fs_order_cartitem,id为主键,设为自增长,如表4-7所示:表4-7:订单订单项关系表fs_order_cartitem的描述字段名数据类型描述idINT记录表项id号oidINT记录订单idcidVARCHAR记录订单项id模块设计鲜花管理模块鲜花管理模块,用于实现鲜花管理的功能,包括鲜花的新增、删除、查看、修改,这些操作分别封装在AddproductAction、DelproductAction、ShowproductAction、ModifyproductAction。鲜花管理模块活动图图5-1:鲜花管理活动图AddproductAction类接口AddproductAction类作为实现增加鲜花功能的类,提供管理员增加鲜花数据所需要的所有方法,具备与页面传递数据的getter、setter,并在继承ActionSupport的基础上重构execute(),以及利用校验框架中的validate()对数据有效性进行校验。AddproductAction类主要接口如图5-2所示:图5-2:AddproductAction类接口AddproductAction类的具体方法实现,是通过调用数据访问层的ProductDaoImpl类完成的。图5-3即为ProductDaoImpl相应的DAO--ProductDaoImpl,继承自ProductDao接口,其中包含了添加、修改、查看、搜索、排序等基本操作。ProductDao接口类的接口如图5-3所示:图5-3:ProductDao接口AddproductAction算法描述新增鲜花AddproductAction类的代码如图5-4所示:图5-4:AddproductAction类代码Execute()中调用ProductDao的add()在数据库中保存信息,add()的代码如图5-5所示:图5-5:add()代码鲜花管理的页面设计鲜花管理模块的页面设计如图5-6所示。点击后台首页的左侧导航栏的标签“鲜花管理”,再选择“新增鲜花”,在指定的输入框中输入鲜花信息中添加鲜花,如图5-7所示。图5-6:鲜花管理模块页面图5-7:增加鲜花页面购物车模块购物车模块,用于实现与购物车相关的功能,包括加入购物车、从购物车删除、清空购物车、查看购物车及修改购物车,这些操作分别封装在AddtoCart、DelfromCartAction、ClearAction、ShowCartAtion及ModifyCartAction中。购物车模块活动图图5-8:购物车模块活动图AddtoCartAction类接口AddtoCartAction类作为实现加入购物车功能的类,提供用户将鲜花加入购物车需要的所有方法,具备与页面传递数据的getter、setter,并在继承ActionSupport的基础上重构execute()。AddtoCartAction类主要接口如图5-9所示:图5-9:AddtoCartAction类主要接口AddtoCartAction算法描述购物车模块的加入购物车活动图如图5-10所示:图5-10:加入购物车活动图加入购物车AddtocartAction类的代码如图5-11所示:图5-11:AddtocartAction类代码加入购物车页面设计图5-12:将商品加入购物车后的页面结算下单模块结算下单模块,实现了计算用户购物车内的鲜花总额,并根据输入的订单信息生成订单,保存在数据库中。相关的封装在CalorderpriceAction、CheckoutAction、及AddorderinfoAction中。结算下单模块活动图图5-13:结算下单模块活动图AddorderinfoAction类接口AddorderinfoAction类作为实现保存订单功能的类,提供系统生成并持久化订单信息的所有方法,具备与页面传递数据的getter、setter,并在继承ActionSupport的基础上重构execute()。AddorderinfoAction类主要接口如图5-14所示:图5-14:AddorderinfoAction类主要接口AddorderinfoAction算法描述保存订单信息AddorderinfoAction类的代码如图5-15所示:图5-15:AddorderinfoAction类的代码结算下单页面设计图5-16:填写订单信息页面部署与应用系统部署图本系统采用B/S结构,客户端通过浏览器以HTTP方式访问本系统,在Web服务器上,装有本在线花店系统和后台数据库,系统部署如图6-1所示:图6-1:系统部署图系统运行环境在客户端,用户只需装有浏览器,接入网络即可访问本系统,而在服务器端,为保证系统正确运行,则需安装以下的开发环境:JDK:1.6.0Web服务器:Tomcat6.0.35数据库服务器:MySQL5.5开发平台:MyEclipse8.5浏览器:GoogleChrome工程部署为了对系统进行测试,需要对工程进行部署,其步骤如下:第1步,单击MyEclipse的工具DeployMyEclipseJ2EEProjecttoServer按钮,显示ProjectDeployments对话框,选择要部署的工程teamshopping,然后单击Add按钮,如图6-2所示:图6-2:准备发布工程第2步,在弹出的对话框中选择下拉列表Server中的Tomcat6.X选项,如图6-3所示:图6-3:发布工程到Tomcat第3步,启动Tomcat6.X,如图6-4所示:图6-4:启动Tomcat容器图页面展示图6-5:系统首页图6-6:鲜花详细参数页面图6-7:分页显示所有鲜花图6-8:用户查看订单详情结论随着互联网的发展,各类电子商务网站层出不穷,人们可以足不出户地轻松地选购商品。而网络上的信息传播广泛、及时和成本低廉,使得网站成为商家推广其产品的重要途径。因此为传统的店铺销售模式构建网上销售上渠道,从传统商务转化为电子商务,是一种不可阻挡的潮流。鲜花作为一种表达感情的物品,拥有丰富的寓意和多样的包装,并且随着节日的变化,鲜花市场也不断变化,因此为了更好地将鲜花信息呈现给用户,方便用户选购,同时降低花店的宣传推广成本,为中小型花点建立在线花店系统是非常具有现实意义。在项目的开发过程,利用UML技术对系统进行建模,通过用例分析、领域模型、序列图等进一步明确系统的要求以及设计细节,在运用面向对象的分析和设计思想的同时,采用MVC设计模式,初次尝试使用Struts+Hibernate进行开发,逐步构建出一个层次结构清楚、开发思路明确的web项目。本项目从前期的资料搜集到后期的编码测试,时间持续了将近半年,在回顾梳理大学四年的基础知识和项目经验的同时,学习项目所需新的技术,如Struts+Hibernate框架(对MVC模式有更深入的理解)及Sitemesh框架(对网页布局有了更灵活的应用)等,丰富了个人的技术经验和提高动手实践能力,获益良多。本项目基本实现了购买鲜花的流程、多种类的导航搜索以及较完善的后台管理等功能,界面简洁、大方,非常便于用户使用。但是由于本人技术基础和项目经验还是略显薄弱,在有限的时间内开发的在线花店系统还是存在许多不足之处,尤其与当前众多成熟的电子商务网站比较,系统性能、安全性等方面都有明显差距。在代码质量方面,由于对框架还没有纯熟掌握,代码冗余较多。虽然项目的实用性不强,但是基本呈现了电子商务网站的雏形,并融合了鲜花销售的特色。在未来的改进方向上,可以从系统功能和系统性能两方面着手,在功能方面,增加更多的鲜花资料或者节日推荐鲜花等,为用户提供更多实用的资讯;在性能方面,更多地考虑系统的安全性和网站的并发访问等,为用户提供安全、顺畅的网站服务。最后,本项目是对网站开发又一次学习,同时也是对电子商务模式的一次学习。在接下来的日子里,争取不断改进和完善,使之其成为一个可靠、实用性强的电子商务网站。致谢参考文献李鹏翔,互联网花店营销服务与策略,计算机与农业,17(3):35-36,2002兰宜生、徐薇丽,电子商务的基本类型,现代工商,8(11):26-27,2000高红岩,Struts实用开发指南——基于MVC+MyEclipse的JavaWeb应用开发,北京:科学出版社,2007闫术卓、杨强,Struts2技术详解:基于WebWork核心的MVC开发与实践,北京:电子工业出版社,2008李刚,Struts2.1权威指南,北京:电子工业出版社,2009李刚,轻量级JAVAEE企业应用实战—Struts2+Spring+Hibernate整合开发(第2版)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论