diff --git a/reggie_server/src/main/java/com/reggie/controller/admin/SetmealController.java b/reggie_server/src/main/java/com/reggie/controller/admin/SetmealController.java index 81a386e..88f44ef 100644 --- a/reggie_server/src/main/java/com/reggie/controller/admin/SetmealController.java +++ b/reggie_server/src/main/java/com/reggie/controller/admin/SetmealController.java @@ -5,6 +5,7 @@ import com.reggie.result.PageResult; import com.reggie.result.R; import com.reggie.service.SetmealService; +import com.reggie.vo.SetmealVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -63,5 +64,33 @@ public R delete(@RequestParam List ids) { return R.success("删除成功"); } + /** + * id查询套餐 + * + * @param id 套餐id + * @return setmealVO 回显修改套餐的数据 + */ + @GetMapping("/{id}") + @ApiOperation("id查询套餐接口") + public R getById(@PathVariable Long id) { + log.info("id查询套餐接口:{}", id); + SetmealVO setmealVO = setmealService.getById(id); + return R.success(setmealVO); + } + + /** + * 修改套餐 + * + * @param setmealDTO 修改的套餐信息 + * @return success + */ + @PutMapping + @ApiOperation("修改套餐") + public R update(@RequestBody SetmealDTO setmealDTO) { + log.info("修改套餐:{}", setmealDTO); + setmealService.update(setmealDTO); + return R.success(); + } + } diff --git a/reggie_server/src/main/java/com/reggie/mapper/SetmealMapper.java b/reggie_server/src/main/java/com/reggie/mapper/SetmealMapper.java index 33e4fcb..9cd31e8 100644 --- a/reggie_server/src/main/java/com/reggie/mapper/SetmealMapper.java +++ b/reggie_server/src/main/java/com/reggie/mapper/SetmealMapper.java @@ -35,4 +35,7 @@ public interface SetmealMapper { //套餐ids删除套餐表中的数据 void deleteById(List ids); + + //id查询套餐查询所有套餐关联数据 + SetmealVO getByIdWithDish(Long id); } diff --git a/reggie_server/src/main/java/com/reggie/service/SetmealService.java b/reggie_server/src/main/java/com/reggie/service/SetmealService.java index c4dabac..542f9e7 100644 --- a/reggie_server/src/main/java/com/reggie/service/SetmealService.java +++ b/reggie_server/src/main/java/com/reggie/service/SetmealService.java @@ -3,6 +3,7 @@ import com.reggie.dto.SetmealDTO; import com.reggie.dto.SetmealPageQueryDTO; import com.reggie.result.PageResult; +import com.reggie.vo.SetmealVO; import java.util.List; @@ -16,4 +17,10 @@ public interface SetmealService { //批量删除的套餐 void deleteBatch(List ids); + + //id查询套餐 + SetmealVO getById(Long id); + + //修改套餐 + void update(SetmealDTO setmealDTO); } diff --git a/reggie_server/src/main/java/com/reggie/service/impl/SetmealServiceImpl.java b/reggie_server/src/main/java/com/reggie/service/impl/SetmealServiceImpl.java index accb5d9..19d5aa8 100644 --- a/reggie_server/src/main/java/com/reggie/service/impl/SetmealServiceImpl.java +++ b/reggie_server/src/main/java/com/reggie/service/impl/SetmealServiceImpl.java @@ -20,6 +20,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; /** @@ -98,6 +99,42 @@ public void deleteBatch(List ids) { setmealDishMapper.deleteBySetmealId(ids); } + /** + * id查询套餐 + * + * @param id 套餐id + * @return setmealVO 回显修改套餐的数据 + */ + public SetmealVO getById(Long id) { + return setmealMapper.getByIdWithDish(id); + } + + /** + * 修改套餐 + * + * @param setmealDTO 修改的套餐信息 + */ + @Override + public void update(SetmealDTO setmealDTO) { + //拷贝套餐信息 + Setmeal setmeal = new Setmeal(); + BeanUtils.copyProperties(setmealDTO, setmeal); + //更新套餐数据 + setmealMapper.updatesByIds(setmeal); + + //套餐id + Long setmealId = setmealDTO.getId(); + //删除套餐和菜品的关联关系,操作setmeal_dish表,执行delete + List ids = new ArrayList<>(); + ids.add(setmealId); + setmealDishMapper.deleteBySetmealId(ids); + List setmealDishes = setmealDTO.getSetmealDishes(); + setmealDishes.forEach(setmealDish -> { + setmealDish.setSetmealId(setmealId); + }); + //3、重新插入套餐和菜品的关联关系,操作setmeal_dish表,执行insert + setmealDishMapper.insertBatch(setmealDishes); + } } diff --git a/reggie_server/src/main/resources/mapper/SetmealMapper.xml b/reggie_server/src/main/resources/mapper/SetmealMapper.xml index 167c87f..5a1e6f1 100644 --- a/reggie_server/src/main/resources/mapper/SetmealMapper.xml +++ b/reggie_server/src/main/resources/mapper/SetmealMapper.xml @@ -86,5 +86,23 @@ + + + + + + + + + + + +