私信或留言即免费送开题报告和任务书(可指定任意题目)
目录
一、摘要
随着我国经济的飞速发展,人们的生活速度明显加快,在餐厅吃饭排队的情况到处可见,近年来由于新兴IT行业的空前发展,它与传统餐饮行业也进行了新旧的结合,很多餐饮商户开始通过网络建设订餐系统,通过专门的网上订餐系统,一方面节省了用户订餐的时间,给用户带来方便,另一方面给商户带来了新的销售模式,同时也使订餐的管理规范化,系统化,给人们的生活带来了很大的便利。
本文重点阐述了网上订餐系统的开发过程,以实际运用为开发背景,基于Spring Boot框架,运用了JSP技术和MYSQL作为系统数据库进行开发,充分保证系统的安全性和稳定性。本系统界面良好,操作简单方便,通过系统概述、系统分析、系统设计、数据库设计、系统测试这几个部分,详细的说明了系统的开发过程,最后并对整个开发过程进行了总结,实现了用户通过网络进行订餐的重要功能。
本基于Spring Boot的网上订餐系统运行效果稳定,操作方便、快捷,界面友好,是一个功能全面、实用性好、安全性高,并具有良好的可扩展性、可维护性的订餐平台。
关键词:网上订餐,JSP技术,数据库,Spring Boot框架
二、相关技术
java、tomcat、mysql、spring、springBoot、mybatis、query、vue
三、系统设计
3.1 整体功能设计图
1、用户功能
用户进入本系统可查看系统信息,包括首页、菜品信息等,用户要想实现下单订餐操作,必须登录系统,未有账号的用户可进行注册,注册登录后主要功能模块包括个人中心、订单信息管理以及订单配送管理,用户用例图如图3-1所示。
2、管理员功能
管理员登录后可对系统进行全面管理,管理员主要实现的功能模块包括个人中心、会员管理、菜品分类管理、菜品信息管理、订单信息管理、订单配送管理、管理员管理以及系统管理,管理员用例图如图3-3所示。
3.2 功能具体细节设计
1、用户功能模块的实现
用户注册界面
用户进入本系统可查看系统信息,包括网站首页、菜品信息等,系统主界面展示如图5-3所示。
用户登录界面
用户在登录界面可输入用户名和密码,点击登录按钮进行登录系统,用户登录界面展示如图5-3所示。
菜品详情界面
用户可选择菜品查看菜品详情信息,登录后可进行下单操作,菜品详情界面展示如图5-4所示。
下单订餐界面
用户登录后可选择菜品进行下单订餐操作,下单订餐界面展示如图5-5所示。
订单信息界面
用户对个人订单可进行查看、支付等,订单信息界面展示如图5-6所示。
订单配送界面
用户能够查看个人订单配送信息,订单配送界面展示如图5-7所示。
2、管理员功能模块的实现
管理员登录界面
管理员要想进入后台对系统进行管理操作,必须登录系统后台,管理员登录界面展示如图5-8所示。
会员管理界面
管理员可查看、添加、修改和删除会员信息,会员管理界面展示如图5-9所示。
菜品信息管理界面
管理员可添加、修改和删除菜品信息,菜品信息管理界面展示如图5-10所示,添加菜品信息界面展示如图5-11所示。
更多功能联系获取。。。。
四、数据库设计
(1)管理员信息实体属性E-R图如图4-4所示:
(2)菜品分类信息实体属性E-R图如图4-5所示:
(3)菜品信息实体属性E-R图如图4-6所示:
(4)订单信息实体属性E-R图如图4-7所示:
(5)会员信息实体属性E-R图如图4-8所示:
五、核心代码
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id, HttpServletRequest request){
logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
ShigudengjiEntity shigudengji = shigudengjiService.selectById(id);
if(shigudengji !=null){
//entity转view
ShigudengjiView view = new ShigudengjiView();
BeanUtils.copyProperties( shigudengji , view );//把实体数据重构到view中
//级联表
YonghuEntity yonghu = yonghuService.selectById(shigudengji.getYonghuId());
if(yonghu != null){
BeanUtils.copyProperties( yonghu , view ,new String[]{ "id", "createTime", "insertTime", "updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段
view.setYonghuId(yonghu.getId());
}
//级联表
YuangongEntity yuangong = yuangongService.selectById(shigudengji.getYuangongId());
if(yuangong != null){
BeanUtils.copyProperties( yuangong , view ,new String[]{ "id", "createTime", "insertTime", "updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段
view.setYuangongId(yuangong.getId());
}
//修改对应字典表字段
dictionaryService.dictionaryConvert(view, request);
return R.ok().put("data", view);
}else {
return R.error(511,"查不到数据");
}
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody ShigudengjiEntity shigudengji, HttpServletRequest request){
logger.debug("save方法:,,Controller:{},,shigudengji:{}",this.getClass().getName(),shigudengji.toString());
String role = String.valueOf(request.getSession().getAttribute("role"));
if(StringUtil.isEmpty(role))
return R.error(511,"权限为空");
else if("员工".equals(role))
shigudengji.setYuangongId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
Wrapper<ShigudengjiEntity> queryWrapper = new EntityWrapper<ShigudengjiEntity>()
.eq("yonghu_id", shigudengji.getYonghuId())
.eq("yuangong_id", shigudengji.getYuangongId())
.eq("shigudengji_uuid_number", shigudengji.getShigudengjiUuidNumber())
.eq("shigudengji_name", shigudengji.getShigudengjiName())
.eq("shigudengji_types", shigudengji.getShigudengjiTypes())
.eq("zeren_types", shigudengji.getZerenTypes())
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
ShigudengjiEntity shigudengjiEntity = shigudengjiService.selectOne(queryWrapper);
if(shigudengjiEntity==null){
shigudengji.setInsertTime(new Date());
shigudengji.setCreateTime(new Date());
shigudengjiService.insert(shigudengji);
return R.ok();
}else {
return R.error(511,"表中有相同数据");
}
}
六、论文参考
七、源码获取
点赞、收藏、关注、评论啦。
联系即送开题报告和任务书,欢迎咨询
👇🏻获取联系方式在文章末尾👇🏻