type
status
date
slug
summary
tags
category
icon
password
项目来源:
【黑马程序员 Java项目实战《苍穹外卖》】
@ZZHow(ZZHow1024)
公共字段自动填充
- 问题分析
- 业务表中存在公共字段:
- 问题:代码冗余,不便于后期维护。
序号 | 字段名 | 含义 | 数据类型 | 操作类型 |
1 | create_time | 创建时间 | datetime | insert |
2 | create_user | 创建人id | bigint | insert |
3 | update_time | 修改时间 | datetime | insert、update |
4 | update_user | 修改人id | bigint | insert、update |
- 实现思路
- 思路:
- 自定义注解 AutoFill,用于标识需要进行公共字段自动填充的方法。
- 自定义切面类 AutoFillAspect,统一拦截加入了 AutoFill 注解的方法,通过反射为公共字段赋值。
- 在 Mapper 的方法上加入 AutoFill 注解。
- 技术点:枚举、注解、AOP 和 反射。
新增菜品
- 需求分析和设计
- 业务规则:
- 菜品名称必须是唯一的。
- 莱品必须属于某个分类下,不能单独存在。
- 新增菜品时可以根据情况选择菜品的口味。
- 每个菜品必须对应一张图片。
- 接口设计:
- 根据类型查询分类。
- Path:/admin/category/list
- Method:GET
- 文件上传。
- Path:/admin/common/upload
- Method:POST
- 新增菜品。
- Path:/admin/dish
- Method:POST
菜品分页查询
- 需求分析和设计
- 业务规则:
- 根据页码展示菜品信息。
- 每页展示 10 条数据。
- 分页查询时可以根据需要输入菜品名称、菜品分类、菜品状态进行查询。
- 接口设计:
- Path:/admin/dish/page
- Method:GET
删除菜品
- 需求分析和设计
- 业务规则:
- 可以一次删除一个菜品,也可以批量删除菜品。
- 起售中的菜品不能删除。
- 被套餐关联的菜品不能删除。
- 删除菜品后,关联的口味数据也需要删除掉。
- 接口设计:
- Path:/admin/dish
- Method:Delete
修改菜品
- 需求分析和设计
- 接口设计:
- 根据 ID 查询菜品
- Path:/admin/dish/{id}
- Method:GET
- 根据类型查询分类(已实现)
- 文件上传(已实现)
- 修改菜品
- Path:/admin/dish
- Method:PUT
起售停售菜品
- 需求分析和设计
- 业务规则:
- 可以对状态为“起售”的菜品进行“停售”操作。
- 可以对状态为“停售”的菜品进行“起售”操作。
- 接口设计:
- Path:/admin/dish/status/{status}
- Method:POST
- 代码开发
- 根据接口文档进行开发。
开发套餐管理模块功能
- 代码开发
- 此业务模块与上一部分(菜品管理业务)模块实现类似。