【苍穹外卖笔记】第四天内容

发布时间:2026/9/14 20:11:14

【苍穹外卖笔记】第四天内容 一、课程内容预览自主完成套餐相关全部接口开发修复根据分类id查询菜品的Bug额外二、笔记第四天的内容没有视频资源需要我们使用之前学习到的知识自主地完成套餐相关全部接口的开发这部分需要各位手操完成只是在完成这部分时在最后的测试阶段我发现了一个业务代码存在的bug所以想在这里写下我修改bug的历程/** * 根据分类id查询菜品 * param categoryId * return */GetMapping(/list)ApiOperation(根据分类id查询菜品)publicResultListDishlist(LongcategoryId){ListDishlistdishService.list(categoryId);returnResult.success(list);}这个是我们原本设计的接口这个接口的作用是在添加和修改套餐时用于快速定位想要添加入套餐的菜品而使用的但是最后前后端联调测试的时候我发现前端按照分类查询各个菜品的功能完全正常不正常的时右上角按照菜品名查询菜品的功能我仔细研读了前端代码后发现这个功能会把name属性发送到/admin/dish/list而这个路径正是上面根据分类id查询菜品接口接收数据的请求路径但是这个接口只接收categoryId一种数据所以name无法传递过来自然使得按照菜品名查询的功能失效。这个时候我试图在同一个请求路径下写两个不同的接口接收数据/** * 根据菜品名字查询菜品 * param name * return */GetMapping(/list)ApiOperation(根据菜品名字查询菜品)publicResultListDishgetByName(RequestParamStringname){log.info(根据菜品名字查询菜品:{},name);ListDishdishsdishService.getByName(name);returnResult.success(dishs);}但是这又导致了另一个严重的bug两个接口请求路径完全相同请求方式也一样Spring 无法区分启动直接报错。所以我采用了重构这个接口的方法解决问题/** * 根据输入信息查询菜品 * param categoryId * return */GetMapping(/list)ApiOperation(根据输入信息查询菜品)publicResultListDishgetByCategoryIdOrName(LongcategoryId,Stringname){log.info(根据输入信息查询菜品:{},categoryId,name);ListDishdishsdishService.list(categoryId,name);returnResult.success(dishs);}使其同时接收两种数据同时重构了实现类/** * 根据分类id查询菜品 * param categoryId * return */OverridepublicListDishlist(LongcategoryId,Stringname){DishdishDish.builder().categoryId(categoryId).name(name).status(StatusConstant.ENABLE).build();returndishMapper.list(dish);}使其可以灵活适应这种变化这样修改后就没有错误了前端的分类查询菜品和搜索名称查询菜品都可以正常使用。三、结语这一天的内容虽然没有视频资源但却是我前几天学习所有内容的总结让我能够及时把刚学会的知识转化到项目编写上算是一次不错的经验积累。
延伸阅读

更多相关文章

2026/9/10 18:10:18

Vulkan进阶系列20 - Vulkan 1.0 API 一览

分类 API 作用 Physical Device 查询 vkEnumeratePhysicalDevices 枚举系统里的 GPU vkGetPhysicalDeviceFeatures 查询 GPU 支持哪些功能(几何着色器、各向异性过滤等) vkGetPhysicalDeviceProperties 查询 GPU 基本信息(型号、版本、限制参数) vkGetPhysicalDeviceFormat…

2026/9/10 18:53:08

AI论文写作工具哪家强?多款主流平台深度对比与评测

一、毕业党的论文困境:AI论文工具是解药还是鸡肋? 每年毕业季,无数毕业生都在为“写不完的论文”头疼——选题换了又换,大纲改了又改,好不容易憋出正文,一查重30%以上,参考文献还是AI论文工具瞎…

2026/9/14 20:10:26

Mypyc 入门指南:将带类型注解的 Python 模块编译为 C 扩展

Mypyc 入门指南:将带类型注解的 Python 模块编译为 C 扩展 【免费下载链接】flipperzero-firmware Flipper Zero firmware source code 项目地址: https://gitcode.com/GitHub_Trending/fl/flipperzero-firmware 导读 本文基于 mypyc 官方文档 getting_star…

2026/9/14 20:10:26

软件测试入门指南:核心价值与工程师成长路径

1. 测试入门基础认知刚接触测试工作的新人常常会感到迷茫——测试到底是做什么的?为什么需要专门的测试人员?这个看似简单的问题背后,其实包含着软件质量保障体系的完整逻辑。作为从业十年的测试专家,我想用最直白的语言带大家认识…

2026/9/14 20:05:23

DarkHole1:基于Web Components的暗色主题组件库开发实践

1. 项目背景与目标DarkHole1这个项目名称让我联想到一个与HTML相关的网页开发工具或框架。从名称中的"Dark"可以推测这可能是一个暗色主题的网页组件库,而"Hole"则暗示着某种容器或入口功能。结合MDN Web Docs提供的HTML技术文档,我…

2026/9/14 2:17:50

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/14 0:03:22

KCF目标跟踪算法与OTB工程实现:毕业设计实战解析

简介:这是一份基于KCF核相关滤波算法、融合尺度池与抗遮挡处理的目标检测跟踪MATLAB完整源码,主要面向计算机相关专业准备毕业设计、课程设计或期末大作业的学生,也适合需要项目实战练习的初学者。源码在OTB数据集上完成验证,能够…

2026/9/14 0:03:22

语音情感识别实战:Keras实现LSTM、CNN、SVM与MLP多模型对比

简介:面向语音情感识别入门与进阶开发者,这份基于Keras的项目源码完整实现了LSTM、CNN、SVM、MLP四种模型,兼容Python3.8与Keras/TensorFlow2环境。压缩包内含49个文件,大小约70.31MB,主体包括Python脚本、yaml/json配…

2026/9/14 11:59:31

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/14 13:53:59

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/14 11:22:57

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码