做防水施工 上什么网站找,公司网站怎么弄,wordpress中文框架,wordpress获取json内容目录
删除套餐
需求分析和设计
代码开发
根据id查询套餐
mapper层
Service层
ServiceImpl层
Mapper层
批量删除套餐
mapper层
Service层
ServiceImpl层
Mapper层 SetmealMapper.xml
修改套餐
需求分析和设计
代码开发
起售停售套餐
需求分析和设计
代码开发…
目录
删除套餐
需求分析和设计
代码开发
根据id查询套餐
mapper层
Service层
ServiceImpl层
Mapper层
批量删除套餐
mapper层
Service层
ServiceImpl层
Mapper层 SetmealMapper.xml
修改套餐
需求分析和设计
代码开发
起售停售套餐
需求分析和设计
代码开发 1--苍穹外卖-SpringBoot项目介绍及环境搭建 详解-CSDN博客
2--苍穹外卖-SpringBoot项目中员工管理 详解一-CSDN博客
3--苍穹外卖-SpringBoot项目中员工管理 详解二-CSDN博客
4--苍穹外码-SpringBoot项目中分类管理 详解-CSDN博客
5--苍穹外卖-SpringBoot项目中菜品管理 详解一-CSDN博客
6--苍穹外卖-SpringBoot项目中菜品管理 详解二-CSDN博客
7--苍穹外卖-SpringBoot项目中套餐管理 详解一-CSDN博客
8--苍穹外卖-SpringBoot项目中套餐管理 详解二-CSDN博客
9--苍穹外卖-SpringBoot项目中Redis的介绍及其使用实例 详解-CSDN博客
10--苍穹外卖-SpringBoot项目中微信登录 详解-CSDN博客
删除套餐
需求分析和设计
业务规则 可以一次删除一个套餐也可以批量删除套餐 起售中的套餐不能删除 删除套餐后菜品的关联数据也需要删除掉 代码开发
根据id查询套餐
mapper层 //根据id查询套餐GetMapping(/{id})ApiOperation(根据id查询套餐)public ResultSetmealVO getById(PathVariable Long id){log.info(根据id查询套餐{},id);SetmealVO setmealVOsetmealService.getByIdWithDish(id);return Result.success(setmealVO);}
Service层 //根据id查询套餐SetmealVO getByIdWithDish(Long id);
ServiceImpl层
//根据id查询套餐Overridepublic SetmealVO getByIdWithDish(Long id) {Setmeal setmealsetmealMapper.getById(id);ListSetmealDish setmealDishessetmealDishMapper.getDishId(id);SetmealVO setmealVO new SetmealVO();BeanUtils.copyProperties(setmeal,setmealVO);setmealVO.setSetmealDishes(setmealDishes);return setmealVO;}
Mapper层
//根据id查询套餐Select(select *from setmeal where id#{id})Setmeal getById(Long id); //根据id查询对应的菜品数据Select(select *from setmeal_dish where setmeal_id#{dishId})ListSetmealDish getDishId(Long dishId);
批量删除套餐
mapper层
//批量删除套餐DeleteMappingApiOperation(批量删除套餐)public ResultString delete(RequestParam ListLong ids){log.info(批量删除套餐{},ids);setmealService.deleteBatch(ids);return Result.success();}
Service层
//批量删除套餐void deleteBatch(ListLong ids);
ServiceImpl层
//批量删除套餐OverrideTransactionalpublic void deleteBatch(ListLong ids) {for (Long id:ids){Setmeal setmealsetmealMapper.getById(id);if (Objects.equals(setmeal.getStatus(), StatusConstant.ENABLE)) {throw new DeletionNotAllowedException(MessageConstant.SETMEAL_ON_SALE);}}setmealMapper.deleteByIds(ids);setmealMapper.deleteByDishIds(ids);}
Mapper层 //根据id集合批量删除套餐数据void deleteByIds(ListLong ids);//根据id集合批量删除套餐关联的菜品数据void deleteByDishIds(ListLong ids); SetmealMapper.xml
delete iddeleteByIds
delete from setmeal where id inforeach collectionids open( separator, close) itemid#{id}/foreach/deletedelete iddeleteByDishIdsdelete from setmeal_dish where setmeal_id in foreach collectiondishIds open( close) separator, itemdishId#{dishId}/foreach/delete
修改套餐
需求分析和设计 代码开发
Controller层
//修改套餐PutMappingApiOperation(修改套餐)public ResultString update(RequestBody SetmealDTO setmealDTO){log.info(修改套餐{},setmealDTO);setmealService.update(setmealDTO);return Result.success();}
Service层 //修改套餐void update(SetmealDTO setmealDTO);
ServiceImpl层
//修改套餐Overridepublic void update(SetmealDTO setmealDTO) {Setmeal setmeal new Setmeal();BeanUtils.copyProperties(setmealDTO,setmeal);setmealMapper.update(setmeal);setmealDishMapper.deleteByDishId(setmealDTO.getId());ListSetmealDish setmealDishes setmealDTO.getSetmealDishes();if(setmealDishes!null!setmealDishes.isEmpty()){setmealDishes.forEach(setmealDish - {setmealDish.setSetmealId(setmealDTO.getId());});setmealDishMapper.insertBatch(setmealDishes);}}
Mapper层
//根据id动态修改套餐数据AutoFill(value OperationType.UPDATE)void update(Setmeal setmeal); //根据套餐id删除对应的菜品数据Delete(delete from setmeal_dish where setmeal_id#{dishId})void deleteByDishId(Long dishId);
SetmealMapper.xml update idupdateupdate dishsetif testname!nullname#{name},/ifif testcategoryId!nullcategory_id#{categoryId},/ifif testprice!nullprice#{price},/ifif testimage!nullimage#{image},/ifif testdescription!nulldescription#{description},/ifif teststatus!nullstatus#{status},/ifif testupdateTime!nullupdate_time#{updateTime},/ifif testupdateUser!nullupdate_user#{updateUser},/if/setwhere id#{id}/update
起售停售套餐
需求分析和设计
业务规则
可以对状态为“启售” 的套餐进行“停售”操作可以对状态为“停售”的套餐进行“启售”操作状态为“停售”的套餐不在前台展示 代码开发
Controller层 //起售禁售套餐PostMapping(/status/{status})ApiOperation(起售禁售套餐)public ResultString startOrStop(PathVariable Integer status,Long id){log.info(起售禁售套餐{}{},status,id);setmealService.startOrStop(status,id);return Result.success();}
Service层 //起售禁售套餐void startOrStop(Integer status, Long id);
ServiceImpl层 //起售禁售套餐Overridepublic void startOrStop(Integer status, Long id) {Setmeal setmeal Setmeal.builder().status(status).id(id).build();setmealMapper.update(setmeal);}