




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
题目名称:基于JSP的网上松鼠零食铺的设计与实现
基于JSP的网上松鼠零食铺的设计与实现摘要:网络的发展促进了服务业的迅速增长,同时给人们的生活提供了很多的便利,人们的消费习惯和生活方式也随着发生了很大的变化。网上商城,这种新的商业模式逐渐融入到人们的生活中。本人设计开发的松鼠零食铺系统正是在此背景下,通过零食购物的需求调查,结合自己专业所学知识而设计了该系统。通过本网站,使人们能够搜索并订购自己喜欢的零食。在本系统中,使用JSP技术结合SSM框架进行页面开发,SQLServer2008用作数据库管理。系统功能包括用户登录、产品搜索、添加购物车、商品管理、订单管理和会员管理等。系统实现了4大类零食商品的网上售卖,让人们能够轻松找到自己想要的零食。关键词:零食铺;B/S;JSP;系统
DesignandImplementationofOnlineSquirrelSnackShopBasedonJSPAbstract:Thedevelopmentofthenetworkhasimprovedthequalityoflife,theserviceindustryhasbeguntogrow,andcommunicationisasimple,fast,cost-effectiveelectronictransactionmodel.CommunicationbetweenbuyersandsellersthroughtheInternet.ThedevelopmentoftheInternetandthechangesinpeople'sconsumptionhabitsandlifestyleshavegraduallyintegratedthisnewbusinessmodelintopeople'slives.SquirrelSnackShopisdesignedtoimprovepeople'sdemandforsnacks.Youcansearchforyourfavoritesnacks.Youcanalsoordersnacksyouwant.Intheforegroundofthissystem,backgroundJAVAandforegroundJSParemainlyusedasdevelopmentlanguages,whilebackgroundSQLServerisusedasdatabasemanagementandSSM-basedprojects.Thesystemdevelopmentenvironmentismyeclipse.Thesystemfunctionsincludeuserlogin,productsearch,shoppingcartaddition,commoditymanagement,ordermanagementandmembermanagement.Keywords:SnackShop;B/S;JSP;System目录176831引言 引言1.1项目开发背景现在是信息时代,信息技术的发展给社会带来了巨大的变革,它不单在技术层面体现,同时在思维上面也有所体现。信息技术已经开始应用于社会中的各个环节,从管理到物流,从生产制造到服务,都离不开网络信息技术。随着信息化生活的到来,网络平台不断地进步和发展,网上购物开始成为人们生活方式的主流。网购开始带动市场经济的发展,并且给人们带来了便利。网络购物因为价格便宜、方便快捷、送货上门,人们甚至不需要出门,慢慢地成为大众网民的最爱。网络购物可以给不想出门逛街的人提供很大的方便,并且可以买到一些本地买不到的东西。由于零食种类繁多,且不同的地区有不同的特色零食。因为一个实体零食店放不下世界上各式各样的零食,所以实体店并不能完全的满足全国各地“吃货”的要求。经调查研究显示喜欢吃零食的吃货们更愿意尝试在线购买,所以网上零食商店也像在淘宝商城等系统在互联网平台上呈现。网上松鼠零食店的前台操作模块就是利用JSP技术实现对整个零食店进行管理。此平台操作简单,只需注册登录便可以选购商品下单购买。1.2研究目的及意义1.2.1研究目的网络购物需求的增加和商品的极大丰富提高了人们网上开店的热情。对于喜欢吃零食的人来说,零食的种类繁多,同一种类型的零食又有不同的口味,且实体店没有充足的面积存放种类繁多的零食,而网上零食商城的出现很好的解决了这个难题。因为网上零食商店可以在任何地方利用手机和电脑慢慢挑选,并且永远不会下班关门,购买者可以随着随地的自由的查询和订购零食,不需要自己在出门走一段很远的路到商店里面在一个一个的挑选东西。网上购物减少了路费的支出并且节省了大量的时间。这对于离商店比较远的“吃货”来说,研究松鼠零食铺具有实际意义。1.2.2研究意义开发“松鼠零食铺子”网站的意义及要求:第一:利用互联网使人们能够在家买到想吃的零食,并不需要出门,保证零食送上门。第二:拥有世界各地所有的零食,包括来自海外的,并且有质量保证书,让用户安心购买零食。第三:首页展示众多的零食是为了让“吃货”们了解零食的详细信息,并激起他们购买欲望。
2总体设计原则及可行性分析2.1系统开发软件的平台的选择软件平台是指开发松鼠零食铺系统所需的各类软件,系统开发所用到的各类软件是运行在Windows7操作系统下的。所用到的JSP技术主要用于实现Javaweb应用程序的页面开发及服务器端的管理,本系统使用SQLServer2008数据库管理系统对数据库的数据进行实时管理。在eclipse集成开发环境下中充分运用MVC架构。本系统使用ApacheTomcat8.0作为服务器,发布到WEB服务器上进行部署。2.2相关技术介绍2.2.1B/S模式B/S(Browser/Server)即浏览器/服务器模式,B/S架构无需在客户端安装软件,只需要在WEB浏览器浏览即可,软件安装在服务端,通过web服务器发布。用户只要有IE浏览器,即可通过浏览器去使用软件的全部功能。B/S模式保密性和功能性差,但是移植性、维护性和易用性好,可扩展性强。只需要获取账号和密码就可以操作,因为B/S软件架构技术一直都在完善,所以他的扩展性好,当软件需要进行升级或者扩展的时候,只需要在服务端进行升级和扩展,无需对客户端进行任何修改。B/S模式是由视图层(显示逻辑)、业务层(处理事务)、数据库层(处理数据)组成,其结构如图2-1所示。图2-1B/S架构B/S的三层结构各层功能如下:视图层让使用的人可以看到前台的界面,并且可以接受使用者发送到服务器页面的请求,然后服务器再将结果显示给用户。业务层主要是将service层的业务实现,并对所有的业务进行封装,因为重用性多个前台界面可以共享一个模块。数据层主要是做具体的数据操作。视图层、业务层和数据层依次调用。业务层处在视图层和数据层之间,因为层与层是隔离的,所以别的层对业务层具体实现看不到。B/S架构在同类型架构中是最安全的。B/S三层结构主要有以下的优点:(1)用户界面。当前WEB界面可以支持多种类型的插件,如:JAVASCRIPT等脚本语言和第三方应用插件。为前端浏览器界面提供了非常多的表现形式和手法,丰富了用户界面。(2)不受地区的限制。如果用B/S架构的软件部署在计算机上,只需服务器工作,那么只要用户电脑有浏览器,便可以在任何的时间地点通过互联网连接进网站并进行操作。(3)B/S架构可以直接用浏览器进行操作,并不需要安装什么软件。基于以上种种优势和分析,该松鼠零食铺将采用B/S模式进行设计和开发,易于操作和系统的升级、维护。2.2.2MVC架构MVC主要是指Moder模型层、View视图层、Controller控制层三个层,他们之间相互关联但又不影响,因为层层之间是隔离的,用户能够和系统互动的程序架构,也是当前的复合性架构,此架构主要利用模型层、视图层和控制层快速将模块之间的信息整合起来,从而用更先进的处理模式去处理信息输入、输出。不同的模型层执行自己的功能,用户操作视图层发出信息后,控制后收到逻辑指令后,服务器将信息发送到模型层,在模型层中调用方法进行逻辑处理,在SQL数据库中找到符合的内容进行处理,并发送到视图单元,再显示给用户。2.3市场分析零食已经成为众多消费者的必买品。据调查,零食主要受学生和女性白领喜欢,且学生人数庞大,虽然消费力低,但是买东西频繁,人多量大。而白领则追求包装、价格和对身体是否健康,虽然买的少,但是买的都是高价的零食。针对这些消费群体,那些味道好包装又精致的零食使她们很难抵挡的住这种诱惑。2.4定位分析开发面向女性和小孩的松鼠零食铺平台,主要有网上零食购物商城、订单管理信息两大主要功能。主要服务于学生和女性白领两大主流用户群体。零食购物商城:是提供给“吃货”在线浏览零食和购买的功能,例如提供各种进口零食、稀有特产的购买等。订单管理:是指用户选好买的物品后进行付款后查询自己货物是否在派送。2.5可行性分析2.5.1系统可行性分析系统研发的基础需要一个可靠的可行性分析,所以在项目启动的最开始的阶段需要对松鼠零食铺进行必要性和可行性分析。只有从经济、技术等各个方面的可行性上进行分析,才能保证系统的成功运行。在开发松鼠零食铺之前,先要对松鼠零食铺系统进行可行性分析,保证项目可以正常开发使用,并根据规定的步骤进行可行性分析。如果松鼠零食铺项目没有可行性分析,那么后期便浪费了时间和资源。松鼠零食铺网站平台经济可行性:该网站的目的在于通过电商平台,出售零食给全世界各地的“吃货”们,并以此实现盈利。而商城的商品都是世界各地的特色零食,只有突出产品的特色,才能吸引用户购买。购买松鼠零食铺的零食,我们会像淘宝这类网上商城一样送货上门。像别的网上购物,网上的商品都不能保证是否为正品,但是像松鼠零食铺这样有着可信的购买渠道,并且拥有零食质量和日期的保证书,“吃货”们基于信任都会愿意购买零食铺的零食。松鼠零食铺网站是经过品质确认的,购买的零食不会有假货,所以“吃货”们更会选择松鼠零食铺平台购物。(2)松鼠零食铺网站平台操作可行性:传统的商品模式在现在已经不太适用了,而在线购物概念的出现,为这些商品提供了很好的平台。且零食铺采用线上网店线下实体店相结合的方式,旨在为吃货们提供网购货到、货真、货好。2.5.2可行性分析开发环境的选择在进行设计与开发时,选择技术是开发人员开发项目或者网站考虑的最根本问题。只要对开发工具和平台进行进行合适的选择才能更好、更快速的开发。根据松鼠零食铺的功能以及松鼠零食铺的各项条件来研究技术的可行性。该零食铺采用的是排名前三的JAVA技术。正如大家熟知,JAVA已经越来越稳定,是计算机互联网领域最俱具有前景的技术之一。该网站采用的数据库是的SQLServer,JAVA的开发工具采用的是Eclipse,新版本工具为开发之路带来更多的便利。2.5.3系统的总体设计原则为确保系统的建设成功与可持续发展,在系统的建设与技术方案设计时我们遵循统一设计的原则、先进性的原则、高可靠、高安全性的原则、成熟性的原则、可扩展性的原则这六大原则。根据六大设计原则主要将系统分为两个大块:普通用户模块和管理员模块。普通用户模块:个人信息维护、在线注册、在线下订单、商品信息浏览。管理员模块:修改个人密码、商品类别管理、商品信息管理、系统管理、订单管理。3松鼠零食铺系统需求分析3.1系统的需求功能分析松鼠零食铺商城主要包括前台界面和后台界面。在前台界面,用户可以浏览、搜索以及购买商品。详细信息如下:首页展示:在进行前台界面设计的时候需要考虑到用户群体的使用情况,又因为互联网的开放性,用户可能来自各个阶层,知识文化水平参差不齐,这就需要充分考虑用户界面的设计,便于让所有人群都能通过简单明了的操作选择自己喜爱的商品。并且在设计按钮的时候,尽量将按钮放大并用图片表示,这样方便点击。风格比较朴素,不会太过于华丽,简洁明了的将商品呈现给用户,用户也能够快速找到自己需要的商品。商品展示:随着信息技术网络的发展,商品图片成为吸引消费者的第一要素,通过前台界面提供多张图片的展示,提升消费者消费的欲望。因为网上购物无法使用户直接接触到商品,所以图片展示成了一个重要的手段。消费者浏览网页时,并不喜欢看一大堆的文字信息,所以图片就很有价值了。商品的图片尽量真实,不会经过任何的P图修改处理。图片展示尽可能多,尽可能展示商品的各个方面,这样可以让消费者全面了解商品,从而减少退货率,在一定范围内减少零食铺的成本损失。Banner模块:通过广告的形式,宣传商品特价或活动。其主要目的是为了扩大经济效益。后台管理员可以通过后台对banner图片进行更替修改。购物车:用户可以对想要购买的零食商品进行网上订购,并且对选中的商品进行增删商品。根据上面的功能需求,松鼠零食铺主要需要实现以下功能模块:如图3-1所示图3-1主要实现功能本系统具体的功能模块有:后台管理模块、零食铺商城模块、订单支付模块三大模块。后台管理模块:管理员可以对用户权限进行管理,能对首页展示图片进行上传,能管理用户的订单信息查看订单状态,确保商品能送到到顾客的手中,同时还能对零食商品价格进行调整并且上传新的零食商品并进行分类管理,查看库存状态。零食铺商城模块:顾客需要注册登录,浏览零食商品,每个商品都有自己的类型。可以选择商品加入购物车进行购买,可以了解到零食商品发货情况。订单支付模块:对选中的商品进行添加删除,对到货的商品确认收货。系统顶层用例图,如图3-2所示。图3-2系统顶层用例图3.2松鼠零食铺系统非功能性分析3.2.1系统的可靠性由于该系统是一个网上零食商城的管理系统,所以其数据的安全性要好,以及对故障恢复方面也要完善,系统在资源充足的情况下不崩溃,系统运行出错后能自动回复,出错时主动进行数据存储。由于系统采用的是SQLServer作为数据库管理系统,因此以上这些需求都能满足。3.2.2系统对易用性系统采用在eclipse中开发,因为eclipse是大多数人用的软件,他有操作性强,易上手的特点,所以系统易于开发。3.3.3系统的效率系统可在最低CPUi3G4560内存2G硬盘30G以上的硬件环境下运行流畅,目前,所有的机算机都大大的满足并且超过了这个条件,所以基本不影响系统的效率。在与用户沟通后,该系统运行在最低硬件配置条件下,点击功能按钮响应时间在5秒以内均可接受。在最大数据处理量的要求上,根据业务调查的结果,当前网购商城都使用nginx。它能够支持高达50,000个并发连接数的响应,因此对系统最大数据处理量的要求是最大数据处理量可以为10000人同时操作时系统不会崩溃。
4松鼠零食铺总体设计4.1系统概要设计及流程通过对松鼠零食铺综合信息管理特点的调查和研究,确定松鼠零食铺服务系统的需求,分析松鼠零食铺服务的功能模块和业务流程,并运用面向对象的方法使用UML建模工具对系统功能进行详细的设计,并采用B/S模式进行架构,前后端分离技术开发动态交互的应用系统。系统在总体架构上采用了前后端分离B/S结构,其总体架构如图4-1所示。图4-1松鼠零食铺系统的体系结构图系统总体为B/S前后端分离模式架构。因为B/S无需在客户端安装软件,WEB浏览器就可以使用,所以系统的扩展性很强,只需要对服务端进行编辑,并不影响客户端,如果版本要升级的话,直接对服务端代码进行更新迭代就好了。之后客户端也会更新界面和内容。4.2零食铺系统设计思想松鼠零食铺系统主要实现三个方面的管理:系统管理、商品管理、日常管理。该系统全面优化当前我国网上商城服务管理的业务流程,在分析的基础上,根据松鼠零食铺不同业务的不同需求,制定具有针对性的管理实施方案,并通过对当前我国网上商城服务管理业务流程进行优化,以科学的管理思想与管理方法为指导,以提高松鼠零食铺的服务管理效率。本系统在管理功能上分为系统管理、商品管理、日常管理三个功能模块。如图4-2所示。图4-2松鼠零食铺功能结构图4.3松鼠零食铺功能模块划分4.3.1用户管理模型图4-3用户管理模型用户管理模型主要是针对系统管理员对用户进行管理。因为用户设计到高级管理员和普通会员等等。通过对这些用户的权限管理,角色分配实现每一类的用户只能访问,更改自己的权限范围内的内容。表4-1管理员登录编号101用例名称管理员登录使用人员管理员扩展点无输入管理员:管理员账号(25位以内),管理员密码(25位以内)系统响应系统提示登陆成功,并跳转管理界面。前置条件用户尚未登录。后置条件用户已登录交互行为用户通过交互式页面发起登录行为。’系统返回登录页面。用户依照身份输入相应信息,提交。系统验证登录信息结构,验证成功,予以上传。系统依照登录信息查找用户,匹配信息成功,确认用户合法。系统将用户置为已登录状态,保存登录状态并返回登录成功信息。替代交互行为4-a用户输入数据结构不合法(账号错误、密码长度与字符集错误),系统返回错误提示,与错误对应5-a系统在数据库内部未查找到用户数据,或查找到用户数据但数据不完全匹配,系统返回错误提示,提示用户密码输入错误或用户不存在。特别说明无4.3.2用户登录注册模型图4-4居民用户注册模型用户注册的话,也要到网站申请,不过这个不需要中心人员的审核,只要输入的资料符合条件则可以完成注册。注册后就可以查看网上信息。表4-2注册编号102用例名称注册使用人员游客扩展点无输入用户昵称、用户密码(6-16位)、用户联系方式(手机号、邮箱)系统响应系统将用户基本信息存入数据库系统提示注册成功,自动为用户执行登录操作,并跳转回主页面。前置条件游客申请注册后置条件游客成功注册为会员,并登录系统交互行为1.游客通过交互式页面发起注册行为2.系统返回注册页面3.游客输入相应信息,提交4.系统验证注册信息结构,验证成功,予以上传。5.系统查找数据库,确认信息无重复,予以保存。6.系统返回注册成功提示,读取用户,将用户置为已登录状态。替代交互行为4-a游客输入数据结构不合法(手机号格式错误、邮箱格式错误、密码长度与字符集错误),系统返回错误提示,与错误对应5-a游客输入手机号与邮箱已被系统内其他用户注册,提示用户信息已存在,并提示用户重试。特别说明管理员不参与注册行为,其用户账户由数据库管理员统一通过操作数据库发放。表4-3登录编号103用例名称登录使用人员注册用户扩展点无输入注册用户:用户密码(6-16位)、用户联系方式(手机号或邮箱)系统响应系统提示登陆成功,并跳转回主页前置条件用户尚未登录。后置条件用户已登录,可以使用系统服务。交互行为7.用户通过交互式页面发起登录行为8.系统返回登录页面9.用户依照身份输入相应信息,提交10.系统验证登录信息结构,验证成功,予以上传。11.系统依照登录信息查找用户,匹配信息成功,确认用户合法。12.系统将用户置为已登录状态,保存登录状态并返回登录成功信息。替代交互行为4-a用户输入数据结构不合法(账号错误、密码长度与字符集错误),系统返回错误提示,与错误对应5-a系统在数据库内部未查找到用户数据,或查找到用户数据但数据不完全匹配,系统返回错误提示,提示用户密码输入错误或用户不存在。特别说明4.3.3用户管理模型图4-5用户管理模型用户注册成功后,登录系统,就可以根据自己的需要来查询不同的零食,以满足自己的实际生活需要。并可以对自己的个人资料进行管理,还可以查询自己购买的商品订单查询。表4-4查看个人信息编号104用例名称查看个人信息使用人员注册用户扩展点无输入无系统响应系统跳转至对应页面,呈现用户信息,包括基本联系方式(手机、邮箱),基本信息(昵称)前置条件用户已经登录后置条件用户成功跳转至对应页面交互行为已经登录系统的用户通过交互式控件发起请求。系统检测用户登录状态,确认当前角色为已登录用户,返回个人信息页面,包含用户信息。替代交互行为2-a系统检测用户登录状态,确认当前用户为未登录状态,跳转至登录页面,并提示用户登录。特别说明无表4-5修改个人信息编号105用例名称修改个人信息使用人员注册用户扩展点无输入用户姓名、电话号码等基本信息系统响应系统成功修改个人信息,并跳转至个人信息页面。前置条件用户已经登录。后置条件用户成功修改个人信息。交互行为用户发起修改个人信息请求。系统验证用户登录状态,确认用户已登录,返回修改个人信息页面。用户输入相应信息,提交。系统验证提交修改信息,验证成功,予以上传。系统校验用户登录状态,确认用户已登录。系统保存上传的数据,返回修改个人信息成功提示并跳转至登录页。替代交互行为2-a/5-a系统验证用户登录状态,确认用户未登录,跳转至登录页提醒用户登录。4-a系统验证提交修改信息,验证失败,返回错误提示,与对应数据错误一致。特别说明用户昵称等个人信息数据均为可选数据。表4-6登出编号106用例名称登出使用人员注册用户扩展点无输入无系统响应用户状态重新变成未登录状态,同时跳转回首页。前置条件用户已经登录。后置条件用户登录状态清空。交互行为用户通过交互接口发起登出请求。系统校验用户/管理员登录状态,确认用户为登录状态,清除用户登陆状态,返回首页,登出窗口消息,提示用户已成功登出。替代交互行为2-a系统校验用户登录状态,确认用户为未登录状态,返回首页,提示用户并未登录系统。特别说明无4.3.4商城后台业务流程模型网站后台系统是商城的一个核心,通过后台系统管理员可以对仓库的商品进行上架,下架,新增的操作,以前这些都是人工操坐,人工记录,现在则改为由数据库进行一个记录大大提高了安全性,提高了工作效率,降低了运作成本。如图4-6所示。4-6商城后台业务流程图管理员界面用例图说明:表4-7管理商品列表编号201用例名称查看商品列表使用人员系统管理员扩展点无输入商品ID并进行添加、修改和删除系统响应返回商品列表页面,呈现更新后的商品列表数据前置条件管理员已登陆后置条件管理员能够查看商品列表数据交互行为管理员通过交互接口发起请求系统查找数据库,返回商品列表页面,呈现商品列表数据管理员对商品列表进行添加、修改和删除操作提交之后返回商品列表页面,并更新。替代交互行为a系统查找数据库,未查找到相关商品,返回错误提示a系统查找数据库,未修改成功,返回错误提示a对数据库未添加成功,返回错误提示a系统查找数据库,未删除成功,返回错误提示特别说明商品列表需要分页与排序编号202用例名称查看商品详情使用人员系统管理员扩展点无输入商品ID系统响应返回商品详情页面,呈现商品详情数据前置条件管理员已登陆后置条件发起请求的角色能够查看商品详情数据交互行为用户通过交互接口发起请求系统查找数据库,查找到相关商品,返回商品详情页面,呈现商品详情数据替代交互行为2-a系统查找数据库,未查找到相关商品,返回错误提示特别说明商品ID已被封装好根据发起用户角色点击的品ID不同呈现不同的内容。表4-8查看商品详情4.3.5商城前台业务流程模型商城前台是为客户准备的页面,包括登录注册、商品购买、购物车、商品结算、订单管理。使用数据库来保存用户的购买记录,由此来分析用户喜欢那些商品,那些商品高买的比较少。可以最为业务分析的依据,单点登录(登录一次其他地方就不用再登录)由此改善用户体验。商城前台流程图如图4-7、4-8。图4-7商城前台业务流程图图4-8顾客可用功能图用例图说明:表4-9查看商品列表编号302用例名称查看商品列表使用人员游客、注册用户扩展点无输入无系统响应返回商品列表页面,呈现商品列表数据前置条件无后置条件发起请求的角色能够查看商品列表数据交互行为用户通过交互接口发起请求系统查找数据库,返回商品列表页面,呈现商品列表数据替代交互行为无特别说明商品列表需要分页与排序表4-10查看商品详情编号303用例名称查看商品详情使用人员游客、注册用户扩展点无输入商品ID系统响应返回商品详情页面,呈现商品详情数据前置条件无后置条件发起请求的角色能够查看商品详情数据交互行为用户通过交互接口发起请求系统查找数据库,查找到相关商品,返回商品详情页面,呈现商品详情数据替代交互行为2-a系统查找数据库,未查找到相关商品,返回错误提示特别说明商品ID已被封装在相关跳转链接中返回的详情页面根据发起用户角色的不同呈现不同的内容。
5数据库设计5.1数据流图5.1.1顶层数据流图卖家可以放商品到零食铺商城。图5-1顶层数据流程图5.1.2第二层数据流图卖家可以对商品信息进行编辑,商品生产日期和过期日期进行编写,处理订单状态。图5-2第二层数据流程图5.1.3第三层数据流图(1)信息编辑的数据流图图5-3第三层信息编辑数据流程图商品编辑的数据流图图5-4第三层商品编辑数据流程图(3)订单处理的数据流图图5-5第三层订单处理数据流程图5.2数据库概念结构设计图5-7数据概念结构设计图5.3数据库逻辑结构设计图5-6数据库逻辑结构设计图5.4数据字典使用SQLserver简历一个数据库,数据库开放账号:tzq,密码:111111。该库有14个表,以下是这些表的结构和内容。账单表account:用来记录金钱充值、消费、提现的时间。表5-1账单表字段名称数据类型长度主键字段描述m_idint11是订单IDu_idint11否用户IDm_timedate0否单号时间m_typevarchar255否单号类型(充值、消费、提现)m_amoneyvarchar255否钱管理员账号信息表admin表5-2管理员表字段名称数据类型长度主键字段描述ad_idInt11是ID编号ad_usernamevarchar255否管理员账号ad_passwordvarchar255否管理员密码role_idint11否管理员权限等级后台菜单栏admin_menu表5-3后台菜单表字段名称数据类型长度主键字段描述idint11是菜单栏IDmenu_namevarchar255否菜单栏后台子菜单栏admin_menu_child表5-4后台子菜单表字段名称数据类型长度主键字段描述idint11是子菜单IDchild_menu_namevarchar255否子菜单名字parentidint11否父级菜单IDchild_menu_urlvarchar255否连接地址(5)购买商品评语comment表5-5评论表字段名称数据类型长度主键字段描述e_idint11是IDe_parentIdint11否追评s_idint11否商品IDu_idint11否用户IDe_pictureNamevarchar255否上传图片的名字e_typeint11否1=好评,0,-1差评e_scoreint11否评分infovarchar255否评语e_datedate0否评价日期(6)order订单管理状态表5-6订单管理状态表字段名称数据类型长度主键字段描述idInt11是订单管理IDo_idvarchar255否订单编号u_idint11否用户IDe_idint11否操作员IDo_timedate0否订单时间o_typeint11否-1:未发货;1:完成,0:已发货(7)permission后台功能按钮表5-7后台功能按钮表字段名称数据类型长度主键字段描述peridint11是功能IDpnamevarchar255否功能名字parentidint11否父级菜单IDurlvarchar255否链接地址isparentInt11否父级ismenuInt11否菜单(8)orderdetail订单表5-8订单管理状态表字段名称数据类型长度主键字段描述d_idint11是订单IDo_idvarchar255否订单编号s_idint11否商品ID编号o_numInt11否商品数量o_moneydouble0否商品价格(9)receiptinfo订单收据信息表5-9订单收据信息表字段名称数据类型长度主键字段描述r_idint11是收据IDo_idvarchar255否订单编号o_namevarchar255否收件人姓名o_phonevarchar255否收件人手机号码o_addressvarchar255否收件地址(10)record商品出库记录表5-10商品出库记录表字段名称数据类型长度主键字段描述record_idint11是出库IDs_idint11否商品IDrecordDatevarchar255否出库时间recordNumberint11否出库数量(11)role管理员权限等级表5-11管理员权限等级表字段名称数据类型长度主键字段描述role_idint11是管理员IDrole_namevarchar255否管理员姓名role_infovarchar255否管理员等级(12)rolepermission管理员操作功能权限等级表5-12管理员操作功能权限等级表字段名称数据类型长度主键字段描述idint11是编号IDrole_idint11否管理员IDperidint11否功能ID(13)snackinfo零食商品表5-13零食商品表字段名称数据类型长度主键字段描述s_idint11是商品IDs_batchvarchar255否批次好=生产日期+2位随机数s_namevarchar255否功能IDs_pricedouble0否库存s_discountvarchar255否折扣s_pictureUrlvarchar255否图片链接s_brandvarchar255否品牌s_placevarchar255否产地s_Importedint11否是否进口s_scoreint11否积分s_pDatedate0否生产日期s_qDatevarchar255否保质期Stateint11否1上架,0草稿,-1--下架s_createDatedate0否上架时间s_desevarchar255否详情s_typevarchar255否类型s_numbervarchar255否数量(14)userinfo用户基本信息表5-14用户基本信息表字段名称数据类型长度主键字段描述u_idint11是用户IDu_realnamevarchar255否真实姓名u_usernamevarchar255否用户名u_passwordvarchar255否密码u_moneyvarchar255否钱包金额u_phonevarchar255否手机号u_emailchar255否邮箱u_sexdate0否性别u_resgistDatevarchar255否出生日期u_addressint11否地址6松鼠零食铺系统详细设计与实现详细设计阶段主要是为了确定每个模块的具体执行过程,主要是确定怎样具体的实现所要求零食商城,除了需要保证程序的可靠性,并且还要使编写的程序将来方便使用,代码清晰,易于维护也是详细设计阶段中最重要的目标,是进行详细设计的逻辑基础。下面是对松鼠零食铺的详细设计的活动图。图6-1活动图6.1前台功能模块前台功能模块分为注册登录、浏览模块、查询模块、购物车模块四个模块如图6-1所示。图6-1前台功能模块注册登录模块:用户可以通过注册获得自己的账号,然后登录之后才能进行购买东西。浏览模块:用户不进行登录注册也可以浏览商品。查询模块:用户可以通过搜索栏进行查询自己想要的商品。购物车模块:用户只能登录自己的账号才能把商品加入购物车,然后对自己购物车的商品进行编辑数量、购买和清空购物车。前台用户主要的功能模块:用户注册:用户想要购买零食商品,要去注册本零食商城的账号,作为一个零食商城网站,最基本的功能肯定就是注册了。只有注册了的用户才能在网站内订购自己想要的零食。 用户登录:用户注册完成之后,即可在登录页面中进行登录,用户只要输入用户名和密码即可登录。当用户登录以后,根据判断传入的登录信息参数,会得到该用户的权限,主页面会自动显示该权限内的所有功能,便可进行个人资料的查看和更改自己信息、购买商品和处理个人订单等操作。 用户注销:用户登录后如果要离开网站,可以注销个人帐号,防止他人修改或使用本人帐号。 购物车:当用户选好自己想要的零食后可以把商品放入购物车,购物车将自动产生相应的定单。用户也可以将购物车里选好的零食删除掉,从而相应定单的也会删除。6.1.1前台模块具体实现详情(1)网站首页页面名称:shop/index参数:无。调用背景:用户浏览器打开本网站时跳转至此页面;当“返回主页”项被单击时,跳转至此页面;页面组成:顶部为用户操作栏,中部为页面有热门商品的图片展示或需求列表,中间为网站介绍和几个功能模块的图示。页面提供搜索功能。调用描述:单击商品分类图片上特定分类的“查看更多”,跳转到特定商品分类网页上,通过type参数进行区分。单击“搜索”按钮,跳转到特定搜索商品页面,通过id,tag,type参数进行区分。单击商品中任意项,跳转到该商品的详细信息页面,通过id参数记录。(2)登陆界面页面名称:shop/adminGoMain参数:无调用背景:用户在未登录状态下,不能进行除浏览之外的任何操作。用户在其他界面进行的操作,系统都会跳转到登录界面。页面组成:由一个登录框from表组成,主要包括用户名和密码两个文本框,一个登录按钮及注册新用户超链接。调用描述:当前用户没有登录,在用户名和密码及验证码填入后,单击“登录”。在数据库中进行查询,若存在此记录。根据id参数跳转到相应的界面,若不存在,则提示输入错误。单击注册新用户超链接按钮,则页面跳转注册界面。(3)修改个人信息页面名称:user/userRegisterGet参数:无。调用背景:当未登录用户在任意界面单击“注册”时跳转此页面。权限不够会跳转到登录页面页面组成:由一个from表格构成。用户在注册时需要填写“用户名”、“密码”、“确认密码”、“地址”、“手机号”、“性别”、“邮箱”。确认符合输入规则后,在表格下单击“注册”按钮。调用描述:单击“注册”按钮后,页面会检验所填各项是否合法,如填写合法,则跳转到注册前所在页面;如填写不合法,则在页面中相应位置msg提示不合法信息。(4)修改个人信息页面名称:user/editUserinfo参数:无。调用背景:单击导航栏中的“个人信息”,此页面被调用。页面组成:包括个人信息。页面中还包括“修改”按钮。调用描述:单击“保存修改”按钮,更新数据库中相应信息,AJAX更新信息回到user/editUserinfo界面(5)个人信息页面名称:user/userPersonalInfo参数:无调用背景:单击“个人信息”,此页面被调用。页面组成:包括个人信息:用户名、邮箱、手机号、入学时间、性别和评分。(6)查看零食商品列表页面名称:shop/supermarketSnack参数:商品ID调用背景:当用户已登录时,点击“商品列表”跳转到此页。页面组成:该界面有所有用户已发布商品的列表,列表项显示商品图片和标题。页面提供搜索功能。调用描述:用户在该页面可以按需浏览和查找感兴趣的商品。用户可以按分类或标题或发布者来查找和浏览相关商品。若用户对某一商品感兴趣,且商品状态为未完成交易时,可以点击“申请交易”。(7)零食商品详情页页面名称:shop/Type参数:id=?,指定需求的ID。调用背景:当用户点击某一零食商品时跳转到此页。页面组成:该界面显示零食具体的详情,包括标题、分类、描述、发布时间等信息。调用描述:用户在零食详情页可以查看零食商品详细信息。另外,用户可以在该页将零食商品加入购物车。本系统前台购物车模块的功能流程图,如图6-2所示。图6-2前台功能流程图6.2后台功能模块后台功能模块分为用户管理、订单管理、活动图片管理和商品管理四个模块如图6-3所示。图6-3后台功能模块用户管理模块:管理员可以看到所有用户的资料信息,并且可以对用户的用户名、密码、联系方式和地址进行修改。订单管理模块:管理员可以对购买了本系统零食的订单进行管理,对订单的发货是否收货进行确认。活动图片模块:管理员可以对前台首页banner的活动图片进行替换。商品管理模块:管理员可以对现有的商品进行删除和修改,并且可以添加新的商品进去。6.2.1前台模块具体实现详情(1)管理员登陆界面页面名称:admin/login/adminLogin参数:无调用背景:用户在未登录状态下,不能进行除浏览之外的任何操作。用户在其他界面进行的操作,系统都会跳转到登录界面。页面组成:由一个登录框from表组成,主要包括用户名和密码两个文本框,一个登录按钮。调用描述:当前用户没有登录,在用户名和密码及验证码填入后,单击“登录”。在数据库中进行查询,若存在此记录。根据id参数跳转到相应的界面,若不存在,则提示输入错误。(2)修改商品页面名称:admin/login/adminSnackInfo参数:id=?,指定商品编号。调用背景:若用户已登录,单击零食商品列表中商品名,弹出商品信息弹框。页面组成:页面的表格中是修改商品所需要填写的输入数据控件,包括商品标题、描述、分类和图片。下方有“保存修改”和“取消”按钮。调用描述:用户在登录后,可以查看零食商品列表,并对零食商品进行修改。在该页面,用户可以对商品信息进行修改。(3)发布商品页面名称:admin/login/adminSnackInfo参数:无调用背景:登陆账号点击商品管理的添加按钮,调出弹框,此页被调用。页面组成:包括一个表格,包括需求零食标题、分类、描述,图片(可选)等。页面下方有“确认发布”按钮。调用描述:用户登录后,可以在此页面发布需求。按要求填写完零食标题、分类和描述后,用户可以点击“确认发布”按钮以发布新需求。(4)用户管理页面名称:admin/login/adminUser参数:id=?,指定用户编号。调用背景:若用户已登录,单击用户管理列表中用户ID名,弹出商品信息弹框。页面组成:页面的表格中是可以对用户个人信息资料进行修改,可以对用户的“密码”,“地址”,“邮箱”,“电话号码”等个人信息进行修改。下方有“保存修改”和“取消”按钮。调用描述:用户在登录后,可以查看所有用户信息列表,可以对其中的用户信息进行修改。在该页面,用户可以对用户信息进行修改。图6-4后台功能模块流程图6.3核心代码的实现6.3.1注册登录用户可以登录自己的账户,当密码或者账号信息错误则会出现“用户名或密码错误”只有全部正确后才能登录账户,登录信息的代码如下://登录 @RequestMapping("adminGoLogin") publicStringadminGoLogin(HttpServletRequestrequest,Adminadmin){ List<Admin>adminSelect=adminLoginService.adminLogin(admin); if(adminSelect.size()==1){ request.getSession().setAttribute("adminName",adminSelect.get(0).getAdUsername()); request.getSession().setAttribute("adminId",adminSelect.get(0).getAdId()); List<Permission>allPer=adminLoginService.selectAllPermission(); List<Permission>userPer=adminLoginService.selectRolePermission(adminSelect.get(0).getRoleId()); request.getSession().setAttribute("allPer",allPer); request.getSession().setAttribute("userPer",userPer); return"redirect:adminGoMain"; } request.setAttribute("msg","用户名或密码错误"); return"admin/adminLogin";功能:根据用户账号和密码验证数据库信息入口:用户账号和密码出口:用户信息保存在session里运行结果如图6-2所示:图6-2前台功能模块6.3.2用户退出用户登录后如果要离开网站,可以退出个人帐号,防止他人修改或使用本人帐号,用户退出信息的代码如下: //退出 @RequestMapping("adminMainToLoginOut") @ResponseBody publicStringadminMainToLoginOut(HttpServletRequestrequest){ request.getSession().removeAttribute("adminName"); returnResponseUtil.successToClient(); }//JS代码$(document).ready(function(){ //退出登录varname=$('#pd').val(); if(name!=null&&name!=0&&name!=''&&name!='0'){ document.getElementById("headerLogout").style.display="block"; }else{ document.getElementById("headerLogout").style.display="none"; } $(document).ready(function(){ $(".headerLogout").click(function(){ location.href="/zuoye_snack/shop/userlogout"; }); });});功能:根据清空保存在服务器中的session入口:remove出口:返回shop/index页面6.3.3用户注册注册得判断数据库后台信息是否有相同的用户名,如果有相同的用户名则不能注册。注册信息控制层代码如下: //注册判断用户名存在 @RequestMapping("selectUserOne") @ResponseBody publicAjaxResultgetUserOne(Userinfouserinfo){ AjaxResultaj=newAjaxResult(); Userinfors=userService.selectUserOne(userinfo); aj.setTag(rs); returnaj; } //注册 @RequestMapping("addUserRegister") @ResponseBody publicAjaxResultaddUserOne(Userinfouserinfo){ AjaxResultaj=newAjaxResult(); intrs=userService.addUserOne(userinfo); aj.setTag(rs); returnaj; }功能:根据用户提交的信息保存在数据库里入口:AJAX调用数据库的insertinto功能出口:返回shop/index页面运行结果如图6-3所示图6-3前台功能模块6.3.4查询用户可以通过查询按钮去查询自己想要的零食。搜索栏控制层代码如下:@RequestMapping("puffingType") publicStringpuffing(HttpServletRequestrequest,DoSnackTypedoSnackType){ List<Snackinfo>TypeSnackList=shopService.selectPuffing(doSnackType.getType(),doSnackType.getSnackName()); if(doSnackType.getType()==1){ request.setAttribute("TypeSnackTitle","膨化类"); }elseif(doSnackType.getType()==2){ request.setAttribute("TypeSnackTitle","肉制类"); }elseif(doSnackType.getType()==3){ request.setAttribute("TypeSnackTitle","饮料类"); }elseif(doSnackType.getType()==4){ request.setAttribute("TypeSnackTitle","其他"); }elseif(doSnackType.getType()==5){ request.setAttribute("TypeSnackTitle","搜索结果"); }elseif(doSnackType.getType()==6){ request.setAttribute("TypeSnackTitle","进口类"); } request.setAttribute("TypeNum",doSnackType.getType()); request.setAttribute("TypeSnackList",TypeSnackList); return"user/typePage"; }功能:根据用户提交的数据去查询到相应的零食入口:模糊查询关键字like%__%出口:返回shop/type?type=零食页面界面如6-4所示:图6-4搜索栏模块6.3.5购物车模块登录成功的用户可以把喜欢的零食加进自己的购物车里面,并且可以观看自己购物车里面的东西。购物车模块下单代码如下://下订单 @RequestMapping("setOrder") @ResponseBody publicStringsetOrder(HttpServletRequestrequest,HttpSessionsession,Receiptinforeceiptinfo){ DoMoneyFKdfk=newDoMoneyFK(); ReceiptinforeceiptinfoSession=(Receiptinfo)session.getAttribute("receiptinfo"); Dateday=newDate(); SimpleDateFormatdf=newSimpleDateFormat("yyyyMMdd"); StringoId=df.format(day).toString()+String.valueOf((int)(Math.random()*9000+1000)); receiptinfo.setoId(oId); receiptinfo.setOrderdetailSet(receiptinfoSession.getOrderdetailSet()); sorderService.addReceiptinfo(receiptinfo); Orderorder=newOrder(); order.setoId(oId); order.setuId((int)session.getAttribute("frontuserId")); order.setoTime(DateUtil.getCurrentTime()); order.setoType(-1); sorderService.addOrder(order); Orderdetailorderdetail=newOrderdetail(); orderdetail.setoId(oId); for(OrderdetailorderdetailSession:receiptinfoSession.getOrderdetailSet()){ orderdetail.setoNum(orderdetailSession.getoNum()); orderdetail.setoMoney(orderdetailSession.getoMoney()); orderdetail.setsId(orderdetailSession.getsId()); sorderService.addOrderdetail(orderdetail); } UserinfoselectUserinfoMoney=userService.selectUserinfoMoney((int)request.getSession().getAttribute("frontuserId")); DoubleselectOrderdetailPayMoney=sorderService.selectOrderdetailPayMoney(oId); dfk.setoId(oId); dfk.setPayMoney(selectOrderdetailPayMoney.toString()); dfk.setuMoney(selectUserinfoMoney.getuMoney()); session.removeAttribute("receiptinfo"); returnResponseUtil.successToClientStr(dfk); }@RequestMapping("/sorder")publicclassSorderController{ @Autowired privatesorderServicesorderService=null; @Autowired privateuserServiceuserService; @RequestMapping(value="/add",method=RequestMethod.POST) publicStringaddSorder(Snackinfosnackinfo,HttpSessionsession){ System.out.println("addCar()"+snackinfo.getsNumber()); //1:通过product.id获取当前的商品数据 SnackinfofindSnackinfo=sorderService.snackfindById(snackinfo.getsId()); findSnackinfo.setsNumber(snackinfo.getsNumber()); //2:判断当前session是否有购物车,如果没有则创建 if(session.getAttribute("receiptinfo")==null){ //创建购物车,存到session中 session.setAttribute("receiptinfo",newReceiptinfo(newHashSet<Orderdetail>())); } Receiptinforeceiptinfo=(Receiptinfo)session.getAttribute("receiptinfo"); //3:把商品信息转化为sorder,并且添加到购物车中(判断购物车是否重复) receiptinfo=sorderService.addSorder(receiptinfo,findSnackinfo); receiptinfo.setoPhone(cluTotal(receiptinfo)); return"redirect:gotocar"; }功能:根据用户提交的数据去查询到相应的零食,判断是否有购物车,没有则添加一个购物车并将零食加入购入车。入口:零食ID出口:购物车中所有零食ID的信息。界面如6-5所示:图6-5购物车模块6.3.6商品管理模块管理员可以管理商城的商品查看商品当前的数量,当补货的时候能对其商品的数量进行修改,还可以添加新的商品。商品管理模块代码如下://商品 @RequestMapping("adminSnackinfoLimit") @ResponseBody publicDataTablesadminOrderLimit(intstart,intlength, StringsName,StringsType,StringstartDate,StringendDate){ Map<Object,Object>map=newHashMap<Object,Object>(); map.put("pageStart",start); map.put("pageSize",length); map.put("sType",sType); map.put("sName",sName); map.put("startDate",startDate); map.put("endDate",endDate); PageHelp<Snackinfo>pageHelp=adminSnackInfoService.selectAdminSnackinfoLimit(map); DataTablesdatatable=newDataTables(); datatable.setData(pageHelp.getList()); datatable.setRecordsFiltered(pageHelp.getRecord()); datatable.setRecordsTotal(pageHelp.getRecord()); returndatatable; }功能:管理员对零食商品进行管理入口:商品ID出口:商品具体信息。界面如图6-6所示:图6-6商品管理模块6.3.7订单管理模块管理员可以查看订单消息,并且发货查看货物的验收情况,订单号是以年月日加随机的4位数组成的。订单管理模块代码如下:@RequestMapping("setOrder") @ResponseBody publicStringsetOrder(HttpServletRequestrequest,HttpSessionsession,Receiptinforeceiptinfo){ DoMoneyFKdfk=newDoMoneyFK(); ReceiptinforeceiptinfoSession=(Receiptinfo)session.getAttribute("receiptinfo"); Dateday=newDate(); SimpleDateFormatdf=newSimpleDateFormat("yyyyMMdd"); StringoId=df.format(day).toString()+String.valueOf((int)(Math.random()*9000+1000)); receiptinfo.setoId(oId); receiptinfo.setOrderdetailSet(receiptinfoSession.getOrderdetailSet()); sorderService.addReceiptinfo(receiptinfo); Orderorder=newOrder(); order.setoId(oId); order.setuId((int)session.getAttribute("frontuserId")); order.setoTime(DateUtil.getCurrentTime()); order.setoType(-1); sorderService.addOrder(order); Orderdetailorderdetail=newOrderdetail(); orderdetail.setoId(oId); for(OrderdetailorderdetailSession:receiptinfoSession.getOrderde
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 资助学生的感谢信(15篇)
- 语文教研活动总结合集15篇
- 二年级数学100以内加减法竖式计算题单元练习习题大全附答案
- 徐州骏宏通集装箱制造有限公司年产2000个集装箱技改项目环境影响报告表
- 红领巾奖章个人事迹
- 银行工作人员工作总结20篇
- 药店防潮知识
- 2025喜乐元宵互动亲子国潮元宵佳节正月十五民俗主题活动策划方案
- 家庭教育中责任心的重要性与培养方法
- 道路交通安全标志课件
- 18《文言文二则:铁杵成针》(教学设计)2023-2024学年统编版语文四年级下册
- 2024年平顶山市龙翔建设投资集团有限公司招聘笔试冲刺题(带答案解析)
- 机械锚栓检测报告
- 中医药新技术新方法研究课题
- 《电力变压器中性点电容隔直装置技术规范》
- (2024年)全新食堂人员食品安全培训
- 任务2 聚酯合成的浆料配制
- 高校引进博士述职报告
- 临终关怀创业计划书
- 【上市公司的财务风险的分析和防范:以三只松鼠为例10000字(论文)】
- 部编版小学语文四年级下册教师教学用书(教学参考)完整版
评论
0/150
提交评论