package com.zcs.reggie.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zcs.reggie.common.R;
import com.zcs.reggie.domain.Category;
import com.zcs.reggie.domain.Dish;
import com.zcs.reggie.domain.DishFlavor;
import com.zcs.reggie.dto.DishDto;
import com.zcs.reggie.service.CategoryService;
import com.zcs.reggie.service.DishFlavorService;
import com.zcs.reggie.service.DishService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Description
* @Author 张春生
* @Date 2022-05-12 19:03
* 菜品管理
*/
@Slf4j
@RestController
@RequestMapping("/dish")
public class DishController {
@Autowired
private DishService dishService;
@Autowired
private DishFlavorService dishFlavorService;
@Autowired
private CategoryService categoryService;
/**
* 新增菜品
* @param dishDto
* @return
*/
@PostMapping
public R<String> save(@RequestBody DishDto dishDto){
log.info("dishDto:{}",dishDto);
dishService.saveWithFlavor(dishDto);
return R.success("新增菜品成功");
}
/**
* 菜品管理分页查询
* @param page
* @param pageSize
* @param name
* @return
*/
@GetMapping("/page")
public R<Page> page(int page, int pageSize,String name){
//分页构造器
Page<Dish> pageInfo = new Page<>(page, pageSize);
Page<DishDto> dishDtoPage = new Page<>();
//构建条件
LambdaQueryWrapper<Dish> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(name != null,Dish::getName,name);
//排序条件
wrapper.orderByDesc(Dish::getUpdateTime);
dishService.page(pageInfo,wrapper);
//对象拷贝
BeanUtils.copyProperties(pageInfo,dishDtoPage,"records");
List<Dish> records = pageInfo.getRecords();
List<DishDto> list = records.stream().map(item->{
DishDto dishDto = new DishDto();
//继续拷贝
BeanUtils.copyProperties(item, dishDto);
Long categoryId = item.getCategoryId();
//根据id查询分类对象
Category category = categoryService.getById(categoryId);
if (category != null) {
String categoryName = category.getName();
dishDto.setCategoryName(categoryName);
}
return dishDto;
}).collect(Collectors.toList());
dishDtoPage.setRecords(list);
return R.success(dishDtoPage);
}
/**
* 根据id查询菜品相关信息
* @param id
* @return
*/
@GetMapping("/{id}")
public R<DishDto> getDishDtoPage(@PathVariable Long id){
DishDto dishDto = dishService.getByIdWithFlavor(id);
return R.success(dishDto);
}
/**
* 修改菜品
* @param dishDto
* @return
*/
@PutMapping
public R<String> update(@RequestBody DishDto dishDto){
log.info("dishDto:{}",dishDto);
dishService.updateWithFlavor(dishDto);
return R.success("修改菜品成功");
}
/**
* 根据条件查询对应的菜品信息
* @param dish
* @return
*/
@GetMapping("list")
public R<List<DishDto>> list(Dish dish){
//构建查询跳进
LambdaQueryWrapper<Dish> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(dish.getCategoryId() != null,Dish::getCategoryId,dish.getCategoryId());
wrapper.eq(Dish::getStatus,1);//查询起售的菜品
wrapper.orderByAsc(Dish::getSort).orderByAsc(Dish ::getUpdateTime);
List<Dish> dishes = dishService.list(wrapper);
List<DishDto> dishDtoList = dishes.stream().map((item)->{
DishDto dishDto = new DishDto();
BeanUtils.copyProperties(item, dishDto);
//分类id
Long categoryId = item.getCategoryId();
Category category = categoryService.getById(categoryId);
if (category != null) {
String categoryName = category.getName();
dishDto.setCategoryName(categoryName);
}
//当前菜品id
Long dishId = item.getId();
LambdaQueryWrapper<DishFlavor> queryWrapper = new LambdaQueryWrapper<>();
//根据DishId查询
queryWrapper.eq(DishFlavor::getDishId,dishId);
List<DishFlavor> dishFlavors = dishFlavorService.list(queryWrapper);
dishDto.setFlavors(dishFlavors);
return dishDto;
}).collect(Collectors.toList());
return R.success(dishDtoList);
}
/**
* 修改菜品状态
* @param status
* @param ids
* @return
*/
@PostMapping("/status/{status}")
public R<String> updateStatus(@PathVariable int status,@RequestParam List<Long> ids){
log.info("菜品状态:{},菜品id{}",status,ids);
List<Dish> dishes;
dishes = ids.stream().map((item)->{
Dish dish = new Dish();
dish.setStatus(status);
dish.setId(item);
return dish;
}).collect(Collectors.toList());
dishService.updateBatchById(dishes);
return R.success("菜品状态修改成功");
}
/**
* 删除菜品相关信息
* @param ids
* @return
*/
@DeleteMapping
public R<String> deleteDishById(@RequestParam List<Long> ids){
log.info("删除菜品id");
dishService.deleteWithDish(ids);
return R.success("删除成功");
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
spring boot+elementUI前后端分离瑞吉外卖
共392个文件
png:86个
class:69个
java:69个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 2 下载量 110 浏览量
2022-06-29
12:35:11
上传
评论 4
收藏 44.24MB 7Z 举报
温馨提示
# 瑞吉外卖 ## 软件开发整体介绍 ### 软件开发流程 - 需求分析 :产品原型、需求分析 - 设计:产品文档、UI界面设计、概要设计、详细设计、数据库设计 - 编码: 项目代码、单元测试 - 测试: 测试用例、测试报告 - 上线运维:软件环境安装、部署 ### 角色分工 - 项目经理:对整个项目负责、任务分配、把控进度 - 产品经理:进行需求调研、输出调研文档、产品原型 - UI设计师:根据产品原型输出界面效果图 - 架构师:项目整体架构设计、技术选型等 - 开发工程师:代码实现 - 测试工程师:编写测试用例、输出测试报告 - 运维工程师:软件环境搭建、项目上线 ### 软件环境 - 开发环境:开发人员在开发阶段使用的环境、一般外部人员无法访问 - 测试环境:专门给测试人员使用的环境、一般外部人员无法访问 - 生产环境:也就是线上环境、正式对外提供服务的环境 ## 瑞吉外卖项目介绍 ### 项目介绍 > 本项目是专门为餐饮企业制定的一款产品、包括系统后台和移动端应用两个部分。 > > 其中系统管理后台只要提供给餐饮企业内部管理人员使用、可以对餐厅的菜品、套餐、
资源推荐
资源详情
资源评论
收起资源包目录
spring boot+elementUI前后端分离瑞吉外卖 (392个子文件)
DishController.class 11KB
AddressBook.class 11KB
SetmealController.class 10KB
OrdersServiceImpl.class 8KB
EmployeeController.class 8KB
Dish.class 8KB
Orders.class 8KB
AddressBookController.class 8KB
Setmeal.class 8KB
DishServiceImpl.class 7KB
SetmealDish.class 7KB
Employee.class 7KB
ShoppingCartController.class 7KB
CategoryController.class 6KB
SetmealServiceImpl.class 6KB
OrdersController.class 6KB
ShoppingCart.class 6KB
UserController.class 6KB
Category.class 6KB
DishFlavor.class 6KB
OrderDetail.class 5KB
R.class 4KB
User.class 4KB
CategoryServiceImpl.class 4KB
LoginCheckFilter.class 4KB
OrdersDto.class 4KB
CommonController.class 3KB
DishDto.class 3KB
JacksonObjectMapper.class 3KB
GlobalExceptionHandler.class 2KB
WebMvcConfig.class 2KB
SetmealDto.class 2KB
SMSUtils.class 2KB
MyMetaObjectHandler.class 2KB
ValidateCodeUtils.class 1KB
ReggieApplication.class 1KB
MybatisPlusConfig.class 1006B
SetmealDishServiceImpl.class 921B
DishFlavorServiceImpl.class 914B
EmployeeServiceImpl.class 908B
BaseContext.class 858B
ShoppingCartServiceImpl.class 734B
OrderDetailServiceImpl.class 727B
AddressBookServiceImpl.class 727B
UserServiceImpl.class 678B
DishService.class 651B
SetmealService.class 533B
OrderDetailController.class 502B
CustomException.class 418B
OrdersService.class 407B
ShoppingCartMapper.class 403B
AddressBookMapper.class 400B
OrderDetailMapper.class 400B
SetmealDishMapper.class 400B
DishFlavorMapper.class 397B
CategoryService.class 395B
CategoryMapper.class 391B
EmployeeMapper.class 391B
SetmealMapper.class 388B
OrdersMapper.class 385B
DishMapper.class 379B
UserMapper.class 379B
ShoppingCartService.class 333B
OrderDetailService.class 330B
SetmealDishService.class 330B
AddressBookService.class 330B
DishFlavorService.class 327B
EmployeeService.class 321B
UserService.class 309B
common.css 288KB
common.css 288KB
index.css 227KB
index.css 227KB
vant.min.css 141KB
vant.min.css 141KB
main.css 18KB
main.css 18KB
demo.css 9KB
demo.css 9KB
index.css 7KB
index.css 7KB
add-order.css 7KB
add-order.css 7KB
user.css 4KB
user.css 4KB
page.css 4KB
page.css 4KB
address.css 3KB
address.css 3KB
address-edit.css 3KB
address-edit.css 3KB
order.css 3KB
order.css 3KB
index.css 2KB
login.css 2KB
index.css 2KB
login.css 2KB
pay-success.css 2KB
pay-success.css 2KB
login.css 2KB
共 392 条
- 1
- 2
- 3
- 4
资源评论
- 小七妖妖2022-12-09这个资源总结的也太全面了吧,内容详实,对我帮助很大。
- m0_508421962023-02-20资源很受用,资源主总结的很全面,内容与描述一致,解决了我当下的问题。
扶不起来的小白菜
- 粉丝: 1
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 8bit逐次逼近型SAR ADC电路设计成品 入门时期的第三款sarADC,适合新手学习等 包括电路文件和详细设计文档 smic0.18工艺,单端结构,3.3V供电 整体采样率500k,可实现基
- 操作系统实验 ucorelab4内核线程管理
- 脉冲注入法,持续注入,启动低速运行过程中注入,电感法,ipd,力矩保持,无霍尔无感方案,媲美有霍尔效果 bldc控制器方案,无刷电机 提供源码,原理图
- Matlab Simulink#直驱永磁风电机组并网仿真模型 基于永磁直驱式风机并网仿真模型 采用背靠背双PWM变流器,先整流,再逆变 不仅实现电机侧的有功、无功功率的解耦控制和转速调节,而且能实
- 157389节奏盒子地狱模式第三阶段7.apk
- 操作系统实验ucore lab3
- DG储能选址定容模型matlab 程序采用改进粒子群算法,考虑时序性得到分布式和储能的选址定容模型,程序运行可靠 这段程序是一个改进的粒子群算法,主要用于解决电力系统中的优化问题 下面我将对程序进行详
- final_work_job1(1).sql
- 区块链与联邦学习结合:FedChain项目详细复现指南
- 西门子S7 和 S7 Plus 协议开发示例
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功