学习笔记-用户下单

需求分析和设计

-->用户点击餐品将其加入购物车页面其中

-->用户点击去结算按钮,小程序此时来跳转到对应的订单提交页面。用户对应的去选择下单地址

-->点击支付,小程序跳转到用户订单支付页面

-->付款成功,跳转到对应的下单成功页面

接口设计

对应返回数据:

下单时间,订单总金额,订单号,订单id

在用户下单之后,对应的小程序会对应的来跳转到订单支付页面,用户在这个页面其中来完成相应的付款操作

接口路径/user/order/submit

请求方式:post

功能:用户提交订单,通常包括用户选择的商品、数量、配送地址等信息。接口会接收这些信息并生成一个订单

请求参数

Header 参数

Content-Type : application/json

  • 这个参数告诉服务器请求体的格式是 JSON。因此,接口的请求体将使用 JSON 格式进行数据传输。

Body参数

对应的DTO对象数据

响应信息

code:状态码信息

data:响应的核心部分,包含了订单相关的详细信息

msg:提示信息

表设计

订单表orders

订单明细表order-detail

代码开发

controller

注意:

此处的订单操作属于用户端其中的操作,因此对应的controller对应的创建在user包下

-->@RestController=@Controller注解+@ResponseBody注解

@RestController("userOrderController")给容器组件起名,防止重名

-->@RequestMapping 注解

用来映射Http请求路径到对应的控制器的发或者类上

@RequestMapping("/user/order")表示这个类下所有的接口路径都以 /user/order开头

创建对应的用户下单函数方法,接受前端用户所传递过来的信息

Service

实现类其中来具体实现

由于用户下单,我们需要来操作订单表和订单明细表à因此此处我们需要在service实现类其中来注入对应的mapper表信息来供后续的操作

其中impl用户订单实现逻辑分析:

由于用户订单主要涉及到对应的两张表:

订单表(用户下单之后需要在订单表其中来插入一条数据)&

订单明细表(由于订单表和对应的订单明细表对应是一对多关系,因此对应的订单表其中一条数据对应的订单明细表其中可能对应多条数据)

订单提交之前,校验性工作(也就是处理一下业务的异常)

包括校验一下用户的地址是否有问题

购物车是否为空(用户下单成功之后,对应的清空购物车其中数据)

注意:

由于此处我们需要来操作地址簿信息,因此我们需要再此处来对应的添加AddressMapper信息,来进行操作地址簿表信息

也包括对应的添加AddressBookMapper来操作对应的购物车的mapper

只要用户下单了,我们就向订单表其中来插入一条数据

当对应没有异常抛出时,我们可以正常进行下单(也就是对应的购物车数据和对应的地址簿其中数据都不为空时)

首先我们需要先来根据前端所传递的数据来构建一个订单对象,通过订单对象再想对应的订单表其中来对应的插入一条数据即可 (由于需要向订单表其中来插入一条数据,那么我们就需要向其中来创建一个订单实体类向其中封装数据)

对应的下单了,对应的订单明细表其中也需要来对应的插入数据

向订单明细表其中来插入n条数据

拿到购物车其中的数据内容,遍历其中数据封装到对应的订单明细表其中去

提交订单之后,需要来清空当前用户的购物车数据

直接通过来调用shoppingCartMapper其中的通过id值来对应的删除用户其中的数据方法即可

封装返回结果VO对象给前端

后端处理好数据之后,封装VO对象给前端来进行实际返回即可

订单表OrderMapper,以及对应的订单明细OrderDetailMapper

对应的Mapper.xml文件其中具体来定义实际的insert插入方法

注意:

Insert Into orders 后面所跟的参数名称必须和对应的数据库表orders其中的字段名,其中的表结构所定义的字段一一对应。

以及对应的values后面所对应的#{}占位符其中必须来对应的是Java实体类Orders其中的属性名

orderDetailMapper订单明细Mapper

相关推荐
白猫不黑1 小时前
网络安全/信息安全专业学习路线与入行指南:从大学到岗位的完整规划
网络·学习·安全·web安全·网络安全·黑客技术
世人万千丶1 小时前
鸿蒙项目实战 - 社区活动编排板:标签云布局算法与自动换行
学习·算法·华为·harmonyos·鸿蒙
Wang's Blog2 小时前
PostgreSQL笔记36:执行计划基础解读与优化器成本模型
数据库·笔记·postgresql
u0103055272 小时前
昇腾AI赋能安卓智能助手
人工智能·笔记
Wang's Blog2 小时前
PostgreSQL笔记35:索引常见问题诊断与解决方案全景解析
数据库·笔记·postgresql
丰锋ff2 小时前
基于 Qt 的智慧社区物业管理系统学习过程
学习
小贺儿开发2 小时前
Unity 程序员编曲花絮:汪峰《河流》细节修复
科技·学习·unity·程序员·音乐·demo·写代码
其实防守也摸鱼3 小时前
Codex破局:前端组件秒级生成的技术文章大纲
开发语言·前端·人工智能·学习·安全·web安全
wuhuhuan3 小时前
【JMeter 学习打卡 Day 5】控制流程和节奏的利器
学习·jmeter
_Narcissus_3 小时前
枚举和模拟算法笔记
c语言·数据结构·c++·笔记·算法·模拟·枚举