基于java+ssm+vue的餐饮掌上设备点餐系统

项目介绍

随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了餐饮掌上设备点餐系统的开发全过程。通过分析餐饮掌上设备点餐系统管理的不足,创建了一个计算机管理餐饮掌上设备点餐系统的方案。文章介绍了餐饮掌上设备点餐系统的系统分析部分,包括可行性分析等,系统设计部分主要介绍了系统功能设计和数据库设计。

本餐饮掌上设备点餐系统有管理员,用户,餐饮店,员工四个角色。管理员可以管理员工,菜系,餐桌,菜品,订单,加盟申请等信息。用户可以查看并且下单,员工可以查看用户的下单信息,餐饮店可以管理相关的菜品和下单信息,并且可以申请加盟等操作。因而具有一定的实用性。

本站后台采用Java的SSM框架进行后台管理开发,前端采用VUE框架,可以在浏览器上登录进行后台数据方面的管理,MySQL作为本地数据库,用到了微信开发者工具,充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得餐饮掌上设备点餐系统管理工作系统化、规范化。

基于java+ssm+vue的餐饮掌上设备点餐系统_第1张图片

开发环境

编程语言:Java
数据库 :Mysql
系统架构:B/S
后端框架:SSM
编译工具:idea或者eclipse,jdk1.8,maven
支持定做:java/php/python/android/小程序ue/爬虫/c#/asp.net

系统实现

5.1 管理员模块的实现
5.1.1 菜品信息管理
管理员可以查询,修改,删除餐饮店发布的菜品信息。具体界面的展示如图5.1所示。
基于java+ssm+vue的餐饮掌上设备点餐系统_第2张图片

图5.1 菜品信息界面

5.1.2 用户信息管理
管理员可以对用户进行查询修改,删除操作。具体界面如图5.2所示。
基于java+ssm+vue的餐饮掌上设备点餐系统_第3张图片

图5.3 用户信息管理界面

5.1.3 我的订单管理
系统管理员可以对我的订单进行查询,修改,删除操作。界面如下图所示:
基于java+ssm+vue的餐饮掌上设备点餐系统_第4张图片

图5.4 我的订单管理界面

5.1.4 菜系管理
系统管理员可以对菜系进行添加修改删除操作。界面如下图所示:
基于java+ssm+vue的餐饮掌上设备点餐系统_第5张图片

图5.4 菜系管理界面

5.2 用户模块的实现
5.2.1 菜品信息
系统首页上面有导航,可以餐饮店,菜品信息,个人中心等导航,不管是查看餐饮店还是菜品信息都可以查到具体的菜品信息,用户只有登录后才可以进行下单操作。界面如下图所示:
基于java+ssm+vue的餐饮掌上设备点餐系统_第6张图片

图5.5 菜品信息

5.2.2 我的订单
用户登录后,在我的后台里面可以看到自己的订单,可以对订单进行支付操作。界面如下图所示:

基于java+ssm+vue的餐饮掌上设备点餐系统_第7张图片

图5.6 我的订单

5.3 员工模块的实现
5.3.1 餐桌状态管理
员工登录后可以在餐桌状态管理里面对餐桌状态信息进行添加,修改,删除,查询操作。界面如下图所示:
基于java+ssm+vue的餐饮掌上设备点餐系统_第8张图片

图5.7 餐桌状态界面

5.4 餐饮店模块的实现
5.4.1 菜品信息管理
餐饮店可以对菜品信息进行添加,修改,删除,查询操作。界面如下图所示:
基于java+ssm+vue的餐饮掌上设备点餐系统_第9张图片

图5.8 菜品信息管理界面

5.4.2 销售统计管理
餐饮店可以对销售进行统计操作,也可以查看统计报表。界面如下图所示:
基于java+ssm+vue的餐饮掌上设备点餐系统_第10张图片

图5.9 统计报表界面

5.4.3 员工管理
餐饮店可以对员工信息进行添加,修改,删除,查询操作。界面如下图所示:
基于java+ssm+vue的餐饮掌上设备点餐系统_第11张图片

图5.10 员工管理界面

核心代码


```java
package com.controller;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;

import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;

import com.entity.CaipinxinxiEntity;
import com.entity.view.CaipinxinxiView;

import com.service.CaipinxinxiService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;


/**
 * 菜品信息
 * 后端接口
 * @author 
 * @email 
 * @date 
 */
@RestController
@RequestMapping("/caipinxinxi")
public class CaipinxinxiController {
    @Autowired
    private CaipinxinxiService caipinxinxiService;
    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,CaipinxinxiEntity caipinxinxi, 
		HttpServletRequest request){

		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("canyindian")) {
			caipinxinxi.setCanyindianzhanghao((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper<CaipinxinxiEntity> ew = new EntityWrapper<CaipinxinxiEntity>();
		PageUtils page = caipinxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, caipinxinxi), params), params));
        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
	@IgnoreAuth
    @RequestMapping("st")
    public R list(@RequestParam Map<String, Object> params,CaipinxinxiEntity caipinxinxi, HttpServletRequest request){
        EntityWrapper<CaipinxinxiEntity> ew = new EntityWrapper<CaipinxinxiEntity>();
		PageUtils page = caipinxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, caipinxinxi), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("sts")
    public R list( CaipinxinxiEntity caipinxinxi){
       	EntityWrapper<CaipinxinxiEntity> ew = new EntityWrapper<CaipinxinxiEntity>();
      	ew.allEq(MPUtil.allEQMapPre( caipinxinxi, "caipinxinxi")); 
        return R.ok().put("data", caipinxinxiService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(CaipinxinxiEntity caipinxinxi){
        EntityWrapper< CaipinxinxiEntity> ew = new EntityWrapper< CaipinxinxiEntity>();
 		ew.allEq(MPUtil.allEQMapPre( caipinxinxi, "caipinxinxi")); 
		CaipinxinxiView caipinxinxiView =  caipinxinxiService.selectView(ew);
		return R.ok("查询菜品信息成功").put("data", caipinxinxiView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        CaipinxinxiEntity caipinxinxi = caipinxinxiService.selectById(id);
        return R.ok().put("data", caipinxinxi);
    }

    /**
     * 前端详情
     */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        CaipinxinxiEntity caipinxinxi = caipinxinxiService.selectById(id);
        return R.ok().put("data", caipinxinxi);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("ve")
    public R save(@RequestBody CaipinxinxiEntity caipinxinxi, HttpServletRequest request){
    	caipinxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(caipinxinxi);

        caipinxinxiService.insert(caipinxinxi);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody CaipinxinxiEntity caipinxinxi, HttpServletRequest request){
    	caipinxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(caipinxinxi);

        caipinxinxiService.insert(caipinxinxi);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody CaipinxinxiEntity caipinxinxi, HttpServletRequest request){
        //ValidatorUtils.validateEntity(caipinxinxi);
        caipinxinxiService.updateById(caipinxinxi);//全部更新
        return R.ok();
    }
    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        caipinxinxiService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    
    /**
     * 提醒接口
     */
	@RequestMapping("/remind/{columnName}/{type}")
	public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, 
						 @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
		map.put("column", columnName);
		map.put("type", type);
		
		if(type.equals("2")) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Calendar c = Calendar.getInstance();
			Date remindStartDate = null;
			Date remindEndDate = null;
			if(map.get("remindstart")!=null) {
				Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
				c.setTime(new Date()); 
				c.add(Calendar.DAY_OF_MONTH,remindStart);
				remindStartDate = c.getTime();
				map.put("remindstart", sdf.format(remindStartDate));
			}
			if(map.get("remindend")!=null) {
				Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
				c.setTime(new Date());
				c.add(Calendar.DAY_OF_MONTH,remindEnd);
				remindEndDate = c.getTime();
				map.put("remindend", sdf.format(remindEndDate));
			}
		}
		
		Wrapper<CaipinxinxiEntity> wrapper = new EntityWrapper<CaipinxinxiEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}

		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("canyindian")) {
			wrapper.eq("canyindianzhanghao", (String)request.getSession().getAttribute("username"));
		}

		int count = caipinxinxiService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	


}

 
## 论文参考
![在这里插入图片描述](https://img-blog.csdnimg.cn/5544e39489a64717845d8449ca047a1d.png)

目录
1系统概述	1
1.1 研究背景	1
1.2研究目的	1
1.3系统设计思想	1
2相关技术	2
2.1 MYSQL数据库	2
2.2 VUE框架简介	3
2.3 SSM框架简介	3
3系统分析	5
3.1可行性分析	5
3.1.1技术可行性	5
3.1.2经济可行性	5
3.1.3操作可行性	6
3.2系统性能分析	6
3.2.1 系统安全性	6
3.2.2 数据完整性	6
3.3系统界面分析	6
3.4系统流程和逻辑	8
4系统概要设计	9
4.1概述	9
4.2系统结构	10
4.3.数据库设计	10
4.3.1数据库实体	10
4.3.2数据库设计表	15
5系统详细实现	19
5.1 管理员模块的实现	19
5.1.1 菜品信息管理	19
5.1.2 用户信息管理	20
5.1.3 我的订单管理	20
5.1.4 菜系管理	21
5.2 用户模块的实现	22
5.2.1 菜品信息	22
5.2.2 我的订单	22
5.3 员工模块的实现	23
5.3.1 餐桌状态管理	23
5.4 餐饮店模块的实现	24
5.4.1 菜品信息管理	24
5.4.2 销售统计管理	24
5.4.3 员工管理	25
6系统测试	26
6.1概念和意义	26
6.2特性	26
6.3重要性	27
6.4测试方法	27
6.5 功能测试	28
6.6可用性测试	28
6.7性能测试	28
6.8测试分析	29
6.9测试结果分析	29
结论	29
致谢语	30
参考文献	30

你可能感兴趣的:(java项目,java,ssm,vue,mysql)