基于 Spring Boot 瑞吉外卖系统开发(十)

基于 Spring Boot 瑞吉外卖系统开发(十)

修改菜品

修改菜品是在原有的菜品信息的上对菜品信息进行更新,对此修改菜品信息之前需要将原有的菜品信息在修改界面进行展示,然后再对菜品信息进行修改。

修改菜品分为回显菜品信息更新菜品信息

回显菜品信息

点击"修改"菜品按钮,请求携带菜品id以get请求方式向"/dish"发送请求。

DishController类中添加查询菜品信息的方法

java 复制代码
    @GetMapping("/{id}")
    public R<DishDto> getDishDtoById(@PathVariable("id") Long id){
        Dish dish = dishService.getById(id);
        DishDto dishDto = new DishDto();
        BeanUtils.copyProperties(dish,dishDto);
        QueryWrapper<DishFlavor> query = new QueryWrapper<>();//条件构造器
        query.eq("dish_id",id);
        List<DishFlavor> list = dishFlavorService.list(query);
        dishDto.setFlavors(list);
        return R.success(dishDto);
    }

运行测试

重新启动项目,成功登录管理端之后,在菜品管理页面单击牛肉面的"修改"按钮,请求修改信息,数据可以正常回显。

更新菜品信息

点击"保存"按钮,请求携带表单中的菜品信息以put请求方式向"/dish"发送请求。

DishController类中添加修改菜品信息的方法

java 复制代码
    @PutMapping
    public R<String> update(@RequestBody DishDto dishDto){
        dishService.updateWithFlavor(dishDto);
        return R.success("更新菜品成功");
    }

DishService接口中添加updateWithFlavor()方法

java 复制代码
void updateWithFlavor(DishDto dishDto);

DishServiceImpl类中实现DishService接口中的updateWithFlavor()方法

java 复制代码
    @Override
    @Transactional
    public void updateWithFlavor(DishDto dishDto) {
        //更新基本信息
        this.updateById(dishDto);
        //删除原有口味
        QueryWrapper<DishFlavor> query = new QueryWrapper<>();
        query.eq("dish_id",dishDto.getId());
        dishFlavorService.remove(query);
        //菜品口味
        List<DishFlavor> flavors = dishDto.getFlavors();
        for(DishFlavor flavor:flavors){
            flavor.setDishId(dishDto.getId());
        }
        //新增菜品口味数据到菜品口味表dish_flavor
        dishFlavorService.saveBatch(flavors);
    }

运行测试

重新启动项目,成功登录管理端之后,在修改菜品页面中将牛肉面的价格修改为"20"后,单击"保存"按钮。

相关推荐
hrrrrb1 小时前
【Spring Boot 快速入门】二、请求与响应
spring boot·后端
小七mod1 小时前
【Spring】Spring Boot启动过程源码解析
java·spring boot·spring·面试·ssm·源码
是2的10次方啊1 小时前
Spring全家桶深度解析:从菜鸟到大神的进阶之路
spring boot·spring·spring cloud
1candobetter1 小时前
JAVA后端开发——用 Spring Boot 实现定时任务
java·开发语言·spring boot
XiaoLeisj3 小时前
【智能协同云图库】智能协同云图库第七弹:基于 Jsoup 爬虫实现以图搜图、颜色搜图、批量操作
spring boot·爬虫·servlet·java-ee·mybatis·门面模式·jsoup
越来越无动于衷5 小时前
基于 JWT 的登录验证功能实现详解
java·数据库·spring boot·mysql·mybatis
paopaokaka_luck8 小时前
基于SpringBoot+Uniapp的健身饮食小程序(协同过滤算法、地图组件)
前端·javascript·vue.js·spring boot·后端·小程序·uni-app
GEM的左耳返11 小时前
Java面试全攻略:Spring生态与微服务架构实战
spring boot·redis·spring cloud·微服务·kafka·java面试
愿你天黑有灯下雨有伞11 小时前
Spring Boot SSE实战:SseEmitter实现多客户端事件广播与心跳保活
java·spring boot·spring
AI_Gump14 小时前
【AI阅读】20250717阅读输入
java·spring boot·spring