实习项目|苍穹外卖|day4

作业

完成套餐管理模块所有业务功能,包括:

  • 新增套餐
  • 套餐分页查询
  • 删除套餐
  • 修改套餐
  • 起售停售套餐

要求:

  1. 根据产品原型进行需求分析,分析出业务规则
  2. 设计接口
  3. 梳理表之间的关系(分类表、菜品表、套餐表、口味表、套餐菜品关系表)
  4. 根据接口设计进行代码实现
  5. 分别通过swagger接口文档和前后端联调进行功能测试

新增套餐

1.根据原型进行需求分析与设计(接口文档)

最开始给的json里面有现成的接口信息,直接照做就好了。
看原型:设计选择菜品的接口(回显)
在这里插入图片描述
所以,这个需求要写两个接口,一个根据菜品分类回显,一个添加。

2.根据接口设计DTO

setmealDTO满足。

3.编码controller-》service-》mapper

根据菜品分类回显还是比较好实现的。
添加:两个表,一个是setmeal表(返回id),一个是setmeal_dish表(一次设置id,批量插入)。

    <insert id="insert" useGeneratedKeys="true" keyProperty="id">
        insert into setmeal (category_id, name, price, status, description, image, create_time, update_time, create_user, update_user)
        values (#{categoryId}, #{name}, #{price}, #{status}, #{description}, #{image}, #{createTime}, #{updateTime}, #{createUser}, #{updateUser})
    </insert>
    <insert id="insertBatch">
        insert into setmeal_dish (setmeal_id, dish_id, name, price, copies) VALUES
        <foreach collection="setmealDishes" item="smd" separator=",">
            (#{smd.setmealId}, #{smd.dishId}, #{smd.name}, #{smd.price}, #{smd.copies})
        </foreach>
    </insert>

回显的答案(用到了builder和考虑到只选择起售中的菜品显示)

public List<Dish> list(Long categoryId) {
    Dish dish = Dish.builder()
        .categoryId(categoryId)
        .status(StatusConstant.ENABLE)
        .build();
    return dishMapper.list(dish);
}
<select id="list" resultType="Dish" parameterType="Dish">
    select * from dish
    <where>
        <if test="name != null">
            and name like concat('%',#{name},'%')
        </if>
        <if test="categoryId != null">
            and category_id = #{categoryId}
        </if>
        <if test="status != null">
            and status = #{status}
        </if>
    </where>
    order by create_time desc
</select>

4.功能测试

Swagger接口测试+前后端联调

5.代码完善

6.commit 和 push

套餐分页查询

1.根据原型进行需求分析与设计(接口文档)

在这里插入图片描述

2.根据接口设计DTO

3.编码controller-》service-》mapper

比较常规的分页代码,用PageHelper

4.功能测试

Swagger接口测试+前后端联调

5.代码完善

6.commit 和 push

删除套餐

1.根据原型进行需求分析与设计(接口文档)

2.根据接口设计DTO

3.编码controller-》service-》mapper

主要的问题还是批量删除的动态编码。

4.功能测试

Swagger接口测试+前后端联调

5.代码完善

6.commit 和 push

修改套餐

1.根据原型进行需求分析与设计(接口文档)

首先肯定是回显,然后修改,(删除setmeal_dish,再新加)。

2.根据接口设计DTO

3.编码controller-》service-》mapper

@Transactional 忘记了事件

4.功能测试

Swagger接口测试+前后端联调

5.代码完善

6.commit 和 push

起售停售套餐

1.根据原型进行需求分析与设计(接口文档)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.根据接口设计DTO

3.编码controller-》service-》mapper

不确定的问题是throw的

答案:SetmealEnableFailedException(MessageConstant.SETMEAL_ENABLE_FAILED);

4.功能测试

Swagger接口测试+前后端联调

5.代码完善

6.commit 和 push

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值