昨天搞毕设去了...
1.修改菜品
需求分析:
<1>下拉列表回显(这个在之前以及完成了)
/**
* 根据条件查询菜品分类
*
* @param category
* @return
*/
@GetMapping("/list")
public R<List<Category>> list(Category category) {
log.info("下拉列表查询菜品分类: {}",category.getType());
LambdaQueryWrapper<Category> queryWrapper = new LambdaQueryWrapper<>();
if(category.getType() != null){
queryWrapper.eq(Category::getType, category.getType());
}
queryWrapper.orderByAsc(Category::getSort).orderByDesc(Category::getUpdateTime);
List<Category> list = categoryService.list();
return R.success(list);
}
<2>其他数据回显
/**
* 根据id回显菜品(查dish表和dishFlavor表)
* @param id
* @return
*/
@Override
public DishDto getByIdWithFlavor(Long id) {
Dish dish = this.getById(id);
//查询口味
LambdaQueryWrapper<DishFlavor> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(DishFlavor::getDishId,id);
List<DishFlavor> flavors = dishFlavorService.list(queryWrapper);
//封装成dto
DishDto dishDto = new DishDto();
BeanUtils.copyProperties(dish,dishDto);
dishDto.setFlavors(flavors);
return dishDto;
}
<3>照片下载回显(之前已完成)
@GetMapping("/download")
public void download(String name, HttpServletResponse response) {
try {
//从文件读取
FileInputStream fileInputStream = new FileInputStream(new File(basePath + name));
//响应
ServletOutputStream outputStream = response.getOutputStream();
byte bytes[] = new byte[1024];
int len = 0;
while ((len = fileInputStream.read(bytes)) != -1) {
outputStream.write(bytes, 0, len);
outputStream.flush();
}
//关闭资源
fileInputStream.close();
outputStream.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
<4>提交修改
/**
* 修改菜品
*
* @param dishDto
* @return
*/
@PutMapping
public R<String> update(@RequestBody DishDto dishDto) {
log.info("修改菜品{}", dishDto.toString());
dishService.updateWithFlavor(dishDto);
return R.success("修改成功");
}
/**
* 保存菜品的修改
* @param dishDto
* @return
*/
@Override
public void updateWithFlavor(DishDto dishDto) {
this.updateById(dishDto);
//清理口味表中的记录delete
LambdaQueryWrapper<DishFlavor> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(DishFlavor::getDishId,dishDto.getId());
dishFlavorService.remove(queryWrapper);
//插入口味insert
List<DishFlavor> flavors = dishDto.getFlavors();
flavors = flavors.stream().map((item) ->{
item.setDishId(dishDto.getId());
return item;
}).collect(Collectors.toList());
dishFlavorService.saveBatch(flavors);
}
2.新增套餐需求
<1>套餐分类查询
/**
* 根据条件查询菜品分类
*
* @param category
* @return
*/
@GetMapping("/list")
public R<List<Category>> list(Category category) {
log.info("下拉列表查询菜品分类: {}",category.getType());
LambdaQueryWrapper<Category> queryWrapper = new LambdaQueryWrapper<>();
if(category.getType() != null){
queryWrapper.eq(Category::getType, category.getType());
}
queryWrapper.orderByAsc(Category::getSort).orderByDesc(Category::getUpdateTime);
List<Category> list = categoryService.list();
return R.success(list);
}
<2>菜品查询
/**
* 根据条件查询菜品分类
*
* @param category
* @return
*/
@GetMapping("/list")
public R<List<Category>> list(Category category) {
log.info("下拉列表查询菜品分类: {}",category.getType());
LambdaQueryWrapper<Category> queryWrapper = new LambdaQueryWrapper<>();
if(category.getType() != null){
queryWrapper.eq(Category::getType, category.getType());
}
queryWrapper.orderByAsc(Category::getSort).orderByDesc(Category::getUpdateTime);
List<Category> list = categoryService.list();
return R.success(list);
}
<3>保存新增套餐
/**
* 保存新增套餐
* @param setmealDto
* @return
*/
@PostMapping
public R<String> save(@RequestBody SetmealDto setmealDto){
log.info("保存新增套餐: {}",setmealDto.toString());
setMealService.saveWithDish(setmealDto);
return R.success("新增套餐成功");
}
3.套餐分页查询
/**
* 套餐分页查询
* @param page
* @param pageSize
* @param name
* @return
*/
@GetMapping("/page")
public R<Page> page(Integer page,Integer pageSize,String name){
Page<Setmeal> pageInfo = new Page<>(page,pageSize);
Page<SetmealDto> dtoPage = new Page<>();
LambdaQueryWrapper<Setmeal> queryWrapper = new LambdaQueryWrapper<>();
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);
}