10天完成民猫电商毕设——购物车实现2(9th day)

39 篇文章 20 订阅

1.加入购物车

这个功能我打算一步步讲解我的实现过程,希望能够形成一个实现需求的一般步骤
1. 准备接口
我们知道接口的目的是接收前端的参数或者没有参数,对数据库中的表进行CRUD
加入购物车,毫无疑问是一个增加记录的接口,增加记录能够成功的关键是前端能够将表中记录的必填项全部正确填写,这就是为什么在用户注册时,前端需要对用户填写的表单数据进行校验,这是为了提高数据插入的成功率,也就是用户注册的成功率,保证用户在点击注册后,一定能够注册成功。
好了,我们来分析一下要插入的数据表中哪些是必填项
在这里插入图片描述
我将这个表的所有字段都设置了不是null,也就是说全部必填,但是,有些我们可以安排数据库帮我们填,id设置数据库自增,createTime设置默认值为当前系统时间戳,status设置默认值为1,这样我们需要填的就只有cost,orderNo和userId,其中orderNo可以在插入数据库前由服务器程序实现(接口中插入数据库前调用工具类生成)
这样,前端必传的参数就只有cost,userId了,其实可以不传cost,传issueId,在后台可以根据issueId查询数据库得到对应的cost,不过我觉得这样不好,一个接口中有两次数据库操作,并且有一个也不是必须的,影响响应速率
好,到目前为止,我们已经确定了接口的入参是cost和userId了,那么下一个问题是接口返回结果是什么?
最基本的,我们应当返回接口的操作码code和操作信息message
在这里,插入成功后,我们需要返回一个订单ID,这是为了联系t_order_product表作为它的orderId外键,该表保存的是订单中商品的信息,
可以这样说:订单ID是联系订单实体与商品实体的桥梁。
分析完成,具体实现如下:
service层
在这里插入图片描述
controller层
在这里插入图片描述
接口测试结果
在这里插入图片描述

2. 组件获得接口返回数据
组件要使用接口,肯定要传参数和发请求
封装请求接口如下:
在这里插入图片描述
由于多个组件都要使用,我们将点击事件的回调函数设置为一个全局函数(注意取名不要与已有的挂载在Vue的属性和方法重名,这个对象上挂了好多东西,很容易重名)
main.js中挂载:
在这里插入图片描述
我们在组件中调用测试一下是否能够调用和传参是否成功:
在这里插入图片描述
控制台结果:
在这里插入图片描述

分别点击两个商品的加入购物车按钮,打印了它们的价格和发布者ID,这也正是我们后台实现加入购物车功能的接口所必需的两个参数
好了,发请求并打印返回数据:
在这里插入图片描述
结果报错:
在这里插入图片描述
在这里插入图片描述
请求体缺少可能原因有:没传参数或者传了参数但是后台匹配不上,后台它不是按照参数列表顺序进行匹配的,而是按照参数名进行匹配的,当然你可以用@RequestParam指定这种匹配
在后台我们发现入参为一个TProduct对象,修改为:
在这里插入图片描述
再次测试:
在这里插入图片描述
OK,加入购物车成功,我们将测试代码替换为一个友好的用户提示:
在这里插入图片描述
不过事情还远远没有结束,哈哈哈

  1. 将订单与商品联系起来
    订单里面是商品,我们现在只有订单,订单里面没有商品的信息,需要在创建订单成功后,将商品信息加入到订单中,或者说将两种联系起来,对于我们这种二手电商来说,这种订单与商品的联系是一对一的,联系的桥梁是订单ID,这就是为什么我们在创建订单后需要返回一个订单ID,根据这个我们可以将商品与这个订单ID一对一联系起来
    修改addToCart如下:
    在这里插入图片描述
    在这里插入图片描述
    为什么要增加一个商品ID参数?
    因为在商品与订单的联系联系表t_order_product中插入记录,必须要求商品ID和订单ID
    在这里插入图片描述
    测试打印结果如下:
    在这里插入图片描述
    好了,有了这两个参数,我们现在来设计插入接口:
    在这里插入图片描述
    经过测试,后台已经完全完成需求
    在这里插入图片描述

2.知识充电:Mybatis多表联查

在这里插入图片描述
越来越感觉mybatis-plus不能满足我的需求了,我需要再次把mybatis捡起来了
学习总结了一下:
mybatis学习总结

3.我的购物车中显示订单实现

接口设计:这个接口需要实现订单表,订单-商品联系表,商品表三表联查
获得订单编号,订单金额,订单状态,订单编号,商品名称,商品图片地址,商品交易方式,商品描述这些数据
首先根据用户的ID,查询出其拥有的所有订单,则用户与订单之间的关系为一对多的关系。对每个订单根据它的订单ID查询出它的商品ID,
再根据商品ID查询出商品名称,商品图片地址,商品交易方式,商品描述这些数据

参考文章:
resultMap的用法以及关联结果集映射

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值