项目介绍
网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代,所以对于信息的宣传和管理就很关键。因此海鲜餐厅信息的管理计算机化,系统化是必要的。设计开发海鲜自助餐厅系统不仅会节约人力和管理成本,还会安全保存庞大的数据量,对于海鲜餐厅信息的维护和检索也不需要花费很多时间,非常的便利。
海鲜自助餐厅系统是在MySQL中建立数据表保存信息,运用Vue框架和Java语言编写。并按照软件设计开发流程进行设计实现。系统具备友好性且功能完善。其实现的功能包括食物库存管理,海鲜展示管理,未预定餐桌管理,已预订餐桌管理,流水管理等功能。
海鲜自助餐厅系统在让海鲜餐厅信息规范化的同时,也能及时通过数据输入的有效性规则检测出错误数据,让数据的录入达到准确性的目的,进而提升海鲜自助餐厅系统提供的数据的可靠性,让系统数据的错误率降至最低。
4.2功能结构设计
前面所做的功能分析,只是本系统的一个大概功能,这部分需要在此基础上进行各个模块的详细设计。
设计的管理员的详细功能见下图,管理员登录进入本人后台之后,管理食物库存,海鲜信息,管理预订和未预定餐桌,管理订单流水。
设计的用户的详细功能见下图,用户预订餐桌,对海鲜进行点餐,查看订单记录。
开发环境
编程语言:Java
数据库 :Mysql
系统架构:B/S
后端框架:SSM
编译工具:idea或者eclipse,jdk1.8,maven
支持定做:java/php/python/android/小程序ue/爬虫/c#/asp.net
系统实现
5 系统实现
在此部分内容中,主要通过系统功能的运行效果图展示前面设计的最终结果。系统实现对编制人员的技术能力有较高要求,因为需要他们使用编程的方式去实现系统设计的方案。
5.1 管理员功能实现
5.1.1 食物库存管理
管理员权限中的食物库存管理,其运行效果见下图。管理员查看各种海鲜的库存数量,可以根据海鲜名称查询海鲜库存,能够修改海鲜库存,删除海鲜库存信息。
5.1.2 海鲜展示管理
管理员权限中的海鲜展示管理,其运行效果见下图。管理员新增海鲜信息,可以修改海鲜名称,海鲜图片,海鲜单价等信息,可以删除海鲜信息。
5.1.3 未预定餐桌管理
管理员权限中的未预定餐桌管理,其运行效果见下图。管理员根据餐桌名称查询未预定餐桌信息,可以对未预定餐桌信息进行修改,删除。
5.1.4 流水管理
管理员权限中的流水管理,其运行效果见下图。管理员查询订单流水信息,设置用户已支付的订单为已支付状态。
5.2 用户功能实现
5.2.1 海鲜点餐
用户权限中的海鲜点餐,其运行效果见下图。用户在已经预订餐桌的情况下,在本页面对需要的海鲜登记点餐数量,最后提交点餐订单即可。
5.2.2 未预定餐桌
用户权限中的未预定餐桌,其运行效果见下图。用户选择未预定状态的餐桌进行预订。
5.2.3 已预订餐桌
用户权限中的已预订餐桌,其运行效果见下图。用户可以查看已预订餐桌信息,可以取消已经预订的餐桌。
5.2.4 订单记录
用户权限中的订单记录,其运行效果见下图。用户查看在该餐厅消费的订单明细。
核心代码
package com.controller;
import java.text.SimpleDateFormat;
import java.util.*;
import javax.servlet.http.HttpServletRequest;
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.entity.DingdanxiangqingEntity;
import com.service.DingdanxiangqingService;
import com.utils.PageUtils;
import com.utils.R;
/**
* 订单详情
* 后端接口
*/
@RestController
@Controller
@RequestMapping("/dingdanxiangqing")
public class DingdanxiangqingController {
private static final Logger logger = LoggerFactory.getLogger(DingdanxiangqingController.class);
@Autowired
private DingdanxiangqingService dingdanxiangqingService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params){
logger.debug("Controller:"+this.getClass().getName()+",page方法");
PageUtils page = dingdanxiangqingService.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方法");
DingdanxiangqingEntity dingdanxiangqing = dingdanxiangqingService.selectById(id);
if(dingdanxiangqing!=null){
return R.ok().put("data", dingdanxiangqing);
}else {
return R.error(511,"查不到数据");
}
}
/**
* 后端保存
*/
@RequestMapping("ve")
public R save(@RequestBody DingdanxiangqingEntity dingdanxiangqing, HttpServletRequest request){
logger.debug("Controller:"+this.getClass().getName()+",save");
Wrapper<DingdanxiangqingEntity> queryWrapper = new EntityWrapper<DingdanxiangqingEntity>()
.eq("odd", dingdanxiangqing.getOdd())
.eq("hx_types", dingdanxiangqing.getHxTypes())
.eq("number", dingdanxiangqing.getNumber())
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
DingdanxiangqingEntity dingdanxiangqingEntity = dingdanxiangqingService.selectOne(queryWrapper);
if(dingdanxiangqingEntity==null){
dingdanxiangqingService.insert(dingdanxiangqing);
return R.ok();
}else {
return R.error(511,"表中有相同数据");
}
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody DingdanxiangqingEntity dingdanxiangqing, HttpServletRequest request){
logger.debug("Controller:"+this.getClass().getName()+",update");
//根据字段查询是否有相同数据
Wrapper<DingdanxiangqingEntity> queryWrapper = new EntityWrapper<DingdanxiangqingEntity>()
.notIn("id",dingdanxiangqing.getId())
.eq("odd", dingdanxiangqing.getOdd())
.eq("hx_types", dingdanxiangqing.getHxTypes())
.eq("number", dingdanxiangqing.getNumber())
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
DingdanxiangqingEntity dingdanxiangqingEntity = dingdanxiangqingService.selectOne(queryWrapper);
if(dingdanxiangqingEntity==null){
dingdanxiangqingService.updateById(dingdanxiangqing);//根据id更新
return R.ok();
}else {
return R.error(511,"表中有相同数据");
}
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
logger.debug("Controller:"+this.getClass().getName()+",delete");
dingdanxiangqingService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
论文参考
目 录
1 绪论 1
1.1 选题背景 1
1.2 选题意义 1
1.3 研究内容 2
2 系统开发技术 3
2.1 Java语言 3
2.2 SSM框架 3
2.3 MYSQL数据库 4
2.4 Vue框架 4
3 系统分析 5
3.1可行性研究 5
3.1.1经济可行性 5
3.1.2时间可行性 5
3.1.3操作可行性 5
3.2系统性能分析 6
3.2.1系统易用性 6
3.2.2系统健壮性 6
3.2.3系统安全性 6
3.3 系统流程分析 6
3.4系统功能分析 9
4 系统设计 12
4.1系统目标 12
4.2功能结构设计 13
4.3数据库设计 14
4.3.1数据库E-R图 14
4.3.2 数据库表结构 17
5 系统实现 20
5.1 管理员功能实现 20
5.1.1 食物库存管理 20
5.1.2 海鲜展示管理 20
5.1.3 未预定餐桌管理 21
5.1.4 流水管理 21
5.2 用户功能实现 22
5.2.1 海鲜点餐 22
5.2.2 未预定餐桌 22
5.2.3 已预订餐桌 23
5.2.4 订单记录 23
6系统测试 25
6.1 系统测试的类型 25
6.2 功能测试 26
6.3 可用性测试 26
6.4 测试结果分析 26
结 论 27
参考文献 29
致 谢 30