package com.itheima.reggie.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.itheima.reggie.dto.SetmealDto;
import com.itheima.reggie.entity.Category;
import com.itheima.reggie.entity.Setmeal;
import com.itheima.reggie.entity.SetmealDish;
import com.itheima.reggie.service.CategoryService;
import com.itheima.reggie.service.SetmealDishService;
import com.itheima.reggie.service.SetmealService;
import com.itheima.reggie.utils.R;
import lombok.extern.java.Log;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
import java.util.stream.Collectors;
/**
* 套餐管理
*/
@RestController
@RequestMapping("/setmeal")
@Slf4j
public class SetmealController {
@Resource
private SetmealService setmealService;
@Resource
private CategoryService categoryService;
@Resource
private SetmealDishService setmealDishService;
/**
* 新增套餐
* @param setmealDto
* @return
*/
@PostMapping
public R<String> save(@RequestBody SetmealDto setmealDto){
log.info("套餐信息:{}",setmealDto);
setmealService.saveWithDish(setmealDto);
return R.success("新增套餐成功");
}
/**
* 套餐分页查询
* @param page
* @param pageSize
* @param name
* @return
*/
@GetMapping("/page")
public R<Page> page(int page,int pageSize,String name){
//分页构造器对象
Page<Setmeal> pageInfo = new Page<>(page,pageSize);
Page<SetmealDto> dtoPage = new Page<>();
LambdaQueryWrapper<Setmeal> queryWrapper = new LambdaQueryWrapper<>();
//添加查询条件,根据name进行like模糊查询
queryWrapper.like(name != null,Setmeal::getName,name);
//添加排序条件,根据更新时间降序排列
queryWrapper.orderByDesc(Setmeal::getUpdateTime);
setmealService.page(pageInfo,queryWrapper);
//对象拷贝
BeanUtils.copyProperties(pageInfo,dtoPage,"records");
List<Setmeal> records = pageInfo.getRecords();
List<SetmealDto> list = records.stream().map((item) -> {
SetmealDto setmealDto = new SetmealDto();
//对象拷贝
BeanUtils.copyProperties(item,setmealDto);
//分类id
Long categoryId = item.getCategoryId();
//根据分类id查询分类对象
Category category = categoryService.getById(categoryId);
if(category != null){
//分类名称
String categoryName = category.getName();
setmealDto.setCategoryName(categoryName);
}
return setmealDto;
}).collect(Collectors.toList());
dtoPage.setRecords(list);
return R.success(dtoPage);
}
/**
* 删除套餐
* @param ids
* @return
*/
@DeleteMapping
public R<String> delete(@RequestParam List<Long> ids){
log.info("ids:{}",ids);
setmealService.removeWithDish(ids);
return R.success("套餐数据删除成功");
}
@GetMapping("/list")
public R<List<Setmeal>> list(Setmeal setmeal) {
log.info("setmeal:{}", setmeal);
//条件构造器
LambdaQueryWrapper<Setmeal> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.like(StringUtils.isNotEmpty(setmeal.getName()), Setmeal::getName, setmeal.getName());
queryWrapper.eq(null != setmeal.getCategoryId(), Setmeal::getCategoryId, setmeal.getCategoryId());
queryWrapper.eq(null != setmeal.getStatus(), Setmeal::getStatus, setmeal.getStatus());
queryWrapper.orderByDesc(Setmeal::getUpdateTime);
return R.success(setmealService.list(queryWrapper));
}
@GetMapping("/{id}")
public R<Setmeal> getByid(@PathVariable Long id){
// 我们需要把setmealDto返回回去,定义一个新的setmealDto用于保存数据
SetmealDto setmealDto = new SetmealDto();
// 将普通数据传入
Setmeal setmeal = setmealService.getById(id);
BeanUtils.copyProperties(setmeal,setmealDto);
// 将菜品信息传递进去
LambdaQueryWrapper<SetmealDish> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SetmealDish::getSetmealId,id);
List<SetmealDish> list = setmealDishService.list(queryWrapper);
setmealDto.setSetmealDishes(list);
// 返回setmealDto即可
return R.success(setmealDto);
}
@PutMapping
public R update(@RequestBody Setmeal setmeal){
setmealService.updateById(setmeal);
return R.success("修改信息成功");
}
@PostMapping("/status/{status}")
public R<String> closeStatus(@PathVariable Integer status,@RequestParam List<Long> ids){
LambdaQueryWrapper<Setmeal> queryWrapper = new LambdaQueryWrapper();
queryWrapper.in(Setmeal::getId,ids);
List<Setmeal> setmeals = setmealService.list(queryWrapper);
for (Setmeal setmeal:setmeals
) {
if (setmeal.getStatus() == status){
return R.error("当前状态不需要更改");
}
setmeal.setStatus(status);
setmealService.updateById(setmeal);
}
return R.success("修改成功");
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
springboot瑞吉外卖.zip (397个子文件)
SetmealController.class 11KB
DishController.class 11KB
AddressBook.class 11KB
OrderDetailServiceImpl.class 8KB
EmployeeController.class 8KB
CategoryController.class 8KB
Orders.class 8KB
Dish.class 7KB
SetmealDish.class 7KB
Setmeal.class 7KB
Employee.class 7KB
AddressBookController.class 7KB
OrderController.class 7KB
ShoppingCartController.class 6KB
DishServiceImpl.class 6KB
SetmealServiceImpl.class 6KB
ShoppingCart.class 6KB
DishFlavor.class 6KB
UserController.class 5KB
OrderDetail.class 5KB
Category.class 5KB
R.class 4KB
User.class 4KB
CategoryServiceImpl.class 4KB
LoginCheckFilter.class 4KB
FileController.class 3KB
DishDto.class 3KB
JacksonObjectMapper.class 3KB
JacksonObjectMapper.class 3KB
WebMvcConfig.class 3KB
GlobalExceptionHandler.class 2KB
SetmealDto.class 2KB
SMSUtils.class 2KB
MyMetaObjecthandler.class 2KB
ValidateCodeUtils.class 1KB
ReggieApplication.class 1KB
OrderServiceImpl.class 1KB
MybatisPlusConfig.class 1014B
SetmealDishServiceImpl.class 942B
OrderDetailController.class 930B
BaseContext.class 864B
DishFlavorServiceImpl.class 790B
ShoppingCartServiceImpl.class 755B
AddressBookServiceImpl.class 748B
EmployeeServiceImpl.class 727B
UserServiceImpl.class 699B
DishService.class 555B
SetmealService.class 545B
CustomException.class 424B
OrderService.class 417B
ShoppingCartMapper.class 408B
SetmealDishMapper.class 405B
OrderDetailMapper.class 405B
AddressBookMapper.class 405B
CategoryService.class 403B
DishFlavorMapper.class 402B
CategoryMapper.class 396B
EmployeeMapper.class 396B
SetmealMapper.class 393B
OrderMapper.class 388B
UserMapper.class 384B
DishMapper.class 384B
ShoppingCartService.class 341B
AddressBookService.class 338B
OrderDetailService.class 338B
SetmealDishService.class 338B
DishFlavorService.class 335B
EmployeeService.class 329B
aController.class 318B
UserService.class 317B
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
login.css 2KB
index.css 2KB
login.css 2KB
index.css 2KB
pay-success.css 2KB
pay-success.css 2KB
共 397 条
- 1
- 2
- 3
- 4
资源评论
苦逼的猿宝
- 粉丝: 1447
- 资源: 109
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 数据库开发资源概述:设计、建模、工具与框架
- Unity 的 GPU 粒子系统(需要 DirectX 环境).zip
- GBZ 4887-2006 累积和控制图 运用累积和技术进行质量控制和数据分析指南
- 数据分析师和机器学习从业者的多元数据集资源指南
- Unity Native 插件用于公开 DirectX DirectInput ForceFeedback.zip
- 全面的数据分析资源指南:涵盖学习平台、书籍、工具与社区
- 417JSP基于WEB的开放性实验管理系统毕业课程源码设计+论文资料+开题报告+任务书+答辩ppt+中英文翻译资料很全
- HW机试历年题集(含答案源码).zip
- 软考冲刺资源全解析-高效备考指南
- 甘井子区婚礼酒店一览表.xlsx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功