基于javaweb的SpringBoot餐厅点餐系统(java+springboot+maven+html+thymeleaf+layui+echarts+mysql)

运行环境

Java≥8、MySQL≥5.7

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

221424160701

231424160701

241424160701

251424160701

261424160701

271424160701

281424160701

291424160701

301424160701

232024523108

基于javaweb的SpringBoot餐厅点餐系统(java+springboot+maven+html+thymeleaf+layui+echarts+mysql)

项目介绍

Springboot餐厅点餐系统分为前后台,前台顾客可以进行点餐,后台可以由经理、收银员、厨师、服务员等角色登录; 前台主要功能如下: 桌位选择、菜品选择、提交菜单等功能;

后台主要功能如下: 主页控制台 员工列表:员工查询、新增、编辑、删除; 会员管理:会员列表、会员类型列表; 菜谱管理:菜品列表、种类列表; 订单管理:订单列表; 销售管理:销售统计、销量统计、交易记录; 制菜上菜管理:制菜任务列表、上菜任务列表、桌位上菜情况列表; 桌位管理:桌位列表;

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 4.数据库:MySql 5.7/8.0版本均可; 5.是否Maven项目:是;

技术栈

后端:SpringBoot+Mybaits

前端:HTML+css+js+layui+Echarts

使用说明

项目运行: 1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中application.yml配置文件中的数据库配置改为自己的配置; 4. 控制台提示运行成功后再运行前端项目; 5. 运行项目,在浏览器中输入地址 后台登录地址:http://localhost:8181/restaurant/sysuser/login.html  前台点餐登录地址:http://localhost:8181/restaurant/guest/desklist.html  经理测试号  账号 18384623911 密码123456  收银员测试号 账号 18384623912 密码 123456  厨师测试号  账号 18384623913 密码 123456  服务员   账号 18384623914 密码 123456 

注意事项:

为防止项目运行后图片找不到,请将“images”文件夹中的“restaurant”文件夹放到D盘根目录。如果想放到其他盘,请修改application.yml配置文件中对应路径  

角色介绍:

功能介绍:

 前后台展示图例:

 订桌页面:

 菜品管理:

点餐管理: 

提交菜单列表:

 后台统计展示:

后台销售展示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 * 查询近几天的菜品销量排行top10数据接口
* @return
*/
@GetMapping("/gssByDays.do")
@ResponseBody
public Result<GoodsSalesChart> goodsSalesSortByDays(GoodsSalesChart goodsSalesChart){
//默认查询top12
goodsSalesChart.setNumber(12);
List<GoodsSalesChart> result = dataAnalysisService.findSalesSortByDays(goodsSalesChart);
return ResultUtil.success(result,new Long(result.size()));
}
/**
* 查询近几天的菜品销量排行词云数据接口
* @return
*/
@GetMapping("/gwcByDays.do")
@ResponseBody
public Result<GoodsSalesChart> goodsWordCloudBynDays(GoodsSalesChart goodsSalesChart){
//默认查询top12
goodsSalesChart.setNumber(20);
List<GoodsSalesChart> result = dataAnalysisService.findSalesSortByDays(goodsSalesChart);
return ResultUtil.success(result,new Long(result.size()));
}
/**
* 查询近几天的菜系销量数据
* @return
*/
@GetMapping("/gcsByDays.do")
@ResponseBody
public Result<GoodsCategorySalesChart> goodsCategorySalesByDays(GoodsCategorySalesChart gcsChart){
List<GoodsCategorySalesChart> result = dataAnalysisService.findGoodsCategorySalesByDays(gcsChart);
return ResultUtil.success(result,new Long(result.size()));
}

/**
* 查询近几天的营业情况数据
* @return
*/
@GetMapping("/ssByDays.do")
@ResponseBody
public Result<SalesStatisticsChart> salesStatisticsByDay(SalesStatisticsChart ssChart){
List<SalesStatisticsChart> result = dataAnalysisService.findSalesStatisticsByDays(ssChart);
return ResultUtil.success(result,new Long(result.size()));
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
 * 销量统计HTML页面
* @return
*/
@GetMapping("/salesVolume.html")
public String salesVolume(){
return "chart/salesVolume";
}

/**
* 销售统计HTML页面
* @return
*/
@GetMapping("/salesStatistics.html")
public String salesStatistics(){
return "/chart/salesStatistics";
}

/**
* 查询近几天的菜品销量排行top10数据接口
* @return
*/
@GetMapping("/gssByDays.do")
@ResponseBody
public Result<GoodsSalesChart> goodsSalesSortByDays(GoodsSalesChart goodsSalesChart){
//默认查询top12
goodsSalesChart.setNumber(12);
List<GoodsSalesChart> result = dataAnalysisService.findSalesSortByDays(goodsSalesChart);
return ResultUtil.success(result,new Long(result.size()));
}
/**
* 查询近几天的菜品销量排行词云数据接口
* @return
*/
@GetMapping("/gwcByDays.do")
@ResponseBody
public Result<GoodsSalesChart> goodsWordCloudBynDays(GoodsSalesChart goodsSalesChart){
//默认查询top12
goodsSalesChart.setNumber(20);
List<GoodsSalesChart> result = dataAnalysisService.findSalesSortByDays(goodsSalesChart);
return ResultUtil.success(result,new Long(result.size()));
}
/**
* 查询近几天的菜系销量数据
* @return
*/
@GetMapping("/gcsByDays.do")
@ResponseBody
public Result<GoodsCategorySalesChart> goodsCategorySalesByDays(GoodsCategorySalesChart gcsChart){
List<GoodsCategorySalesChart> result = dataAnalysisService.findGoodsCategorySalesByDays(gcsChart);
return ResultUtil.success(result,new Long(result.size()));
}

/**
* 查询近几天的营业情况数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
    @GetMapping("/mAddByDays.do")
@ResponseBody
public Result<MemberChart> memberAddByDays(MemberChart memberChart){
List<MemberChart> result = dataAnalysisService.findMemberAddByDays(memberChart);
return ResultUtil.success(result,new Long(result.size()));
}

/**
* 查询各类型会员数量
* @return
*/
@GetMapping("/mcRate.do")
@ResponseBody
public Result<MemberChart> memberCategoryRate(){
List<MemberChart> result = dataAnalysisService.findMemberCategoryRate();
return ResultUtil.success(result,new Long(result.size()));
}
/**
* 查询每天(8-24)点中每小时的顾客数量接口
* @return
*/
@GetMapping("/peopleByHour.do")
@ResponseBody
public Result<PeopleChart> peopleByHours(){
List<PeopleChart> result = dataAnalysisService.findPeopleByHours();
return ResultUtil.success(result,new Long(result.size()));
}
}



/**
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
        String orderCode = orderService.addOrder(order);
return ResultUtil.success(orderCode);
}

@GetMapping("/myOrder.do")
@ResponseBody
private Result<OrderDetail> myOrder(CustomPageInfo info,Order order){
OrderDetail orderDetail = new OrderDetail();
orderDetail.setOrder(order);
info.setT(orderDetail);
CustomPageInfo<OrderDetail> resultInfo = orderDetailService.findPage(info);
System.out.println(resultInfo.getList());
return ResultUtil.success(resultInfo.getList(),resultInfo.getTotal());
}

@GetMapping("/myOrder.html")
public String viewOrderDetail(@RequestParam("orderCode") String orderCode, Model model){
model.addAttribute("orderCode",orderCode);
return "/client/myOrder";
}

@PostMapping("/delGood.do")
@ResponseBody
public Result<OrderDetail> deleteByOrderDetailIds(@RequestParam("ids") String ids){
orderDetailService.deleteByIds(ids);
return ResultUtil.success();
}
}


@Controller
@RequestMapping("/sold")
public class SoldManageController {
@Autowired
private OrderService orderService;

/**
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46

@Controller
@RequestMapping("/member")
public class MemberController {
@Autowired
private MemberService memberService;
@Autowired
private MemberCategoryService memberCategoryService;
/**
* 用户列表html页面
* @param model
* @return
*/
@GetMapping("/list.html")
@RequiresPermissions("memberManage:view")
public String memberList(Model model){
model.addAttribute("memberCategoryList",memberCategoryService.findAll());
SysUser user = (SysUser) SecurityUtils.getSubject().getSession().getAttribute("user");
model.addAttribute("role",user.getRole());
return "member/list";
}

@GetMapping("/add.html")
@RequiresPermissions("memberManage:edit")
public String addMember(Model model){
model.addAttribute("memberCategoryList",memberCategoryService.findAll());
return "member/add";
}


@PostMapping("/add.do")
@RequiresPermissions("memberManage:edit")
@ResponseBody
public Result<Member> addMember(Member member,MemberCategory memberCategory){
member.setMemberCategory(memberCategory);
memberService.addMember(member);
return ResultUtil.success();
}

@GetMapping("/edit.html/{memberId}")
@RequiresPermissions("memberManage:edit")
public String editMember(@PathVariable("memberId") Long memberId, Model model){
Member member = new Member();
member.setMemberId(memberId);
Member resultMember = memberService.findMemberById(member);
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
private MemberCategoryService memberCategoryService;
/**
* 用户列表html页面
* @param model
* @return
*/
@GetMapping("/list.html")
@RequiresPermissions("memberManage:view")
public String memberList(Model model){
model.addAttribute("memberCategoryList",memberCategoryService.findAll());
SysUser user = (SysUser) SecurityUtils.getSubject().getSession().getAttribute("user");
model.addAttribute("role",user.getRole());
return "member/list";
}

@GetMapping("/add.html")
@RequiresPermissions("memberManage:edit")
public String addMember(Model model){
model.addAttribute("memberCategoryList",memberCategoryService.findAll());
return "member/add";
}


@PostMapping("/add.do")
@RequiresPermissions("memberManage:edit")
@ResponseBody
public Result<Member> addMember(Member member,MemberCategory memberCategory){
member.setMemberCategory(memberCategory);
memberService.addMember(member);
return ResultUtil.success();
}

@GetMapping("/edit.html/{memberId}")
@RequiresPermissions("memberManage:edit")
public String editMember(@PathVariable("memberId") Long memberId, Model model){
Member member = new Member();
member.setMemberId(memberId);
Member resultMember = memberService.findMemberById(member);
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
String birthday = sf.format(resultMember.getBirthday());
model.addAttribute("member",resultMember);
model.addAttribute("birthday",birthday);
model.addAttribute("memberCategoryList",memberCategoryService.findAll());
return "member/edit";
}

@PostMapping("/edit.do")
@RequiresPermissions("memberManage:edit")
@ResponseBody


项目链接:
https://javayms.github.io?id=361524190701201kr
https://javayms.pages.dev?id=361524190701201kr