前言
本项目gitee位置:gitee网址
本篇文章是学习了添加菜品的总结,其中包括菜品分类的接口,图片上传接口,数据整体上传等接口
效果图
1、菜品分类查询接口
和之前不同的是之前分页查询,不过分页构造器,通过类型判断获取数据
/**
* 获取菜品分类列表
* @param category
* @return
*/
@GetMapping("list")
public R<List<Category>> list(Category category){
// 添加条件构造器
LambdaQueryWrapper<Category> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(category.getType()!=null,Category::getType,category.getType());
queryWrapper.orderByAsc(Category::getSort).orderByDesc(Category::getUpdateTime);
List<Category> list = categoryService.list(queryWrapper);
return R.success(list);
}
2、上传图片和下载图片
3、创建接收数据的Dto
我们需要接收的参数,会发现菜品中没有存储口味的字段,所以需要创建一个dto用来继承菜品表创建口味表从而实现数据的接收
4、创建提交的方法
两张表通过dishid来关联的所以需要将id和附给dishid
package com.example.ruiji_demo.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.ruiji_demo.dto.DishDto;
import com.example.ruiji_demo.entity.Dish;
import com.example.ruiji_demo.entity.DishFlavor;
import com.example.ruiji_demo.mapper.DishMapper;
import com.example.ruiji_demo.service.DishFlavorService;
import com.example.ruiji_demo.service.DishService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author jitwxs
* @date 2024年04月03日 15:53
*/
@Slf4j
@Service
public class DishServiceImpl extends ServiceImpl<DishMapper, Dish> implements DishService {
// 引入相关的表
@Autowired
private DishFlavorService dishFlavorService;
// 新增菜品的方法
/**
* 由于是多张表需要加入事务控制
* @param dishDto
*/
@Transactional
public void saveWithFlavor(DishDto dishDto){
this.save(dishDto);
Long dishId = dishDto.getId();
List<DishFlavor> flavors = dishDto.getFlavors();
flavors = flavors.stream().map((item)->{
item.setDishId(dishId);
return item;
}).collect(Collectors.toList());
dishFlavorService.saveBatch(flavors);
}
}