package top.naccl.controller.admin;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.web.PageableDefault;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import top.naccl.annotation.OnlyAdmin;
import top.naccl.bean.Food;
import top.naccl.service.FoodService;
import top.naccl.service.TypeService;
import javax.validation.Valid;
/**
* @Description: 菜品管理
* @Author: Naccl
* @Date: 2020-05-17
*/
@Controller
@RequestMapping("/admin")
@OnlyAdmin
public class FoodController {
@Autowired
private FoodService foodService;
@Autowired
private TypeService typeService;
/**
* 菜品管理页面
*/
@GetMapping("/foods")
public String foods(@PageableDefault(size = 10, sort = {"id"}, direction = Sort.Direction.DESC) Pageable pageable, Model model) {
model.addAttribute("types", typeService.listType());
model.addAttribute("page", foodService.listFood(pageable));
return "admin/foods";
}
/**
* 按分类查询菜品
*/
@PostMapping("/foods/search")
public String search(@PageableDefault(size = 10, sort = {"id"}, direction = Sort.Direction.DESC) Pageable pageable,
@RequestParam Integer typeId, Model model) {
if (typeId != null && typeId != 0) {
model.addAttribute("page", foodService.listFood(pageable, typeId));
} else {
model.addAttribute("page", foodService.listFood(pageable));
}
return "admin/foods :: foodList";
}
/**
* 跳转菜品添加页面
*/
@GetMapping("/foods/input")
public String input(Model model) {
model.addAttribute("types", typeService.listType());
model.addAttribute("food", new Food());
return "admin/foods-input";
}
/**
* 跳转菜品修改页面
*/
@GetMapping("/foods/{id}/input")
public String edit(@PathVariable Integer id, Model model) {
model.addAttribute("types", typeService.listType());
model.addAttribute("food", foodService.getFood(id));
return "admin/foods-input";
}
/**
* POST提交 添加、修改菜品
*/
@PostMapping("/foods")
public String post(@Valid Food food, BindingResult bindingResult, RedirectAttributes redirectAttributes, Model model) {
if (food.getType().getId() == null) {
bindingResult.rejectValue("name", "nameError", "分类不能为空");
}
if (bindingResult.hasErrors()) {
model.addAttribute("types", typeService.listType());
return "admin/foods-input";
}
Food food1 = foodService.getFoodByName(food.getName());
if (food.getId() == null) {//添加
if (food1 != null) {//不能添加已存在的菜品名称
bindingResult.rejectValue("name", "nameError", "菜品已存在");
model.addAttribute("types", typeService.listType());
return "admin/foods-input";
}
Food f = foodService.saveFood(food);
if (f == null) {//没保存成功
redirectAttributes.addFlashAttribute("message", "添加失败");
} else {//保存成功
redirectAttributes.addFlashAttribute("message", "添加成功");
}
} else {//修改
if (food1 != null && food1.getId() != food.getId()) {//不能修改成其它已存在的菜品名称
bindingResult.rejectValue("name", "nameError", "菜品已存在");
model.addAttribute("types", typeService.listType());
return "admin/foods-input";
}
Food f = foodService.updateFood(food.getId(), food);
if (f == null) {//没保存成功
redirectAttributes.addFlashAttribute("message", "修改失败");
} else {//保存成功
redirectAttributes.addFlashAttribute("message", "修改成功");
}
}
return "redirect:/admin/foods";
}
/**
* 删除菜品
*/
@GetMapping("/foods/{id}/delete")
public String delete(@PathVariable Integer id, RedirectAttributes redirectAttributes) {
foodService.deleteFood(id);
redirectAttributes.addFlashAttribute("message", "删除成功");
return "redirect:/admin/foods";
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
JavaWeb大作业基于springboot+JPA的网络点餐系统源码+数据库.zip
共114个文件
jpg:42个
java:39个
html:21个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 121 浏览量
2023-08-21
14:39:49
上传
评论 1
收藏 321KB ZIP 举报
温馨提示
【资源介绍】 JavaWeb大作业基于springboot+JPA的网络点餐系统源码+数据库.zip 该项目是个人毕设项目,答辩评审分达到95分,代码都经过调试测试,确保可以运行!欢迎下载使用,可用于小白学习、进阶。 该资源主要针对计算机、通信、人工智能、自动化等相关专业的学生、老师或从业者下载使用,亦可作为期末课程设计、课程大作业、毕业设计等。 项目整体具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现不同的功能。 欢迎下载交流,互相学习,共同进步! JavaWeb大作业基于springboot+JPA的网络点餐系统源码+数据库.zipJavaWeb大作业基于springboot+JPA的网络点餐系统源码+数据库.zipJavaWeb大作业基于springboot+JPA的网络点餐系统源码+数据库.zipJavaWeb大作业基于springboot+JPA的网络点餐系统源码+数据库.zip
资源推荐
资源详情
资源评论
收起资源包目录
JavaWeb大作业基于springboot+JPA的网络点餐系统源码+数据库.zip (114个子文件)
me.css 9KB
github-badge.css 1KB
.gitattributes 29B
users-input.html 8KB
foods-input.html 8KB
index.html 8KB
foods.html 7KB
register.html 7KB
user-input.html 6KB
users.html 6KB
diningcar.html 5KB
types.html 5KB
index.html 5KB
_fragments.html 4KB
types-input.html 4KB
detail.html 4KB
login.html 4KB
_fragments.html 3KB
_fragments.html 3KB
orders.html 3KB
500.html 2KB
error.html 2KB
401.html 2KB
404.html 2KB
favicon.ico 9KB
FoodController.java 4KB
FoodServiceImpl.java 4KB
UserController.java 3KB
UserIndexController.java 3KB
TypeController.java 3KB
RegisterController.java 2KB
UserUpdateController.java 2KB
DiningCarServiceImpl.java 2KB
DiningCarController.java 2KB
LoginController.java 2KB
UserServiceImpl.java 2KB
TypeServiceImpl.java 2KB
MyBeanUtils.java 1KB
Food.java 1KB
AdminInterceptor.java 1KB
UserInterceptor.java 1KB
ControllerExceptionHandler.java 1KB
User.java 1KB
DiningCarRepository.java 1006B
FoodRepository.java 859B
Type.java 819B
OrderController.java 806B
IndexController.java 798B
WebConfig.java 728B
DetailController.java 702B
FoodService.java 658B
DiningCar.java 620B
LoginInterceptor.java 613B
DiningCarService.java 551B
UnauthorizedException.java 524B
NotFoundException.java 505B
UserService.java 446B
TypeService.java 438B
OnlyAdmin.java 310B
OnlyUser.java 309B
MealApplication.java 298B
UserRepository.java 296B
TypeRepository.java 219B
MealApplicationTests.java 199B
404.jpg 45KB
500.jpg 28KB
10.jpg 5KB
9.jpg 5KB
09.jpg 5KB
04.jpg 5KB
9.jpg 5KB
8.jpg 5KB
02.jpg 5KB
4.jpg 5KB
1.jpg 4KB
1.jpg 4KB
09.jpg 4KB
2.jpg 4KB
6.jpg 4KB
10.jpg 4KB
01.jpg 4KB
06.jpg 4KB
08.jpg 4KB
03.jpg 4KB
05.jpg 4KB
07.jpg 4KB
07.jpg 4KB
5.jpg 4KB
7.jpg 4KB
5.jpg 4KB
02.jpg 4KB
01.jpg 3KB
03.jpg 3KB
8.jpg 3KB
3.jpg 3KB
05.jpg 3KB
3.jpg 3KB
7.jpg 3KB
2.jpg 3KB
6.jpg 3KB
共 114 条
- 1
- 2
资源评论
onnx
- 粉丝: 1w+
- 资源: 5627
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C# 西门子S7 TCP协议客户端设计工程源码带注释,开源dll文件,包括打包完的安装包
- 电网行测冲刺讲义-学生版-纯图版
- 基于磁链锁相环控制的双向逆变器Simulink仿真,无需 电压采样进行锁相控制
- 工程管理:长沙理工大学2021级工程造价咨询综合实践指导-课程设计实施方案及细则
- 黑龙江省各市、县、区及街镇网页版SVG图
- json-c-0.17.tar.gz
- 前端全套面试题资料,包含js、css、vue等相关资料
- C#上位机 APP监控西门子S7-1200 C#全套源代码 1,C#开发上位机手机APP,自己写的程序可提供部分 2,通过VS2019开发安卓手机app 3,全套源代码,现场运行设备实测有效 4
- 综合能源耦合微网优化程序matlab 程序基于冷热电联供综合能源耦合模型,采用cchp,并且含有压缩空气储能,采用粒子群优化求解
- 2025电网行测基础讲义-学生版-纯图版
- chromedriver-win64_133.0.6939.0.zip
- chromedriver-win64_133.0.6941.0.zip
- FOC电机控制,一份基于国产风机量产程序,包含龙博格电机状态观测器,SVPWM,顺逆风启动,五段式与七段式调制等源码,完全可以移植到别的MCU平台 适合电机算法研究
- chromedriver-win64_133.0.6943.2.zip
- chromedriver-win64_133.0.6942.0.zip
- chromedriver-win64_133.0.6943.0.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功