基于SSM框架的校园网上订餐系统的设计与实现Word下载.docx
《基于SSM框架的校园网上订餐系统的设计与实现Word下载.docx》由会员分享,可在线阅读,更多相关《基于SSM框架的校园网上订餐系统的设计与实现Word下载.docx(34页珍藏版)》请在冰豆网上搜索。
系统总体由前台点餐界面和后台管理界面这两大部分组成,前台点餐界面主要用于美食的销售,顾客必须先注册登录才能点餐下单。
后台管理界面则以两种管理角色进行区分,商品管理员只拥有对美食和订单的管理权限,而超级管理员则可以对用户,评论,管理员,校园资讯,美食,订单进行管理。
1.4项目的开发技术选择
通过在网上查阅了大量的相关文献,其中不乏一些关于前端和后端开发技术的文献,通过参考阅读这些文献,可以让自己对技术有更好的定位以及选择。
我们都知道,开发的技术选择有很多种,选择其中适合自己开发的一种或者多种相关技术,可以让自己更好更快地进行项目的开发。
所以最终我决定采用Bootstrap、H-ui.amin作为前端的主要开发框架,而后端则采用SSM(Spring、SpringMVC、mybatis)框架和MySQL进行项目的整合开发。
第二章系统开发工具和技术简介
2.1IntelliJIDEA
IntelliJIDEA是专门为编写Java语言而开发出来的一套集成环境,由于它强大的整合能力,提示功能的快速便捷,以及良好的代码模板,颇受众多开发者的喜爱。
其中,它的一些小功能特别有心也有用,比如在本地修改编辑某个文件之后,再重新最大化IDEA,它会自动同步对文件进行数据更新,不需要你再去手动导入。
另外,它的智能选取快捷功能,可以更好地帮助我们进行代码的选取,这个在重构的时候会变得特别方便,因为它会帮我们一层一层地往外进行扩充选取。
比如从一个变量慢慢扩充至整个类。
当然,IntelliJIDEA还有一个特别强大的功能就是代码的追踪能力,在我们进行BUG调试的过程中,可以快速定位至某行代码,并且还可以在代码界面上提示相关的值。
2.2MySQL
MySQL是由MontyWidenius在1996年时所发布的一款免费开源的关系型数据库管理系统,这个数据库发展至今,也是目前较为流行的一款DBMS。
MySQL凭它借自身免费开源、体积占用小、运行速度快、使用范围广、平台支持性好的特点在众多数据库中脱颖而出,这也正是这次选取它作为本次系统数据库的关键依据。
2.3Spring+SpringMVC+Mybatis
本次项目采用SSM作为系统后台框架进行业务的开发,可以快速为项目搭建好后台开发环境和架构,为自己后期项目的开发进度提供了保障。
其次,作为整合的三大技术,Spring依靠其控制反转、切面编程、依赖注入的特性,可以让代码得到充分的复用性,大大提高了系统的可维护性。
SpringMVC通过其控制器将系统的前端与后台得到了一定关联,如前端控制器(DispatcherServlet)通过接受来自客户端发出的请求,并在后台分发给不同的处理器(Controller),处理器(Controller)处理完请求之后就会返回一个视图模型(ModelAndView),然后通过视图解析器(ViewResolver)将其进行解析,并最终返回给前端控制器(DispatcherServlet)进行渲染,显示给用户。
Mybatis则是一款优秀的持久化框架,它没有任何第三方依赖,简单而快速灵活地管理SQL。
如Mybatis通过XML文件来编写SQL语句,可以将业务逻辑代码跟数据访问分离,让系统的设计变得更加清晰简单,提高程序的可维护性。
2.4JSP
JSP是由Sun公司最先推出的一门针对网页开发的技术,主要运行在服务器端。
由于JSP其底层使用的是Java脚本语言,这使得在JSP页面中可以去使用Java语言所通用的语法规则,甚至一些Java相关组件。
从而也使得Java语言得到了进一步的功能扩展,侧面提高Java语言在行内的使用度。
作为目前网页开发中最常见的技术之一,JSP继承了Java语言中“一次编译,到处运行”的特性,能够实现程序与硬件平台的分离,这对于程序运行效率的提升发挥着重要作用。
在本次系统设计中,JSP页面主要是向用户展示前台视图的一个界面,在SpringMVC中相当于一个View层的形式存在,JSP在该层需要与Controller层结合起来进行开发,其运行机制如下:
JSP发送请求,Controller控制器接受并处理该请求,并返回至JSP,JSP回显数据到页面上。
2.5Tomcat
Tomcat是目前较为流行的一款轻量级的Web应用级服务器,依靠其免费开源,占用体积小,可扩展性高的特性,而被众多软件公司和个人开发者所认同和喜爱,在实际开发中它普遍应用于一些并发量比较少的中小型系统中。
除此之外,Tomcat本质上也相当于是一个Servlet容器,它也具备了Servlet容器的特性,包括负责类的加载,实例化,以及促使实例资源的被回收等生命周期的管理,提供了每接收一个Servlet请求就创建一个Java线程的多线程支持,也可以通过XML文件的声明方式来提高程序的安全性。
2.6Bootstrap/H-ui.amin
Bootstrap是一套用于帮助开发者快速搭建web应用程序的前端框架,它底层是基于HTML、CSS、JavaScript这三种基础的前端语言进行开发。
Bootstrap已经帮我们封装好了很多各式各样、简约而不简单的web组件,我们只需要依照其相关规范进行编写,即可快速的帮助我们进行前端界面的开发。
本次系统的前台界面就是基于Bootstrap开发。
H-ui是参考Bootstrap而开发的一套全新框架,它是一个基于MIT协议的免费开源项目,可供个人网站和商业站点的使用。
而H-ui.amin是基于H-ui开发的一个后台管理模板,可以帮助开发者省去搭建前端界面的时间。
本次系统的后台管理界面就是以H-ui.amin作为模板开发。
2.7MVC设计模式
MVC模式是我们Web开发中最常见的开发设计模式,主要由模型(Model)、视图(View)、控制器(Controller)这三层组件构成,这三者之间的功能分工情况如图2-7显示,可以看到它们彼此之间分工明确,各自履行自己的功能职责。
Model层主要是用于一些业务逻辑的判断,以及数据库的相关存取操作,是这三层当中唯一可以与数据库进行打交道的模型。
View层是向用户展示数据和响应用户请求的一个视图层,是用户能够与系统进行人机交互的一个直接交互界面。
Controller层则主要是处理来自前端用户发出的请求,对请求的一个数据进行分发处理,并移交至Model层来执行。
总的来说,MVC设计模式让模型、视图、控制器各自明确了自己的功能职责,在降低模块与模块之间的耦合度上,起到了非常关键的作用。
2-7MVC三大组件的分工情况
第三章系统需求分析
3.1系统功能需求
系统总体由前台点餐界面和后台管理界面两部分组成,前台主要用于游客和用户浏览美食,后台则为超级管理员和商品管理员提供管理界面。
首先,进入前台点餐界面,如果用户没有登录,系统则默认用户为游客,只只提供以下权限:
美食分类浏览,美食详情,美食搜索,登录注册以及常见问题板块的浏览。
其余功能:
美食订购,查看购物车,订单支付,查看订单,评论美食,浏览校园资讯,注销,则需要用户登录才能提供。
使用流程:
用户首先进入点餐界面,根据美食分类,发现有自己喜欢的美食,点击该美食进去查看美食详情页,该界面可以查看美食价格、美食描述、美食销售情况,美食相关评价,美食所属商家等相关信息,如果对美食满意的话可以选择立即购买或者加入购物车,选择立即购买则直接跳转至支付订单界面,查看相关结算数据,填写相关收货信息后并支付即下单成功,之后可以在我的订单中查看美食的发货状态。
而选择加入购物车,则会在你浏览并加入其他美食进购物车之后,在购物车界面中选择你要购买的美食,选择下单进入订单支付界面,查看相关结算数据,填写相关收货信息后并支付即下单成功,之后也都可以在我的订单中查看美食的发货状态。
完成美食配送之后,用户可以对美食进行评价。
其次,管理员进入管理界面之前,需要进行后台的一个登录,登录完之后根据用户登录角色的不同,提供不同的操作权限。
超级管理员权限最大,拥有整个系统的管理操作,而商品管理员拥有的操作权限仅限如下:
查看订单列表,查看评论列表,查看订单项,查看美食列表,查看分类列表,订单发货,美食下线,添加美食,修改美食,删除美食,添加美食分类,修改美食分类。
超级管理员可以根据实际情况在后台赋予商品管理员某些操作权限。
3.2系统功能模块图
系统的功能模块图如图3-2所示:
3-2模块功能结构设计图
3.3用例总表
系统的所有用例如下表:
校园网上订餐系统中的用例
编号
参与者
用例名称
用例说明
1
游客
注册
注册用户可以通过注册页面免费注册成为普通用户
2
登录
用户只有进行登录后才可以进行订餐
3
游客/用户
查看美食
点击美食后查看具体美食介绍、价格等信息
4
美食搜索
通过关键词的方式可模糊查询对应的美食列表
5
查看美食分类
在不同的美食专区可以查看对应的美食列表
6
查看常见问题
可以查看针对系统的一些常见问题
7
用户
加入购物车
将美食加入自己的购物车
8
订购美食
可以通过直接购买或者购物车的方式进行结算
9
查看订单
查看自己的订单详情
10
注销
退出登录状态
11
查看校园资讯
浏览关于本校的资讯信息
12
商品/超级管理员
管理订单列表
在后台对用户的前台订单进行处理
13
美食管理
后台对美食的信息进行处理
14
超级管理员
设置用户会员状态
设置用户是否为会员
15
美食评论管理
可对评论进行删除操作
16
校园资讯管理
可对资讯进行审核与删除操作
17
管理员管理
可在其中对角色、权限、管理员进行管理操作
3-3系统用例表
3.4用例图
3.4.1前台参与者用例图
游客状态下拥有以下权限:
注册、登录、查看美食、美食搜索、查看美食分类、查看常见问题。
用户状态下拥有以下权限:
查看美食、美食搜索、查看美食分类、查看常见问题、查看校园资讯、加入购物车、订购美食、查看订单、注销。
3-4-1前台参与者用例图
3.4.2后台参与者用例图
商品管理员拥有以下管理权限:
订单列表管理、美食管理。
超级管理员拥有以下管理权限:
设置用户会员状态、美食评论管理、订单列表管理、美食管理、校园资讯管理、管理员管理。
管理员管理则又包括角色管理、权限管理、管理员管理。
3-4-2后台参与者用例图
3.5状态图
前台整个点餐流程如图3-5所示:
3-5前台点餐状态图
第四章数据库设计
4.1E-R图设计
针对前台点餐系统的数据库设计与研究,绘制出了系统前台主要参与实体对象的实体-联系图,如图4-1所示:
4-1前台主体E-R图
4.2数据库表设计
数据库由MySQL数据库管理系统建立并维护,命名为ordering_system。
由customer、category、product、order_item、order_shopping_item、review、zixun、permission、role、role_permission、user、user_role共12张表组成。
各表中的数据结构如下:
顾客表(customer)
字段名
数据类型
范围(长度)
约束
备注
id
int
主键
唯一标识,自增
name
varchar
100
非空
用户名
password
密码
address
买家地址
phone
买家手机号码
status
只能取值0或者1(0:
普通用户、1:
会员)
状态,默认取值为0
4-2-1顾客表
分类表(category)
分类名
4-2-2分类表
美食表(product)
范围
50
美食名称
price
float
(10,2)
价格
zan
点赞数
number
销售量
下线、1:
上线)
状态,默认取值为1
imageurl
美食图片url
miaoshu
美食描述
cid
外键
分类id
bid
商家id
4-2-3美食表
订单表(order_item)
code
255
订单编号
收货地址
只能取值0、1、2、3(0:
未支付、1:
正在配送、2:
已配送、3:
已收货)
cstid
顾客id
4-2-4订单表
订单美食单项表(order_shopping_item)
pid
美食id
oid
订单id
美食数量
4-2-5订单美食单项表
评论表(review)
content
评论内容
createtime
datetime
发布时间
4-2-6评论表
资讯表(zixun)
资讯内容
只能取值0、1、(0:
未通过、1:
通过)
审核状态,默认取值为0
fabudate
4-2-7资讯表
操作权限表(permission)
操作权限名字
desc
权限描述
url
可访问文件夹url
4-2-8操作权限表
角色表(role)
角色名
角色描述
4-2-9角色表
角色权限表(role_permission)
rid
角色id
权限id
4-2-10角色权限表
商家表(user)
uid
管理员名称
管理员密码
停用、1:
启用)
商家地址
商家联系电话
lasttime
最后登录时间
4-2-11商家表
用户角色表(user_role)
用户id
4-2-12用户角色表
第五章系统模块详细设计
5.1前台模块设计
5.1.1用户注册
游客状态下只拥有查看美食分类列表,搜索美食,查看美食详情,查看常见问题这4个界面的访问权,想访问其它界面的话需要进行用户登录,在登录之前如果没有账号则需要进行注册操作。
注册界面如下,需要输入用户名、密码、收货地址、手机号才能注册成功。
5-1-1