【线上商场】结算页面接口

后端笔记

各个文件的作用

  • Configuration:包含了数据库的配置,mybatis的配置和TransactionManagement的配置。配置一次之后,写其他接口时不需要再次配置。
  • Controller:接收前端传过来的数据,并将处理好之后的输出返回给前端。是和前端直接交互的文件。可以在这里做一些简单的判断。
  • Dao:定义操作数据库的函数,主要还是增删改查。
  • Entity:把数据库中的属性拿过来变成后端中的数据类型,以便其他文件对这些属性进行调用。
  • Service:对数据进行除了与数据库交互部分的其他处理,比如加减乘除计算总价,或者对前端传过来的数据进行一些处理,使之适合在数据库中进行操作。包含GoodsService和对应的GoodsServiceImpl,其中GoodsService用于函数声明,GoodsServiceImpl用于函数实现。
    对前端传过来的数据进行预处理,然后调用dao中的函数,将处理好的数据传入,获取函数返回值。同时进行一些异常处理。
  • Mapper:具体的SQL语句。
  • 这里还有一个bean:创建对象的初始化方法。

数据从前端到后端的整个路线

【线上商场】结算页面接口_第1张图片

用test测试之前代码的正确性

  • 不要用IDEA里面的test了,可以直接用postman去测试,这样比较方便,不用自己写代码。
  • 同时可以关注一下如何边运行边调试,定位错误。之前的视频中应该有讲到。
  • 要关注log信息。

需求:在“结算”页面点击“提交订单”后,向后端发送当前商品ID、数量和相关属性,在订单表格插入一条记录。同时后端应该根据订单去操作数据库,改变用户的爱心豆和优惠券。操作结束后返回成功或者失败的log信息。前端应该根据返回信息渲染end.wpy。

整体逻辑:前端传入用户token和order表格中的所有信息(包括使用的爱心豆数目和使用的优惠券编号)。后端先去操作订单表格,插入一条订单记录;然后去操作用户表格,更新该用户的爱心豆属性;再去操作user_coupons表格,更新该用户的优惠券属性;最后是SKU表格,更新其中的库存和销售量。这四步操作按理来说应该是原子操作,一个不成功则全部不成功。

  • 网址:/demo/index/generateOrder
  • 方法:get
  • 输入:用户token、order表格中的所有信息、用户使用的优惠券编号(一般是一张优惠券)
  • 操作:在订单表格插入一条记录;更新用户表格中的coupon和爱心豆属性。
  • 输出:向前端返回success or fail信息。

问题

  • 写的时候从底层往上写。
  • mapper里面数据库的表格的名字在哪里定义?==》就是按照数据库中的表格名字来的。
  • user的mapper没写完。==》update
  • 四步操作分别对不同的表格进行了更改,要如何完成这四步更改?==》源自行,把他们当成一个**“事务”**看待。@transactional
  • 前端传过来的数据类型如何判断?
    • new一个对象,把这些数据的内容赋值赋过去。
    • 用@RequestBody接受json格式的数据:参考链接。

本地分支与远程分支

  • 本地可以建两个分支
  • 先确保master分支和远程master分支保持一致:git pull master origin master
  • 切换到自己的分支进行修改,然后commit。
  • 先在本地合并分支:git merge master
  • 再上传。

你可能感兴趣的:(线上商场,java)