【电商项目】商品服务模块的问题解决与代码逻辑思考

一、启动报错(SQL问题)

有了之前的经验,现在我一眼就能锁定是哪里的问题了。由于报错繁长,所以就不粘贴报错信息了,而且本身发现是SQL问题之后,我就去看日志了。这里我让Claude梳理了整个查错思路,这样看也更清晰一些。

二、新增需求书写逻辑

大家先看一遍这段代码:

写这段代码的时候是这样介绍的:当我们的整个项目基本完工后,上头某天要求我们新增一个这个功能,让我们补充书写。

然后就在控制器类里写了如上的代码。当时观看过程中我是有些不理解的,为什么不用 构造 QueryWrapper 的方法写呢,因为之前一直用的那个方法,有点习惯了。当时也是太晚了脑子不转了,就睡了,第二天重新看代码的时候我想到了,这么写的原因:

项目已经写好了通用方法findProductType(ProductType productType),这个 Service 方法支持以实体类封装查询条件做条件检索。

我们虽可以直接在 Controller 中创建 QueryWrapper拼接条件实现查询,但开发规范约定:复杂查询逻辑禁止写在 Controller 层,统一下沉至 Service 层维护。

按照规范,若要想用QueryWrapper实现,就需要改动 Service 接口、新增 Service 抽象方法、改动 Mapper,这样多处改动不仅开发工作量大,还容易产生代码疏漏与 BUG。

最优方案 :直接复用已有的findProductType通用方法。Controller 仅负责接收前端参数、封装实体查询条件,直接调用成熟的 Service 方法,仅改动 Controller 单个文件,改动量最小,稳定性更高。

然后顺便捋一下这个代码逻辑:

前端 GET 请求传参父 ID→塞进实体作为查询条件→通用方法根据实体有值字段自动条件查询。

总结

总体比较顺利,晚安

相关推荐
Sarvartha13 小时前
final 关键字
java·开发语言
2601_9520477913 小时前
单一策略深度教程:用轻易云把集成任务的报错实时推送到钉钉机器人
java·机器人·钉钉
数据狐(Datafox)14 小时前
淘宝图片搜索 API 落地实战:基于以图搜货搭建跨境电商选品系统
java·大数据·微服务
Escalating_xu16 小时前
【C 语言】数据在内存中的存储:补码、大小端、整型陷阱与 IEEE 754 全解析
java·c语言·网络
灯澜忆梦16 小时前
【面向对象编程C++】| 基础语法
java·c++·算法
一个风轻云淡16 小时前
GCC 和 GDB命令简单解读
java·linux·前端
省钱兄--zs16 小时前
西安24小时自助健身房解决方案实战:系统开发与部署全流程指南
java·spring boot·系统架构·intellij-idea·需求分析
资料库0117 小时前
Linux 8个常见运维故障排查
java·linux·运维