整理记录下学习整个瑞吉外卖项目,详细代码可在我的Gitee仓库瑞吉外卖实战克隆下载学习使用!
登录码云后创建新仓库,如图
- 配置仓库,如图
@Configuration
public class RedisConfig extends CachingConfigurerSupport { @Bean public RedisTemplate
包括套餐修改,及修改套餐状态功能
controller层加入
//根据id找具体套餐信息
@GetMapping("/dish/{id}")
public Result> showSetmealDish(@PathVariable Long id) { //条件构造器 LambdaQueryWrapper dishLambdaQueryWrapper = new LambdaQueryWrapper<>(); //手里的数据只有setmealId dishLambdaQueryWrapper.eq(SetmealDish::getSetmealId, id); //查询数据 List records = setmealDishService.list(dishLambdaQueryWrapper); List dtoList = records.stream().map((item) -> { DishDto dishDto = new DishDto(); //copy数据 BeanUtils.copyProperties(item, dishDto); //查询对应菜品id Long dishId = item.getDishId(); //根据菜品id获取具体菜品数据,这里要自动装配 dishServiceDish dish = dishService.getById(dishId); //其实主要数据是要那个图片,不过我们这里多copy一点也没事 BeanUtils.copyProperties(dish, dishDto); return dishDto; }).collect(Collectors.toList()); return Result.success(dtoList);
}
//修改套餐状态,包括批量修改状态
@PostMapping("/status/{status}")
//设置allEntries为true,清空缓存名称为setmealCache的所有缓存
//@CacheEvict(value = "setmealCache", allEntries = true)
public Result status(@PathVariable String status, @RequestParam List ids) { LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.in(Setmeal::getId, ids); updateWrapper.set(Setmeal::getStatus, status); setmealService.update(updateWrapper); return Result.success("批量操作成功");
}
//修改时根据套餐id查找具体信息回显
@GetMapping("/{id}")
public Result getById(@PathVariable Long id) { Setmeal setmeal = setmealService.getById(id); SetmealDto setmealDto = new SetmealDto(); //拷贝数据 BeanUtils.copyProperties(setmeal, setmealDto); //条件构造器 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); //根据setmealId查询具体的setmealDish queryWrapper.eq(SetmealDish::getSetmealId, id); List setmealDishes = setmealDishService.list(queryWrapper); //然后再设置属性 setmealDto.setSetmealDishes(setmealDishes); //作为结果返回 return Result.success(setmealDto);
}
//修改套餐中的菜品
@PutMapping
//设置allEntries为true,清空缓存名称为setmealCache的所有缓存
//@CacheEvict(value = "setmealCache", allEntries = true)
public Result updateWithDish(@RequestBody SetmealDto setmealDto) { List setmealDishes = setmealDto.getSetmealDishes(); Long setmealId = setmealDto.getId(); //先根据id把setmealDish表中对应套餐的数据删了 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(SetmealDish::getSetmealId, setmealId); setmealDishService.remove(queryWrapper); //然后在重新添加 setmealDishes = setmealDishes.stream().map((item) -> { //这属性没有,需要我们手动设置一下 item.setSetmealId(setmealId); return item; }).collect(Collectors.toList()); //更新套餐数据 setmealService.updateById(setmealDto); //更新套餐对应菜品数据 setmealDishService.saveBatch(setmealDishes); return Result.success(setmealDto);
}
使用SpringCache中的Redis缓存
输入信息后提交本地git,如图
上一篇:dToF直方图之美_2
下一篇:YOLOv5模型的读取