毕设章学长 2023-05-25 13:18 采纳率: 33.3%
浏览 83
已结题

怎么阐述删除业务的逻辑

这是删除套餐的业务需求
在售的套餐不能删除
套餐内包含在售的商品不能删除
未勾选任何套餐是不能删除


```java
 @DeleteMapping
    @ApiOperation("批量删除套餐")
        public Result delete(@RequestParam List<Long> ids){
         log.info("批量删除套餐,{}",ids);
         setmealService.deleteBatch(ids);
         return Result.success();
}

void deleteBatch(List ids);

```java
 @Override
    public void deleteBatch(List<Long> ids) {
        for (Long id : ids) {
            //在售套餐不能删除
            Setmeal setmeal = setmealMapper.getById(id);
            if (setmeal.getStatus()==StatusConstant.ENABLE){
                //当前商品不能删除
                throw new DeletionNotAllowedException(MessageConstant.SETMEAL_ON_SALE);
            }
        }
        for (Long id : ids) {
            setmealMapper.deleteId(id);
            setmealDishMapper.delete(id);
        }
    }

这是代码怎么阐述业务逻辑,尽量不提代码只阐述逻辑

  • 写回答

5条回答 默认 最新

  • PhoenixRiser 2023-05-25 13:25
    关注

    TechWhizKid参考GPT回答:


    • 当需要批量删除套餐时,系统首先接收到一个由套餐ID构成的列表。
    • 然后,系统对这个列表中的每个套餐ID进行循环处理。
    • 在每次循环中,系统首先通过套餐ID获取到对应的套餐信息。然后,系统检查该套餐的状态。如果套餐的状态是"启用",也就是说该套餐正在销售,系统就不允许删除这个套餐,会抛出一个不允许删除的异常。
    • 完成所有的状态检查后,如果没有任何异常被抛出,也就是说所有要删除的套餐都不在销售,系统则进入第二个循环。在这个循环中,系统会通过套餐ID删除套餐,以及与套餐关联的菜品。
    • 至此,批量删除套餐的逻辑就完成了。但这个逻辑中并没有包含"套餐内包含在售的商品不能删除"和"未勾选任何套餐是不能删除"这两个需求。如果需要加入这两个需求,需要对业务逻辑做相应的修改或扩展。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 6月3日
  • 已采纳回答 5月26日
  • 创建了问题 5月25日