太仓做网站公司,做理财网站,上海中学图片,房产信息网显示限售需求分析
在菜品管理列表页面点击修改按钮#xff0c;跳转到修改页面#xff0c;在修改页面回显菜品相关信息并进行修改#xff0c;在最后点击确定按钮完成修改操作
代码设计
页面发送ajax请求#xff0c;请求服务端获取分类数据#xff0c;用于菜品分类下拉框中数据显…需求分析
在菜品管理列表页面点击修改按钮跳转到修改页面在修改页面回显菜品相关信息并进行修改在最后点击确定按钮完成修改操作
代码设计
页面发送ajax请求请求服务端获取分类数据用于菜品分类下拉框中数据显示页面发送ajax请求请求服务端根据id查询当前菜品信息用于菜品信息回显页面发送请求请求服务端进行图片下载用于页面图片回显点击保存按钮页面发送ajax请求将修改后的菜品相关数据以json形式提交到服务端
wrong code
Service
Slf4jpublic class DishServiceImpl extends ServiceImplDishMapper, Dish implements DishService {Autowiredprivate DishFlavorService dishFlavorService;/*** 新增菜品 同时保存对应的口味* param dishDto*/Transactional //需要加上事务控制 因为涉及到多张表的操作public void saveWithFlavor(DishDto dishDto){//保存菜品的基本信息到菜品表this.save(dishDto);Long dishId dishDto.getId();//给菜品id赋值//菜品口味ListDishFlavor flavors dishDto.getFlavors();flavors flavors.stream().map((item)-{item.setDishId(dishId);return item;}).collect(Collectors.toList());//保存菜品口味数据到菜品口味表dishFlavorService.saveBatch(flavors);}/*** 根据id查询菜品信息以及对应的口味信息* param id* return*/public DishDto getByIdWithFlavor(Long id){//查询菜品基本信息 dishDish dish this.getById(id);DishDto dishDto new DishDto();BeanUtils.copyProperties(dish,dishDto);//查询当前菜品对应的口味信息 从dish_falvor查询LambdaQueryWrapperDishFlavor 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);}}
/*** 菜品管理*/
RestController
RequestMapping(/dish)
Slf4j
public class DishController {Autowiredprivate DishService dishService;//菜品服务Autowiredprivate DishFlavorService dishFlavorService;//菜品口味Autowiredprivate CategoryService categoryService;//菜品分类PostMappingpublic RString save(RequestBody DishDto dishDto)//记得封装要加RequestBody注解{log.info(dishDto.toString());dishService.saveWithFlavor(dishDto);return R.success(新增菜品成功...);}/*** 菜品信息分页查询* param page* param pageSize* param name* return*/GetMapping(/page)public RPage page(int page, int pageSize,String name){//构造分页构造器对象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);//将上面pageInfo对象中的属性拷贝到dishDtoPage中去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;//String categoryName category.getName();//dishDto.setCategoryName(categoryName);// return dishDto;}).collect(Collectors.toList());// ListDishDto list null;dishDtoPage.setRecords(list);return R.success(dishDtoPage);}/*** 根据id查询菜品信息和对应的口味信息* param id* return*/GetMapping(/id)public RDishDto get(PathVariable Long id){DishDto dishDto dishService.getByIdWithFlavor(id);return R.success(dishDto);}/*** 修改菜品* param dishDto* return*/PutMappingpublic RString update(RequestBody DishDto dishDto){log.info(dishDto.toString());dishService.updateWithFlavor(dishDto);return R.success(修改菜品成功...);}}找了很久找不到错误直接用现成的了。。。
package com.springboot.reggie.controller;import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.springboot.reggie.common.R;
import com.springboot.reggie.entity.Employee;
import com.springboot.reggie.service.EmployeeService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.DigestUtils;
import org.springframework.web.bind.annotation.*;import javax.servlet.http.HttpServletRequest;
import java.time.LocalDateTime;Slf4j
RestController
RequestMapping(/employee)
public class EmployeeController {Autowiredprivate EmployeeService employeeService;/*** 员工登录* param request* param employee* return*/PostMapping(/login)public REmployee login(HttpServletRequest request,RequestBody Employee employee){//1、将页面提交的密码password进行md5加密处理String password employee.getPassword();password DigestUtils.md5DigestAsHex(password.getBytes());//2、根据页面提交的用户名username查询数据库LambdaQueryWrapperEmployee queryWrapper new LambdaQueryWrapper();queryWrapper.eq(Employee::getUsername,employee.getUsername());Employee emp employeeService.getOne(queryWrapper);//3、如果没有查询到则返回登录失败结果if(emp null){return R.error(登录失败);}//4、密码比对如果不一致则返回登录失败结果if(!emp.getPassword().equals(password)){return R.error(登录失败);}//5、查看员工状态如果为已禁用状态则返回员工已禁用结果if(emp.getStatus() 0){return R.error(账号已禁用);}//6、登录成功将员工id存入Session并返回登录成功结果request.getSession().setAttribute(employee,emp.getId());return R.success(emp);}/*** 员工退出* param request* return*/PostMapping(/logout)public RString logout(HttpServletRequest request){//清理Session中保存的当前登录员工的idrequest.getSession().removeAttribute(employee);return R.success(退出成功);}/*** 新增员工* param employee* return*/PostMappingpublic RString save(HttpServletRequest request,RequestBody Employee employee){log.info(新增员工员工信息{},employee.toString());//设置初始密码123456需要进行md5加密处理employee.setPassword(DigestUtils.md5DigestAsHex(123456.getBytes()));// employee.setCreateTime(LocalDateTime.now());//employee.setUpdateTime(LocalDateTime.now());//获得当前登录用户的id//Long empId (Long) request.getSession().getAttribute(employee);//employee.setCreateUser(empId);//employee.setUpdateUser(empId);employeeService.save(employee);return R.success(新增员工成功);}/*** 员工信息分页查询* param page* param pageSize* param name* return*/GetMapping(/page)public RPage page(int page,int pageSize,String name){log.info(page {},pageSize {},name {} ,page,pageSize,name);//构造分页构造器Page pageInfo new Page(page,pageSize);//构造条件构造器LambdaQueryWrapperEmployee queryWrapper new LambdaQueryWrapper();//添加过滤条件queryWrapper.like(StringUtils.isNotEmpty(name),Employee::getName,name);//添加排序条件queryWrapper.orderByDesc(Employee::getUpdateTime);//执行查询employeeService.page(pageInfo,queryWrapper);return R.success(pageInfo);}/*** 根据id修改员工信息* param employee* return*/PutMappingpublic RString update(HttpServletRequest request,RequestBody Employee employee){log.info(employee.toString());//Long empId (Long)request.getSession().getAttribute(employee);// employee.setUpdateTime(LocalDateTime.now());//employee.setUpdateUser(empId);employeeService.updateById(employee);return R.success(员工信息修改成功);}/*** 根据id查询员工信息* param id* return*/GetMapping(/{id})public REmployee getById(PathVariable Long id){log.info(根据id查询员工信息...);Employee employee employeeService.getById(id);if(employee ! null){return R.success(employee);}return R.error(没有查询到对应员工信息);}
}
package com.springboot.reggie.service.impl;import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.springboot.reggie.dto.DishDto;
import com.springboot.reggie.entity.Dish;
import com.springboot.reggie.entity.DishFlavor;
import com.springboot.reggie.mapper.DishMapper;
import com.springboot.reggie.service.DishFlavorService;
import com.springboot.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;Service
Slf4j
public class DishServiceImpl extends ServiceImplDishMapper,Dish implements DishService {Autowiredprivate DishFlavorService dishFlavorService;/*** 新增菜品同时保存对应的口味数据* param dishDto*/Transactionalpublic void saveWithFlavor(DishDto dishDto) {//保存菜品的基本信息到菜品表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);}/*** 根据id查询菜品信息和对应的口味信息* param id* return*/public DishDto getByIdWithFlavor(Long id) {//查询菜品基本信息从dish表查询Dish dish this.getById(id);DishDto dishDto new DishDto();BeanUtils.copyProperties(dish,dishDto);//查询当前菜品对应的口味信息从dish_flavor表查询LambdaQueryWrapperDishFlavor 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);}
}