当前位置: 首页 > news >正文

【 苍穹外卖学习日记 |day02】

🌈个人主页:一条泥憨鱼(欢迎各位大佬莅临)

🎬精选专栏:数据结构与算法,JavaSE ,苍穹外卖日记,AI学习

产品原型:

员工账号唯一,手机号合法11位,身份证合法18位,密码默认123456


接口设计:

本项目约定:
管理端发出的请求统一使用/admin作为前缀
用户端发出的请求统一使用/user作为前缀

前端提交的数据和实体类中对应的属性差别较大时,用DTO封装数据

java.io.Serializable是 Java 中的一个标记接口(空接口,没有任何方法),它的核心作用是:让一个类的对象支持 序列化 和 反序列化

  • 序列化:把内存中的 Java 对象转换成字节流(可以存文件、发网络、存数据库)
  • 反序列化:把字节流还原回内存中的 Java 对象

简单说:Serializable = 允许对象被 “保存 / 传输”

一般采用接口文档进行功能测试

先让项目运行起来,然后在浏览器进入接口文档

要进行新增员工,先在员工登录界面发送请求,获取token令牌,复制获得的令牌,去到新增员工界面

将token放到请求头中,选择head类型,在请求参数中设置员工信息

发送请求,可回到数据库employee表中检查是否添加成功

坑点:

字段与value的个数应当相同

新增员工爆500时可能就是因为我字段和value个数不同,前面是爆401,应该是token过期了,重新设置了一下

此时可以在前端界面添加员工

代码完善:

存在的问题1:录入的用户名已存在,抛出异常后没有处理

在接口文档新增已存在的员工,状态码为500,回到idea中发现有异常

我们可以在异常处理器中进行操作(注释内为异常的关键信息,我们下面取字段‘zhangsan’),在有异常的情况下,如果异常字段包含duplicate entry,则说明添加重复了,在前端返回已存在,如果不包含,则是其他未知错误

此时再去接口文档新增员工,就会看到返回的字段,响应码也变成了200,说明操作没有问题

存在的问题2:新增员工时,创建人id和修改人id设置为了固定值

此时我们就需要通过某种方式动态获取当前登录员工的id

后续请求中,前端会携带jwt令牌,通过jwt令牌解析出当前员工登录id,但是我们该如何把id传递给Server的save方法?

threadlocal:并不是一个THREAD,而是他的局部变量,为每个线程提供单独的空间,且具有隔离的效果,只有在线程内才能获取到对应的值

在save方法里面我们调用相关方法就可以解决了

员工的分页查询:

需求分析和设计

路径为admin前缀,请求方法用get方法。

注意,这里的请求参数并不是json格式,而是query格式

对比维度DTO(Data Transfer Object)VO(View Object)
数据流向前端->后端后端->前端
核心用途接受请求参数响应页面展示
对应数据库和表无关和表无关
例子登录参数DTO,下单参数DTO订单详情VO,员工列表VO
敏感处理接收明文密码绝不返回密码

完整流程:

1.前端页面输入账号密码,封装成DTO传给后端

2.Controller接收DTO,传给Service层处理登录

3.Service层查数据库,拿到员工数据

4.后端把员工数据过滤并封装成VO

5.VO返回给前端,页面渲染展示员工信息

在本项目中后端返回给前端的数据都是result类型,所以在分页查询中统一封装成pageresult对象

total和records与上图的data中的数据可对应起来

查看apifox中的接口文档

controller层中的代码设计

在service层中的代码设计

这里用到了pagehelper插件

选中方法名按住Ctrl+回车,点击select,就会在xml文件中自动创建sql语句

接着编写动态sql语句

对其他地方进行优化

Serializable接口

  • 这是序列化接口
  • 作用:让这个对象可以被网络传输、缓存、存储
  • 企业项目里DTO、实体类都必须加

我们在接口文档中进行测试时,返回的日期类似于数组格式,我们可以对其进行代码优化

推荐使用方法二:“一劳永逸”

启用和禁用员工账号:

请求方法为post,{status}为路径参数,传入id为query类型

老规矩,先在controller层中进行操作,后续对爆红行Alt+回车去service层中实现

接口文档中的路径,直接复制过去

impl中的快捷实现

编辑员工

根据id查询员工信息:

是查询,所以为get方法

编辑员工信息:

为修改操作,所以方法为put

code必须返回,1成功,0失败

老规矩,先在controller层操作,alt回车进到service层中进行方法扩展

接着去impl实现类把这个方法实现

Alt+回车把方法扩展在mapper之中

由于操作比较简单,可以直接在注解写死sql语句,所以不用再对xml文件进行操作

查询完了,进行修改

以下是前端传过来的参数信息。controller方法编写时传递DTO参数

接着去到service,impl层扩展方法

附:xml文件中之前写好的update方法

impl中的扩展

至此,修改的代码已经开发完毕

后续测试使用swagger接口测试或者前后端联调测试

导入分类管理功能代码

业务规则:

1.分类名称必须是唯一

2.分类按照类型可以分为菜品分类套餐分类

3.新添加的分类状态默认为“禁用

接下来导入代码,从Mapper层开始导入可以防止代码报错

day02,至此结束。

今天的学习就暂时告一段落啦,如果文章对您有用的话,还请留下一个免费的小心心和关注哦!

祝您工作顺利,生活愉快。我们下期再见!

http://www.jsqmd.com/news/897917/

相关文章:

  • 基于vTPM与动态测量的可信IaaS平台架构设计与实践
  • 金价冲高回落别慌!杭州黄金回收哪家强?琳弘湾奢侈品黄金回收店亲测报告来了 - 润富黄金珠宝行
  • 解锁B站宝藏:用Python脚本把心仪视频永久珍藏
  • 华硕笔记本终极控制指南:用GHelper告别Armoury Crate的臃肿烦恼
  • Java虚拟线程实战:从线程池痛点到性能优化全流程
  • 对比直接采购,taotoken的tokenplan套餐为我们节省了多少成本
  • 终结Mac与Windows的文件壁垒:Free-NTFS-for-Mac全攻略
  • AI数字营销:热点追踪,高效产出和智能推广
  • 昇腾NPU硬件优化:让Qwen2.5-0.5B-Instruct发挥最大性能的10个技巧
  • 基于TinyML的RIS智能波束赋形:MCU端侧部署全链路实践
  • 2026上半年长沙二手叉车商户TOP5权威评测榜 - 资讯速览
  • 5个实用技巧:使用PvZ Toolkit提升植物大战僵尸游戏体验
  • ECMWF革命性AI天气预报系统AIFS Single v2.0深度解析:15天全球预测核心技术揭秘
  • 别再拍脑袋做功能了!一套科学的App开发流程,帮你省下几十万
  • 二、LangChain之认识嵌入式模型
  • 物理层安全:MIO方案如何利用符号混淆实现无线通信信息论安全
  • 观察使用 Taotoken Token Plan 套餐后月度 API 成本的变化趋势
  • 重庆石材批发避坑指南!2026年八大实力派厂家实测,工程采购必看 - 传粉科技
  • 为Hermes Agent配置自定义Provider并指向Taotoken
  • 3分钟掌握Mobox触控控制:Input Bridge手势映射完全指南
  • 嵌入式视觉DNN模型选型实战:基于加权FoM的量化评估方法
  • Bloom-1b7提示词工程指南:从基础问答到创意写作的10个实用技巧
  • 超宽带PLL环路增益补偿:基于PFD增益调制驯服毫米波频率合成器
  • 深度解析:FactoryBluePrints如何构建戴森球计划最高效工厂蓝图库
  • SMPL-X:统一参数化人体模型的技术实现与应用
  • 2026羧甲基纤维素/羟乙基纤维素厂家实力排行盘点 推荐任丘市双成化工产品厂 - 奔跑123
  • 多智能体系统与IEC 61850融合:构建智能电网分布式大脑与神经
  • 天津雅思报班选哪个机构?2026靠谱择校指南,首选超级学长 - 大喷菇123
  • 小米2026年Q1营收利润双降,200亿回购+AI重构生态能否破局?
  • 物联网安全新范式:混合信誉模型原理、算法与工程实践