当前位置: 首页 > news >正文

iis 多网站php做彩票网站

iis 多网站,php做彩票网站,wordpress 用户名长度,遵义市做网站的电话4.1 菜品修改模块需求分析 在菜品管理列表页面点击修改按钮#xff0c;跳转到修改菜品页面#xff0c;在修改页面回显菜品相关信息并进行修改#xff0c;最后点击确定按钮完成修改操作。 4.2 菜品修改模块前端页面#xff08;add.html#xff09;和服务端的交互过程 1).…4.1 菜品修改模块需求分析 在菜品管理列表页面点击修改按钮跳转到修改菜品页面在修改页面回显菜品相关信息并进行修改最后点击确定按钮完成修改操作。 4.2 菜品修改模块前端页面add.html和服务端的交互过程 1). 点击菜品列表的中的修改按钮携带菜品id跳转至add.html 2). 进入add.html页面发送ajax请求请求服务端获取分类数据用于菜品分类下拉框中数据展示(已实现) 3). add.html获取id, 发送ajax请求请求服务端根据id查询当前菜品信息用于菜品信息回显 4). 页面发送请求请求服务端进行图片下载用于页图片回显(已实现) 5). 点击保存按钮页面发送ajax请求将修改后的菜品相关数据以json形式提交到服务端 4.3 新增功能 经过上述的分析菜品分类下拉框的展示、图片的下载回显功能已经实现了。只需要在这里实现两个功能即可分别是 1). 根据ID查询菜品及菜品口味信息 请求说明请求方式GET请求路径/dish/{id} 2). 修改菜品及菜品口味信息 请求说明请求方式PUT请求路径/dish请求参数json格式数据 通过浏览器抓取 具体的json格式数据 {id:1422783914845487106,name:佛跳墙,categoryId:1397844357980663809,price:88800,code:,image:da9e1c70-fc32-4781-9510-a1c4ccd2ff59.jpg,description:佛跳墙,status:1,sort:0,createTime:2021-08-04 12:58:14,createUser:1412578435737350122,updateUser:1412578435737350122,flavors:[{id:1422783914883235842,dishId:1422783914845487106,name:辣度,value:[\不辣\,\微辣\,\中辣\,\重辣\],createTime:2021-08-04 12:58:14,updateTime:2021-08-04 12:58:14,createUser:1412578435737350122,updateUser:1412578435737350122,isDeleted:0,showOption:false},{id:1422783914895818754,dishId:1422783914845487106,name:忌口,value:[\不要葱\,\不要蒜\,\不要香菜\,\不要辣\],createTime:2021-08-04 12:58:14,updateTime:2021-08-04 12:58:14,createUser:1412578435737350122,updateUser:1412578435737350122,isDeleted:0,showOption:false}] } 4.4 代码实现 4.4.1 根据ID查询菜品信息 页面发送ajax请求请求服务端根据id查询当前菜品信息和对应的口味信息用于修改页面中菜品信息回显。 4.4.2 修改菜品信息 点击保存按钮页面发送ajax请求将修改后的菜品相关数据以json形式提交到服务端。在修改菜品信息时需要注意除了要更新dish菜品表还需要更新dish_flavor菜品口味表。 4.4.3 在DishService接口中扩展getByIdWithFlavor、updateWithFlavor方法 package com.itheima.reggie.service;import com.baomidou.mybatisplus.extension.service.IService; import com.itheima.reggie.dto.DishDto; import com.itheima.reggie.entity.Dish;public interface DishService extends IServiceDish {// 新增菜品需要同时插入菜品对应的口味数据需要操作两张表dish、dish_flavorpublic void saveWithFlavor(DishDto dishDto);// 根据id查询菜品信息和对应的口味信息public DishDto getByIdWithFlavor(Long id);// 更新菜品信息同时更新对应的口味信息public void updateWithFlavor(DishDto dishDto);}4.4.4 在DishService实现类中实现getByIdWithFlavor与updateWithFlavor方法 ①getByIdWithFlavor具体逻辑为: A. 根据ID查询菜品的基本信息 B. 根据菜品的ID查询菜品口味列表数据 C. 组装数据并返回 ②updateWithFlavor具体逻辑为: A. 根据ID查询菜品的基本信息 B. 根据菜品的ID查询菜品口味列表数据 C. 组装数据并返回 package com.itheima.reggie.service.impl;import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.itheima.reggie.dto.DishDto; import com.itheima.reggie.entity.Dish; import com.itheima.reggie.entity.DishFlavor; import com.itheima.reggie.mapper.DishMapper; import com.itheima.reggie.service.DishFlavorService; import com.itheima.reggie.service.DishService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; 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;/*** Description: new java files header..** author w* version 1.0* date 2022/8/16 10:15*/ Service Slf4j public class DishServiceImpl extends ServiceImplDishMapper,Dish implements DishService{Autowiredprivate DishFlavorService dishFlavorService;OverrideTransactionalpublic void saveWithFlavor(DishDto dishDto) {/**Description: 新增菜品 同时保存对应的口味数据* author LiBiGo* date 2022/8/18 11:58*/// 保存菜品的基本信息到菜品表dishthis.save(dishDto);Long dishId dishDto.getId(); // 菜品id// 菜品口味ListDishFlavor flavors dishDto.getFlavors();flavors flavors.stream().map((item)-{item.setDishId(dishId);return item;}).collect(Collectors.toList());// 保存菜品口味数据到菜品口味表dish_flavordishFlavorService.saveBatch(flavors);}Override// 根据id查询菜品信息和对应的口味信息public DishDto getByIdWithFlavor(Long id) {// 查询菜品的基本信息从dish表查询Dish dish this.getById(id);// 拷贝基本信息DishDto dishDto new DishDto();BeanUtils.copyProperties(dish,dishDto);// 查询当前菜品对应的口味信息从dish_flavor表查询flavorsLambdaQueryWrapperDishFlavor queryWrapper new LambdaQueryWrapper();queryWrapper.eq(DishFlavor::getDishId,dish.getId());ListDishFlavor flavors dishFlavorService.list(queryWrapper);dishDto.setFlavors(flavors);return dishDto;}OverrideTransactionalpublic void updateWithFlavor(DishDto dishDto) {// 更新dish表的基本信息this.updateById(dishDto);// 清理当前菜品对应的口味数据---dish_flavor表的delete操作LambdaQueryWrapperDishFlavor queryWrapper new LambdaQueryWrapper();queryWrapper.eq(DishFlavor::getDishId,dishDto.getId());dishFlavorService.remove(queryWrapper);// 添加当前提交过来的口味数据---dish_flavor表的insert操作ListDishFlavor flavors dishDto.getFlavors();flavors flavors.stream().map((item) - {item.setDishId(dishDto.getId());return item;}).collect(Collectors.toList());dishFlavorService.saveBatch(flavors);}}4.4.5 在DishController中创建get方法与update方法 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.common.R; import com.itheima.reggie.dto.DishDto; import com.itheima.reggie.entity.Category; import com.itheima.reggie.entity.Dish; import com.itheima.reggie.service.CategoryService; import com.itheima.reggie.service.DishFlavorService; import com.itheima.reggie.service.DishService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*;import java.util.List; import java.util.stream.Collectors;/*** Description: 菜品管理 菜品及菜品口味的相关操作统一使用这一个controller即可。* version 1.0* date 2022/8/18 11:08*/Slf4j RestController RequestMapping(/dish) public class DishController {Autowiredprivate DishService dishService;Autowiredprivate DishFlavorService dishFlavorService;Autowiredprivate CategoryService categoryService;PostMappingpublic RString save(RequestBody DishDto dishDto){/**Description: 新增菜品* author LiBiGo* date 2022/8/18 11:44*/log.info(dishDto.toString());dishService.saveWithFlavor(dishDto);return R.success(新增菜品成功);}GetMapping(/page)public RPage page(int page,int pageSize,String name){/**Description: 菜品信息分页查询* author LiBiGo** 数据库查询菜品信息时获取到的分页查询结果 Page 的泛型为 Dish而最终需要给前端页面返回的类型为DishDto* 所以这个时候就要进行转换基本属性直接通过属性拷贝的形式对Page中的属性进行复制* 对于结果列表 records属性需要进行特殊处理的(需要封装菜品分类名称);** date 2022/8/19 10:41*/// 构造分页构造器对象PageDish pageInfo new Page(page,pageSize);PageDishDto dishDtoPage new Page();// 条件构造器LambdaQueryWrapperDish queryWrapper new LambdaQueryWrapper();// 添加过滤条件queryWrapper.like(name!null,Dish::getName,name);// 添加排序条件queryWrapper.orderByDesc(Dish::getUpdateTime);// 执行分页查询dishService.page(pageInfo,queryWrapper);// 对象的拷贝BeanUtils.copyProperties(pageInfo,dishDtoPage,records);ListDish records pageInfo.getRecords();ListDishDto list records.stream().map((item) - {DishDto dishDto new DishDto();BeanUtils.copyProperties(item,dishDto);Long categoryId item.getCategoryId();//分类id//根据id查询分类对象Category category categoryService.getById(categoryId);if(category ! null){String categoryName category.getName();dishDto.setCategoryName(categoryName);}return dishDto;}).collect(Collectors.toList());dishDtoPage.setRecords(list);return R.success(dishDtoPage);}GetMapping(/{id})public RDishDto get(PathVariable Long id){/**Description: 根据id查询菜品信息和对应的口味信息* author LiBiGo* date 2022/8/19 11:43*/DishDto dishDto dishService.getByIdWithFlavor(id);return R.success(dishDto);}PutMapping// PathVariable : 该注解可以用来提取url路径中传递的请求参数。public RString update(RequestBody DishDto dishDto){/**Description: 修改菜品* author LiBiGo* date 2022/8/19 11:58*/log.info(dishDto.toString());dishService.updateWithFlavor(dishDto);return R.success(新增菜品成功);}}4.4.6 功能测试 代码编写完成之后重启服务然后按照前面分析的操作流程进行测试查看数据是否正常修改即可。
http://www.zqtcl.cn/news/50881/

相关文章:

  • 洛阳网站开发网络界面设计
  • 县级网站建设推广模式怎么写
  • 东莞企业网站制科技公司网站建设
  • 网站域名到期后不续费会怎样前端写一个页面多少钱
  • 永康做网站的公司wordpress表情按钮
  • springcloud项目搭建网站改版seo
  • 如何建免费的企业网站wordpress網頁版
  • 东营兴通建设工程公司网站网站正在建设 敬请期待
  • 支付网站怎么设计的教务管理系统密码忘记了怎么办
  • 创客贴网站做海报技能平度市网站建设
  • 做物流百度网站国外游戏网站设计
  • 网站开发开题报告关键问题电子商务网站备案
  • 注册网站如何备案什么是网络口碑营销
  • 定制企业网站开发公司建筑设计方案大全
  • 做粤菜的视频网站任县网站建设公司
  • 惠州中小企业网站制作最新章节 第一百四十七章 做视频网站
  • 建立网站ftp共享网站的详细规划
  • 购物网站图标电商网站设计方案
  • 做的好的购物网站网站后台管理要求
  • 有趣的网站 知乎html5 公司网站模板
  • 饥荒网站这么做网站页面安全监测建设方案
  • 网站开发组私密性最好的浏览器
  • 信息技术教案 建设我们的网站wordpress网上商城
  • 中小企业网站建设新闻重庆网站制作有哪些
  • 网站做等级保护产品设计开发流程图
  • 建立个人网站用虚拟主机哔哩哔哩做视频网站
  • 吉林省交通建设质量监督站网站wordpress首页聚合模块
  • 新手想写小说怎么做网站名师工作室网站建设 意义
  • 广州网站制作小说网站防盗做的最好的是
  • 免费推广平台网站谁给个网站啊急急急2021