package com.reggie.reggie_test.Controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.reggie.reggie_test.Common.R;
import com.reggie.reggie_test.Dto.DishDto;
import com.reggie.reggie_test.Entity.Category;
import com.reggie.reggie_test.Entity.Dish;
import com.reggie.reggie_test.Entity.DishFlavor;
import com.reggie.reggie_test.Service.CategoryService;
import com.reggie.reggie_test.Service.DishFlavorService;
import com.reggie.reggie_test.Service.DishService;
import io.swagger.annotations.Api;
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.List;
import java.util.stream.Collectors;
/**
* 菜品管理
*/
@RestController
@RequestMapping("/dish")
@Slf4j
public class DishController {
@Autowired
private DishService dishService;
@Autowired
private DishFlavorService dishFlavorService;
@Autowired
private CategoryService categoryService;
/**
* 新增菜品
*/
@PostMapping
public R<String> save(@RequestBody DishDto dishDto) {
log.info(dishDto.toString());
dishService.saveWithFlavor(dishDto);
return R.success("新增菜品成功");
}
/**
* 菜品信息分页查询
*/
@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> queryWrapper = new LambdaQueryWrapper<>();
//添加过滤条件
queryWrapper.like(name != null, Dish::getName, name);
//添加排序条件
queryWrapper.orderByDesc(Dish::getUpdateTime);
//执行分页查询
dishService.page(pageInfo, queryWrapper);
//对象拷贝
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
//根据id查询分类对象
Category category = categoryService.getById(categoryId);
if (category != null) {
String categoryName = category.getName();
dishDto.setCategortName(categoryName);
}
return dishDto;
}).collect(Collectors.toList());
dishDtoPage.setRecords(list);
return R.success(dishDtoPage);
}
/**
* 根据id查询菜品信息和对应的口味信息
*/
@GetMapping("/{id}")
public R<DishDto> get(@PathVariable Long id) {
DishDto dishDto = dishService.getByIdWithFlavor(id);
return R.success(dishDto);
}
/**
* 修改菜品
*/
@PutMapping
public R<String> update(@RequestBody DishDto dishDto) {
log.info(dishDto.toString());
dishService.updateWithFlavor(dishDto);
return R.success("修改菜品成功");
}
/**
* 根据条件查询对应的菜品数据
*/
@GetMapping("/list")
public R<List<DishDto>> list(Dish dish) {
//构造查询条件
LambdaQueryWrapper<Dish> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(dish.getCategoryId() != null, Dish::getCategoryId, dish.getCategoryId());
//查询状态为起售的菜品
queryWrapper.eq(Dish::getStatus, 1);
//添加排序条件
queryWrapper.orderByAsc(Dish::getSort).orderByDesc(Dish::getUpdateTime);
List<Dish> list = dishService.list(queryWrapper);
List<DishDto> dishDtoList = list.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.setCategortName(categoryName);
}
//获取当前菜品id
Long dishId = item.getId();
LambdaQueryWrapper<DishFlavor> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(DishFlavor::getDishId, dishId);
List<DishFlavor> dishFlavorList = dishFlavorService.list(lambdaQueryWrapper);
dishDto.setFlavors(dishFlavorList);
return dishDto;
}).collect(Collectors.toList());
return R.success(dishDtoList);
}
/**
* 菜品启售停售
*/
// @PostMapping("/status/{status}")
// public R<String> status(@PathVariable("status") Integer status, Long ids) {
// log.info("status:", status);
// log.info("ids:", ids);
// Dish dish = dishService.getById(ids);
// if (dish != null) {
// dish.setStatus(status);
// dishService.updateById(dish);
// return R.success("开始启售");
// }
// return R.error("售卖状态设置异常");
// }
/**
* 批量菜品启售停售
*/
@PostMapping("/status/{status}")
public R<String> status(@PathVariable("status") Integer status, @RequestParam List<Long> ids) {
LambdaQueryWrapper<Dish> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(ids != null, Dish::getId, ids);
List<Dish> list = dishService.list(queryWrapper);
for (Dish dish : list) {
if (dish != null) {
dish.setStatus(status);
dishService.updateById(dish);
}
}
return R.success("售卖状态修改成功");
}
/**
* 批量删除
*/
@DeleteMapping
public R<String> delete(@RequestParam("ids") List<Long> ids) {
dishService.deleteByids(ids);
LambdaQueryWrapper<DishFlavor> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(DishFlavor::getDishId, ids);
dishFlavorService.remove(queryWrapper);
return R.success("菜品删除成功");
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
基于java的瑞吉外卖项目源码.zip
共194个文件
java:69个
png:43个
html:22个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 66 浏览量
2024-05-14
11:17:51
上传
评论
收藏 29.77MB ZIP 举报
温馨提示
基于java的瑞吉外卖项目源码.zip基于java的瑞吉外卖项目源码.zip基于java的瑞吉外卖项目源码.zip基于java的瑞吉外卖项目源码.zip基于java的瑞吉外卖项目源码.zip基于java的瑞吉外卖项目源码.zip基于java的瑞吉外卖项目源码.zip基于java的瑞吉外卖项目源码.zip基于java的瑞吉外卖项目源码.zip基于java的瑞吉外卖项目源码.zip基于java的瑞吉外卖项目源码.zip基于java的瑞吉外卖项目源码.zip
资源推荐
资源详情
资源评论
收起资源包目录
基于java的瑞吉外卖项目源码.zip (194个子文件)
common.css 288KB
index.css 227KB
vant.min.css 141KB
main.css 18KB
demo.css 9KB
index.css 7KB
add-order.css 7KB
user.css 4KB
page.css 4KB
address.css 3KB
address-edit.css 3KB
order.css 3KB
login.css 2KB
index.css 2KB
pay-success.css 2KB
login.css 2KB
no-wify.css 1KB
iconfont.css 776B
add.html 24KB
index.html 24KB
add.html 18KB
demo_index.html 13KB
list.html 10KB
list.html 10KB
add-order.html 9KB
list.html 9KB
list.html 9KB
user.html 8KB
address-edit.html 8KB
address.html 7KB
index.html 7KB
add.html 7KB
order.html 7KB
list.html 6KB
login.html 4KB
login.html 4KB
pay-success.html 3KB
no-wify.html 2KB
upload.html 2KB
index.html 108B
favico.ico 5KB
favicon.ico 4KB
DishController.java 6KB
SetmealController.java 5KB
EmployeeController.java 5KB
OrdersServiceImpl.java 4KB
SetmealServiceImpl.java 4KB
DishServiceImpl.java 4KB
LoginCheckFilter.java 3KB
AddressController.java 3KB
ShoppingCartController.java 3KB
WebMvcConfig.java 3KB
JacksonObjectMapper.java 3KB
CommonController.java 3KB
UserController.java 3KB
CategoryController.java 3KB
CategoryServiceImpl.java 2KB
AddressBook.java 2KB
ValidateCodeUtils.java 1KB
GlobalExceptionHandler.java 1KB
Dish.java 1KB
MetaObjectHandler.java 1KB
Setmeal.java 1KB
SetmealDish.java 1KB
Category.java 1KB
Employee.java 1KB
Orders.java 1KB
DishFlavor.java 1KB
OrdersController.java 984B
R.java 869B
OrderDetail.java 769B
User.java 755B
ShoppingCart.java 727B
MybatisPlusConfig.java 704B
ReggieTestApplication.java 635B
SetmealService.java 602B
OrderDetailController.java 537B
BaseContext.java 511B
DishService.java 480B
ShoppingCartServiceImpl.java 475B
AddressBookServiceImpl.java 470B
SetmealDishServiceImpl.java 468B
OrderDetailServiceImpl.java 468B
DishFlavorServiceImpl.java 461B
ServletInitializer.java 444B
UserServiceImpl.java 419B
EmployeeService.java 418B
DishDto.java 384B
SetmealDto.java 321B
AddressBookMapper.java 284B
ShoppingCartMapper.java 283B
CategoryService.java 282B
SetmealDishMapper.java 280B
OrderDetailMapper.java 280B
DishFlavorMapper.java 277B
CategoryMapper.java 271B
EmployeeMapper.java 271B
SetmealMapper.java 268B
OrdersMapper.java 265B
DishMapper.java 259B
共 194 条
- 1
- 2
资源评论
FL1768317420
- 粉丝: 4290
- 资源: 4728
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功