文末获取源码
开发语言: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
目录
一、前言介绍
本系统地描绘了整个餐饮管理系统的设计与实现,主要实现的功能有以下几点:首页、用户管理(管理员、员工)更多管理(菜谱管理、材料成本、座位信息、开台信息、点餐订单、结账管理、统计报表、菜品类别)系统管理等功能,其具有简单的接口,方便的应用,强大的互动,完全基于互联网的特点。
现代社会的网络和信息技术不断提高,人们的生活水平达到一个新的水平。点餐成为一种人们习以为常的生活方式,一个充分利用碎片化时间,简化点餐配送过程的程序,正是我们所需要的。这篇文章研究了基于springboot的餐饮管理系统的开发和实现,从需求分析、总体设计到具体实现,最终完成了整个餐饮管理系统。
二、系统功能
本餐饮管理系统主要包括两大功能模块,即管理员、员工功能模块。
(1)管理员模块:系统中的核心用户是管理员,管理员登录后,通过管理员来管理后台系统。主要功能有:用户管理(管理员、员工)更多管理(菜谱管理、材料成本、座位信息、开台信息、点餐订单、结账管理、统计报表、菜品类别)
(2)员工模块:菜谱管理、座位信息、开台信息、点餐订单、结账管理、统计报表
三、管理员功能模块
3.1用户管理页面
3.2材料成本管理页面
3.3座位信息管理页面
3.4统计报表管理页面
3.5菜品类别管理页面
四、员工功能模块
4.1菜谱管理页面
4.2开台信息管理页面
4.3点餐订单管理页面
4.4结账管理页面
五、部分核心代码
5.1用户管理的逻辑代码
@RestController
@RequestMapping("auth")
public class AuthController extends BaseController<Auth, AuthService> {
/**
* 服务对象
*/
@Autowired
public AuthController(AuthService service) {
setService(service);
}
}
5.2点餐订单的逻辑代码
@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.3开台信息的逻辑代码
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
@Transactional
public 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();
}