文末获取源码

开发语言:Java

使用框架:spring boot

前端技术:JavaScript、Vue.js 、css3

开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code

数据库:MySQL 5.7/8.0

数据库管理工具:phpstudy/Navicat

JDK版本:Java jdk8

Maven:apache-maven 3.8.1-bin

目录

一、前言介绍

二、系统需求分析

三、系统前台模块

3.1系统首页页面

3.2订餐资讯页面

3.3菜单页面

3.4菜品详情页面

3.5我的页面

3.6支付页面

四、管理员功能模块

4.1系统首页页面

4.2用户管理页面

4.3资讯管理页面

4.4菜品管理页面

4.5订单列表管理页面

4.6订单统计管理页面

五、部分核心代码

5.1订餐资讯的逻辑代码

5.2订餐资讯分类管理逻辑代码

5.3菜品管理的关键代码

5.4订单信息管理关键代码

5.5用户管理关键代码

5.6用户功能关键代码

5.7订单信息的关键代码


一、前言介绍

科技进步带来的生产力的发展,其本质上是生产效率的提高。在社会快速发展的今天,效率永远是衡量一款产品的重要标准。在生活中,我们常常遇到这样的问题:上班期间,由于中午休息的时间基本一致,在一座写字楼中就往往会出现这样的问题,即在中午的某个时间段内将会出现人流的高度集中,大家选择在同一时间去食堂或者楼下的餐厅吃饭。这无疑会大大降低人们对于这段时间的利用效率。这时,人们可能会采取一种方式来回避高峰期,那就是叫外卖点餐。传统的外卖方式就是打电话预定,然而,在这种方式中,顾客往往通过餐厅散发的传单来获取餐厅的相关信息,通过电话来传达自己的订单信息,餐厅方面通过电话接受订单后,一般通过手写来记录,最后通过口头确认才算完成一份订单的提交,之后就是订单的完成和食品的递交。显然,在传统外卖流程中,顾客通过传单来接收信息,所能获得的信息太少,而且印发传单成本高昂,无疑那些面对大众的中低档餐厅不会或者很少印发传单;其次通过电话来接收订单,效率很低,耗时至少5到10分钟;最后,口头确认存在出错的风险,无法保证订单的有效性。而点餐系统或称之为餐饮点餐系统,将完美的解决以上的所有问题。

二、系统需求分析

餐饮点餐系统需要满足的需求有以下几个:

1.信息获取方便,用户可在网页上快速浏览到新的信息

2.查看菜品详情,单独查看某一个菜品信息,获取好评等。

3.注册登录,餐饮需要吸引客户,即通过注册来提高用户的存留率。

4.历史记录,用户可以查看自己订餐信息以及其他操作。

5.修改用户信息,可以修改用户密码或者用户名等一些个性化操作。

6.管理员功能,管理员可以对用户或者点餐进行管理。

7.系统安全,操作简便,不过于复杂。

8.系统可以稳定运行,不存在卡顿等问题造成用户反感。

三、系统前台模块

3.1系统首页页面

3.2订餐资讯页面

3.3菜单页面

3.4菜品详情页面

3.5我的页面

3.6支付页面

四、管理员功能模块

4.1系统首页页面

4.2用户管理页面

4.3资讯管理页面

4.4菜品管理页面

4.5订单列表管理页面

4.6订单统计管理页面

五、部分核心代码

5.1订餐资讯的逻辑代码

 @RequestMapping("/get_obj")public Map<String, Object> obj(HttpServletRequest request) {Query select = service.select(service.readQuery(request), service.readConfig(request));List resultList = select.getResultList();if (resultList.size() > 0) {JSONObject jsonObject = new JSONObject();jsonObject.put("obj",resultList.get(0));return success(jsonObject);} else {return success(null);}}public Query select(Map<String,String> query,Map<String,String> config){StringBuffer sql = new StringBuffer("select ");sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");}if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");}if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);}log.info("[{}] - 查询操作,sql: {}",table,sql);return runEntitySql(sql.toString());}

5.2订餐资讯分类管理逻辑代码

 @RequestMapping("/get_list")public Map<String, Object> getList(HttpServletRequest request) {Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request));return success(map);}

5.3菜品管理的关键代码

 @PostMapping("/add")@Transactionalpublic Map<String, Object> add(HttpServletRequest request) throws IOException {service.insert(service.readBody(request.getReader()));return success(1);}@Transactionalpublic Map<String, Object> addMap(Map<String,Object> map){service.insert(map);return success(1);}public Map<String,Object> readBody(BufferedReader reader){BufferedReader br = null;StringBuilder sb = new StringBuilder("");try{br = reader;String str;while ((str = br.readLine()) != null){sb.append(str);}br.close();String json = sb.toString();return JSONObject.parseObject(json, Map.class);}catch (IOException e){e.printStackTrace();}finally{if (null != br){try{br.close();}catch (IOException e){e.printStackTrace();}}}return null;}public void insert(Map<String,Object> body){StringBuffer sql = new StringBuffer("INSERT INTO ");sql.append("`").append(table).append("`").append(" (");for (Map.Entry<String,Object> entry:body.entrySet()){sql.append("`"+humpToLine(entry.getKey())+"`").append(",");}sql.deleteCharAt(sql.length()-1);sql.append(") VALUES (");for (Map.Entry<String,Object> entry:body.entrySet()){Object value = entry.getValue();if (value instanceof String){sql.append("'").append(entry.getValue()).append("'").append(",");}else {sql.append(entry.getValue()).append(",");}}sql.deleteCharAt(sql.length() - 1);sql.append(")");log.info("[{}] - 插入操作:{}",table,sql);Query query = runCountSql(sql.toString());query.executeUpdate();}

5.4订单信息管理关键代码

@RequestMapping(value = {"/avg_group", "/avg"})public Map<String, Object> avg(HttpServletRequest request) {Query count = service.avg(service.readQuery(request), service.readConfig(request));return success(count.getResultList());}

5.5用户管理关键代码

@PostMapping("/add")@Transactionalpublic Map<String, Object> add(HttpServletRequest request) throws IOException {service.insert(service.readBody(request.getReader()));return success(1);}@Transactionalpublic Map<String, Object> addMap(Map<String,Object> map){service.insert(map);return success(1);}public Map<String,Object> readBody(BufferedReader reader){BufferedReader br = null;StringBuilder sb = new StringBuilder("");try{br = reader;String str;while ((str = br.readLine()) != null){sb.append(str);}br.close();String json = sb.toString();return JSONObject.parseObject(json, Map.class);}catch (IOException e){e.printStackTrace();}finally{if (null != br){try{br.close();}catch (IOException e){e.printStackTrace();}}}return null;}public void insert(Map<String,Object> body){StringBuffer sql = new StringBuffer("INSERT INTO ");sql.append("`").append(table).append("`").append(" (");for (Map.Entry<String,Object> entry:body.entrySet()){sql.append("`"+humpToLine(entry.getKey())+"`").append(",");}sql.deleteCharAt(sql.length()-1);sql.append(") VALUES (");for (Map.Entry<String,Object> entry:body.entrySet()){Object value = entry.getValue();if (value instanceof String){sql.append("'").append(entry.getValue()).append("'").append(",");}else {sql.append(entry.getValue()).append(",");}}sql.deleteCharAt(sql.length() - 1);sql.append(")");log.info("[{}] - 插入操作:{}",table,sql);Query query = runCountSql(sql.toString());query.executeUpdate();}

5.6用户功能关键代码

@RequestMapping("/get_obj")public Map<String, Object> obj(HttpServletRequest request) {Query select = service.select(service.readQuery(request), service.readConfig(request));List resultList = select.getResultList();if (resultList.size() > 0) {JSONObject jsonObject = new JSONObject();jsonObject.put("obj",resultList.get(0));return success(jsonObject);} else {return success(null);}}public Query select(Map<String,String> query,Map<String,String> config){StringBuffer sql = new StringBuffer("select ");sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");}if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");}if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);}log.info("[{}] - 查询操作,sql: {}",table,sql);return runEntitySql(sql.toString());}

5.7订单信息的关键代码

@RestController@RequestMapping("auth")public class AuthController extends BaseController<Auth, AuthService> {/*** 服务对象*/@Autowiredpublic AuthController(AuthService service) {setService(service);}}

SpringBoot+Vue实现前后端分离的餐饮点餐系统相关推荐

  1. SpringBoot+vue实现前后端分离的餐厅点餐系统

    文末获取源码 开发语言:Java 开发工具:IDEA /Eclipse 数据库:MYSQL5.7 应用服务:Tomcat7/Tomcat8 使用框架:springboot+vue JDK版本:jdk1 ...

  2. SpringBoot+Vue实现前后端分离的校园外卖配送系统

    文末获取源码 开发语言:Java 使用框架:spring boot 前端技术:JavaScript.Vue.js .css3 开发工具:IDEA/MyEclipse/Eclipse.Visual St ...

  3. SpringBoot+Vue实现前后端分离的教务评教系统

    文末获取源码 开发语言:Java 使用框架:spring boot 前端技术:JavaScript.Vue.js .css3 开发工具:IDEA/MyEclipse/Eclipse.Visual St ...

  4. SpringBoot+Vue实现前后端分离的在线考试报名系统

    文末获取源码 开发语言:Java 使用框架:spring boot 前端技术:JavaScript.Vue.js .css3 开发工具:IDEA/MyEclipse/Eclipse.Visual St ...

  5. 视频教程-springboot+Vue整合前后端分离权限后台管理系统-Java

    springboot+Vue整合前后端分离权限后台管理系统 拥有八年的Java项目开发经验,擅长Java.vue.SpringBoot.springCloud.spring.springmvc.myb ...

  6. 基于SSM+SpringBoot+Vue+ElementUI前后端分离的校园岗位招聘就业管理系统

    运行视频 基于SSM+SpringBoot+Vue+ElementUI前后端分离的校园岗位招聘就业管理系统 项目运行截图 学生管理 添加学生 学生信息 教师管理 教师信息 实习基地 公告信息 公司管理 ...

  7. shiro+php,一套基于SpringBoot+Vue+Shiro 前后端分离 开发的代码生成器

    一.前言 最近花了一个月时间完成了一套基于Spring Boot+Vue+Shiro前后端分离的代码生成器,目前项目代码已基本完成 止步传统CRUD,进阶代码优化: 该项目可根据数据库字段动态生成 c ...

  8. springboot+vue的前后端分离与合并方案

    pringboot和vue结合的方案网络上的主要有以下两种: 1. [不推荐]在html中直接使用script标签引入vue和一些常用的组件,这种方式和以前传统的开发是一样的,只是可以很爽的使用vue ...

  9. 基于springboot+vue的前后端分离商城系统

    springboot前后端分离商城 介绍 springboot前后端分离商城 本项目由本人根据教程实现的一个springboot项目,基本已实现项目,但是本人希望加入自己的小功能, 请期待下一次的更新 ...

最新文章

  1. R语言在ggplot中使用变量指定柱状图的名称实战
  2. OpenCV分配与释放图像空间
  3. 前端开发浏览器兼容问题
  4. Winform中设置ZedGraph的字体和间距不随图形的缩放而缩放
  5. 华为服务器麒麟系统,麒麟云服务器
  6. 团队项目:第二次冲刺站立会议08
  7. Silverlight4 多页打印实现
  8. 完全背包问题(模板)
  9. 相似度系列-6:单维度方法:Evaluating Coherence in Dialogue Systems using Entailment
  10. linux 创建一个数据库,Linux下手动创建一个数据库
  11. python将英文单词表示的数字转换成阿拉伯数字的代码
  12. MacOS系统tomcat修改端口到80(端口转发)
  13. 计算机学院毕业设计文化衫,超全毕业文化衫创意设计图案与素材整理!2017毕业班服设计图案!...
  14. 比较两个结构体是否相等
  15. 大型企业中业务中台建设思考
  16. 阿里云服务器的WebSocket压力测试报告
  17. CH9121以太网模块的TCP CLENT 和TCP服务端连接教程
  18. 阿里云服务器ECS安装Ubuntu18.04桌面图形环境
  19. java数字转汉语读法
  20. python执行sql查询脚本并填写到excel,执行SQL查询脚本

热门文章

  1. Artemis资源限制(17)
  2. Kvaser Android驱动程序已经在许多应用程序中得到了成功的应用
  3. passw、shadow、group文件详解
  4. parameterMap与parameterClass
  5. 里氏代换原则 (Liskov Substitution Principle, LSP)
  6. 相机光学(七)——光源
  7. 计算机网络课程实验4——编程实现路由算法(迪杰斯特拉算法)
  8. java 动态切换数据源_Java动态切换数据源(AOP)
  9. UE4中修改模型的中心点
  10. 【元胞自动机】基于元胞自动机模拟双通道人群疏散含Matlab源码