【烘焙坊项目】后端搭建(7)- 套餐管理界面

一、新增套餐

1.1需求分析与设计

分析

套餐名必须唯一

套餐必须属于某个分类

套餐必须包含菜品

名称,分类,价格,图片为必填项

添加菜品窗口需要根据分类来展示菜品

新增的套餐默认为停售状态

接口设计:

根据类型查询分类✅

根据分类id查询菜品

图片上传✅

新增套餐

页面原型

接口文档

根据分类id查询菜品

新增套餐

1.2代码实现

根据分类id查询菜品

controller层

service层

dao层

新增套餐

controller层

service层

mapper层

插入套餐

保存套餐菜品关系

1.3功能测试

二、套餐分页查询

2.1需求分析与设计

接口文档

2.2代码实现

controller层

service层

dao层

2.3功能测试

三、删除套餐

3.1需求分析与设计

业务规则:

可以一次删除一个套餐,也可以一次删除多个套餐

起售中的菜品无法删除

查看接口文档

3.2代码实现

controller层

service层

dao层

3.3功能测试

四、修改套餐

4.1需求分析与设计

接口设计:

根据id查询套餐

根据类型查询分类✅

根据分类id查询菜品✅

图片上传✅

修改套餐

查看接口文档:

根据id查询套餐

修改套餐

4.2代码实现

根据id查询套餐

controller层

service层

dao层

步骤一:根据套餐id获取套餐信息

步骤二:根据套餐id获取菜品信息

修改套餐

controller层

service层

dao层

步骤一:更新套餐表

步骤二:删除关联表

步骤三:重新插入关联表

4.3功能测试

五、起售停售套餐

5.1需求分析与设计

需求分析:

若要将套餐改为起售先判断套餐相关菜品是否已全部起售

再修改套餐为起售

查看接口文档

5.2代码实现

controller层

service层

dao层

5.3功能测试

六、小结

编写SQL语句的时候有些细节没有注意到,比如setmeal表的name(s.name)直接写作了name,以及desc被写成了decs。下次在编写多表查询或较长SQL语句时,可以先使用控制台输出一下,检查一下再进行编写。不过好在已经能熟练看懂控制台报的什么错了,也算是锻炼到了吧。

编写启用禁用代码时想到了判断菜品是否起售就是想不到多表查询,当时考虑到了要根据前端传入的套餐id查菜品,甚至想到了用套餐id去套餐菜品关系表中先查关联的菜品id,再去菜品表里根据菜品id查询菜品状态,确保套餐启用时菜品都在起售状态。但是没有想到直接多表查询就好了

复制代码
select d.* from dish d left join setmeal_dish sd on d.id = sd.dish_id where sd.setmeal_id = #{setmealId}
相关推荐
Vcaker24 分钟前
Linux学习29-kubernetes网络
学习
SL_staff35 分钟前
别急着买商业规则引擎:90%风控场景根本不需要全量编码能力
java·程序员·groovy
ManageEngineITSM1 小时前
DevOps和ITIL是什么关系?是替代还是互补一文讲清
java·服务器·资产管理·变更管理
SL_staff2 小时前
ERP排程总在纸上谈兵?JVS-APS如何用真实产能约束打通计划与执行闭环
java·人工智能·开源
xcl09252 小时前
24小时自助健身房系统软件开发实战指南:从架构到部署
java·spring boot
码少女2 小时前
Linux--多路转接之select
java·服务器·数据库
nvvas3 小时前
Java 入门(四):数组——数据的集合管理
java·开发语言
dadaobusi3 小时前
学习:奈奎斯特
学习
Lambert2814 小时前
AgentScope Java 从零(07):官方有权限引擎,我却在工具里写了个 if
java·后端·ai编程
Kyrie_kk4 小时前
Java--ThreadLocal线程副本(一)
java·后端