ssm+vue海鲜自助餐厅系统源码和论文

ssm+vue海鲜自助餐厅系统源码和论文068

 开发工具:idea 
 数据库mysql5.7+
 数据库链接工具:navcat,小海豚等
  技术:ssm

摘  要

网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代,所以对于信息的宣传和管理就很关键。因此海鲜餐厅信息的管理计算机化,系统化是必要的。设计开发海鲜自助餐厅系统不仅会节约人力和管理成本,还会安全保存庞大的数据量,对于海鲜餐厅信息的维护和检索也不需要花费很多时间,非常的便利。

海鲜自助餐厅系统是在MySQL中建立数据表保存信息,运用Vue框架和Java语言编写。并按照软件设计开发流程进行设计实现。系统具备友好性且功能完善。其实现的功能包括食物库存管理,海鲜展示管理,未预定餐桌管理,已预订餐桌管理,流水管理等功能。

海鲜自助餐厅系统在让海鲜餐厅信息规范化的同时,也能及时通过数据输入的有效性规则检测出错误数据,让数据的录入达到准确性的目的,进而提升海鲜自助餐厅系统提供的数据的可靠性,让系统数据的错误率降至最低。

关键词:海鲜自助餐厅系统;MySQL;Vue框架

package com.controller;import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.*;
import javax.servlet.http.HttpServletRequest;import com.entity.*;
import com.service.*;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
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.utils.PageUtils;
import com.utils.R;/*** 海鲜表* 后端接口* @author* @email* @date 2021-03-08
*/
@RestController
@Controller
@RequestMapping("/haixian")
public class HaixianController {private static final Logger logger = LoggerFactory.getLogger(HaixianController.class);@Autowiredprivate HaixianService haixianService;@Autowiredprivate KuchuenService kuchuenService;@Autowiredprivate LiushuiService liushuiService;@Autowiredprivate YudingcanzhuoService yudingcanzhuoService;@Autowiredprivate DingdanxiangqingService dingdanxiangqingService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params){logger.debug("Controller:"+this.getClass().getName()+",page方法");PageUtils page = haixianService.queryPage(params);return R.ok().put("data", page);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){logger.debug("Controller:"+this.getClass().getName()+",info方法");HaixianEntity haixian = haixianService.selectById(id);if(haixian!=null){return R.ok().put("data", haixian);}else {return R.error(511,"查不到数据");}}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody HaixianEntity haixian, HttpServletRequest request){logger.debug("Controller:"+this.getClass().getName()+",save");Wrapper<HaixianEntity> queryWrapper = new EntityWrapper<HaixianEntity>().eq("hx_types", haixian.getHxTypes());logger.info("sql语句:"+queryWrapper.getSqlSegment());HaixianEntity haixianEntity = haixianService.selectOne(queryWrapper);if("".equals(haixian.getImgPhoto()) || "null".equals(haixian.getImgPhoto())){haixian.setImgPhoto(null);}if(StringUtils.isNotBlank(haixian.getHaixianContent())){haixian.setHaixianContent(haixian.getHaixianContent().replace("<p>",""));haixian.setHaixianContent(haixian.getHaixianContent().replace("</p>",""));}if(haixianEntity==null){haixianService.insert(haixian);return R.ok();}else {return R.error(511,"表中有相同数据");}}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody HaixianEntity haixian, HttpServletRequest request){logger.debug("Controller:"+this.getClass().getName()+",update");//根据字段查询是否有相同数据Wrapper<HaixianEntity> queryWrapper = new EntityWrapper<HaixianEntity>().notIn("id",haixian.getId()).eq("hx_types", haixian.getHxTypes()).eq("money", haixian.getMoney()).eq("haixian_content", haixian.getHaixianContent());logger.info("sql语句:"+queryWrapper.getSqlSegment());HaixianEntity haixianEntity = haixianService.selectOne(queryWrapper);if("".equals(haixian.getImgPhoto()) || "null".equals(haixian.getImgPhoto())){haixian.setImgPhoto(null);}if(haixianEntity==null){haixianService.updateById(haixian);//根据id更新return R.ok();}else {return R.error(511,"表中有相同数据");}}/*** 生成订单*/@RequestMapping("/diancai")public R diancai(@RequestParam Map<String, Object> params, HttpServletRequest request){if(params.size() == 0){return R.error("请选择要购买的海鲜");}//获取系统当前时间的时间戳作为订单号long danhao = new Date().getTime();//new 一个订单详情表DingdanxiangqingEntity dingdanxiangqing = new DingdanxiangqingEntity();//new 一个流水表LiushuiEntity liushui = new LiushuiEntity();//循环前端传过来的keyfor (String id: params.keySet()) {//根据前端传来的key(id)查询数据HaixianEntity haixian = haixianService.selectOne(new EntityWrapper<HaixianEntity>().eq("hx_types",id));//判断查出来的数据是否为空if(haixian == null){//为空返回前台return R.error();}//判断前端传来的商品数量是否为空或者小于0if(StringUtils.isBlank((String)params.get(id)) || Integer.parseInt(String.valueOf(params.get(id))) <= 0){return R.error("您选择的商品数量不能小于0哦");}//根据前台传来的key(id)去库存表中查询数据KuchuenEntity kuchuenEntity = kuchuenService.selectById(id);//如果为空返回前台if(kuchuenEntity == null){return R.error("这件海鲜商品不存在于库存");}//把map中的值转为InteggerInteger zhi = Integer.parseInt(String.valueOf(kuchuenEntity.getId()));//根据当前登录人的id去已预约的餐桌信息表中查询数据YudingcanzhuoEntity yudingcanzhuo = yudingcanzhuoService.selectOne(new EntityWrapper().eq("yh_types", request.getSession().getAttribute("userId")));//如果为空就返回前端if(yudingcanzhuo == null){return R.error("请先预定餐桌后再预定菜品,以免餐桌不足");}//如果为空就返回前端if(yudingcanzhuo.getCzTypes() == null){return R.error("请先预定餐桌后再预定菜品,以免餐桌不足");}//判断库存中的海鲜数量是否大于用户购买的数量if(kuchuenEntity.getNumber() < Integer.parseInt(String.valueOf(params.get(String.valueOf(zhi))))){//库存小于是返回并提示return R.error(kuchuenEntity.getName()+" 库存只剩:"+kuchuenEntity.getNumber()+" 个,不足:"+ params.get(id)+" 个!!!");}//订单详情中添加进用户购买数量dingdanxiangqing.setNumber(zhi);//在订单详情表中存入生成的订单号dingdanxiangqing.setOdd(String.valueOf(danhao));//在订单详情表中存入海鲜信息dingdanxiangqing.setHxTypes(haixian.getHxTypes());//订单详情表中存入海鲜价格dingdanxiangqing.setMoney(haixian.getMoney());//新增订单详情信息dingdanxiangqingService.insert(dingdanxiangqing);//给流水表中的总价赋值为0liushui.setMaxMoney(0.0);//获取系统当前时间liushui.setCreateTime(new Date());//设置上面生成的订单号liushui.setOdd(String.valueOf(danhao));//在流水表存入中查出来的餐桌信息liushui.setCzTypes(yudingcanzhuo.getCzTypes());//在流水表存入当前登录用户的信息liushui.setYhTypes((Integer) request.getSession().getAttribute("userId"));//设置为未支付liushui.setSfTypes(2);//计算总价liushui.setMaxMoney(liushui.getMaxMoney()+(dingdanxiangqing.getMoney()*dingdanxiangqing.getNumber()));//库存数量减去用户购买数量int i = kuchuenEntity.getNumber() - zhi;//将库存数量更新kuchuenEntity.setNumber(i);//修改库存数量kuchuenService.updateById(kuchuenEntity);}//新增流水信息liushuiService.insert(liushui);return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){logger.debug("Controller:"+this.getClass().getName()+",delete");haixianService.deleteBatchIds(Arrays.asList(ids));return R.ok();}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/112036.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于PID优化和矢量控制装置的四旋翼无人机(MatlabSimulink实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

嬴图Ultipa | 一文了解关于图数据库的一点儿干货

本篇包括以下内容点&#xff1a; 数据库主要技术分类 图是什么&#xff1f; 图的模式 图数据库 VS.关系型数据库 图数据库VS.其他NOSQL的对比 并非所有的图数据库都一样&#xff01; 根据Gartner预测&#xff0c;“到2025年&#xff0c;使用图技术进行数据和分析创新…

C# 生成唯一ID

1.首先通过nuget安装yitter.idgenerator 下面的三行代码搞定

数据结构 day1

1>x.mind 2>间接定义结构体数组&#xff0c;进行4种方式的定义和初始化 3>定义结构体存储10辆车&#xff08;车的信息&#xff1a;品牌、单价、颜色&#xff09; 1.定义函数&#xff0c;实现循环输入 2.定义函数&#xff0c;实现排序 3.定义函数&#xff0c;计算红色车…

树莓派3b无屏幕登录

如果要无屏登录&#xff0c;烧写时最好设置&#xff0c;勾选WIFI &#xff0c;登录密码&#xff0c;和SSH 树莓派操作系统下载地址 树莓派资源下载 | 树莓派实验室 无屏幕无键盘登录&#xff1a;新版中可能要先SSH登录&#xff0c;然后才能在RASPI-CONFIG中打开串口控制台 登录…

【Axure原型分享】能统计中英文字数的多行输入框

今天和大家分享能统计中英文字数的多行输入框的原型模板&#xff0c;在输入框里输入内容后&#xff0c;能够动态根据输入框的内容&#xff0c;统计出字符数量&#xff0c;包括总字数、中文字数、英文字数、数字字数、其他标点符号的字数&#xff0c;具体效果可以观看下方视频或…

2023-08-29 LeetCode(带因子的二叉树)

2023-08-29每日一题 一、题目编号 823. 带因子的二叉树二、题目链接 点击跳转到题目位置 三、题目描述 给出一个含有不重复整数元素的数组 arr &#xff0c;每个整数 arr[i] 均大于 1。 用这些整数来构建二叉树&#xff0c;每个整数可以使用任意次数。其中&#xff1a;每…

postgresql-字符函数

postgresql-字符函数 字符串连接字符与编码字符串长度大小写转换子串查找与替换截断与填充字符串格式化MD5 值字符串拆分字符串反转 字符串连接 concat(str, …)函数用于连接字符串&#xff0c;并且忽略其中的 NULL 参数&#xff1b;concat_ws(sep, str, …) 函数使用指定分隔…

Python GUI应用程序开发之wxPython使用详解

概要 wxPython是一个强大的跨平台GUI工具包&#xff0c;它使用Python编程语言开发&#xff0c;提供了丰富的控件功能。如果你是一名Python开发者&#xff0c;而且希望创建一个功能齐全的桌面应用程序&#xff0c;那么wxPython是一个值得考虑的选择。 什么是wxPython wxPython…

执行jmeter端口不够用报错(Address not available)

执行jmeter端口不够用报错(Address not available) linux解决方案 // 增加本地端口范围 echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_range// 启用快速回收TIME_WAIT套接字 sudo sysctl -w net.ipv4.tcp_tw_recycle1// 启用套接字的重用 sudo sysctl -w net.ipv4.t…

IdentityServer密码长度超长会导致跳转到登录页

应用系统项目的安全要求越来越高&#xff0c;基本都是采取https等加密证书传输&#xff0c;无法使用https的&#xff0c;也是要求不能明文传输内容&#xff0c;因此做一些等保要求&#xff0c;密码需要加密后才能传输给服务端&#xff0c;所以前端会采取一些密码手段&#xff0…

单变量图的类型与直方图绘图基础

文章目录 单变量图的类型1.直方图&#xff08;histogram plot&#xff09;2.密度图&#xff08;density plot&#xff09;3.Q-Q 图&#xff08;Quantile- Quantile plot&#xff0c;又称分位图&#xff09;4.P-P 图&#xff08;Probability-Probability plot&#xff09;5.经验…

【力扣】216. 组合总和 III <回溯、回溯剪枝>

【力扣】216. 组合总和 III 找出所有相加之和为 n 的 k 个数的组合&#xff0c;且满足下列条件&#xff1a; 只使用数字 1 到 9&#xff0c;每个数字最多使用一次&#xff0c;返回所有可能的有效组合的列表 。该列表不能包含相同的组合两次&#xff0c;组合可以以任何顺序返回…

2024王道408数据结构P144 T17

2024王道408数据结构P144 T17 思考过程 先看题目&#xff0c;让我们判断两棵二叉树是否相似&#xff0c;相似指的是以下三个方面&#xff1a; T1和T2都是空的二叉树或T1和T2都只有一个结点T1的左子树和T2的左子树是相似的&#xff0c;且T1的右子树和T2的右子树是相似的。 题…

大数据项目实战(Hadoop集群搭建)

一&#xff0c;搭建大数据集群环境 1.2 Hadoop集群搭建 1.2.1 jdk安装 1.下载jdk (1)在根目录下创建三个子目录以备后用。具体如下&#xff1a; mkdir -p /export/data mkdir -p /export/software mkdir -p /export/servers (2)下载路径&#xff1a; 1、官网下载地址http…

APP UI自动化测试思路总结

首先想要说明一下&#xff0c;APP自动化测试可能很多公司不用&#xff0c;但也是大部分自动化测试工程师、高级测试工程师岗位招聘信息上要求的&#xff0c;所以为了更好的待遇&#xff0c;我们还是需要花时间去掌握的&#xff0c;毕竟谁也不会跟钱过不去。接下来&#xff0c;一…

聊聊工科必备软件MATLAB

1.MATLAB的由来 MATLAB&#xff08;Matrix Laboratory&#xff09;最初是由美国的MathWorks公司于1980年代初开发的一种数值计算和科学数据可视化的编程环境。 MATLAB的起源可以追溯到20世纪70年代&#xff0c;在斯坦福大学&#xff0c;科学家Cleve Moler在长期从事数值计算的研…

Java流式编程详细介绍

文章目录 1. 流式编程介绍2. 过滤2.1 filter2.2 distinct2.3 limit2.4 sorted2.5 skip 3. 映射3.1 map3.2 flatmap 4 查找4.1 allMatch4.2 anyMatch4.3 noneMatch4.4 findFirst4.5 findAny 5. 归约6. 收集6.1 counting6.2 maxBy,minBy6.3 summingInt、summingLong、summingDoub…

1+X智慧安防系统实施与运维技能等级证产教融合基地建设方案

一、系统概述 1X智慧安防系统实施与运维技能等级证产教融合体系统融合了产业需求、教育培训和技能认证&#xff0c;通过课程培训、实训基地和实习实训等方式培养学员的技能水平&#xff0c;并通过技能认证来评估其能力&#xff0c;以满足智慧安防行业对人才的需求&#xff0c;并…

iMX6ULL 库移植 | Libgpiod 库的交叉编译及使用指南(linux)

GPIO口的操作&#xff0c;是很常见的功能。传统的GPIO sysfs接口已被弃用。自Linux 4.8起&#xff0c;内核提供了全新的操作gpio的方式libgpiod&#xff08;C library and tools for interacting with the linux GPIO character device&#xff09;&#xff0c;当然也更高效&am…