开发者学堂课程【全面讲解开源数据库中间件 MyCat 使用及原理(四):MyCat - 订单模块 - 提交订单业务分析】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/758/detail/13318
MyCat - 订单模块 - 提交订单业务分析
前言:
由于下单的业务涉及到的模块较多所以并不去实现此模块。但是可以在这里去分析下单模块业务。
一、时序图
如图所示:
此图描述了下单流程,当用户在前端提交了订单它会将我们在页面上选择的信息通过请求会传递到订单微服务。
到达订单微服务后,订单微服务接收到页面传递过来的订单信息会去组装订单数据。
注意:订单微服务组装的信息有当前提交订单的数据有哪些、计算当前提交的订单涉及到的总数量总金额、补充当前的状态信息,比如评价的状态,支付的状态,发货的状态,订单的状态。
完成后就可以将订单信息以及订单明细信息直接插入到订单 MySQL 数据库当中,插入的信息既包含订单的信息、明细的信息还包含订单日志的信息也需要订单日志的信息插入到其数据库当中,插入到数据库之后,数据库会通过订单微服务调用商品微服务作用是减商品的库存。
用户提交了多少商品,多少件就需要减掉对应的商品库存,之后会给前端反映成功的结果。
二、创建 OrderController
生成注解 RestController 和 RequestMapping("/order")。
public class ordercontroller{
声明方法并提交订单数据 Tborder。
public Result add(Tborder order){
添加注解 PostMapping。
public Result add Tborder order){
由于页面提交过来的数据都是 Json 格式所以需要加一个注解 RequestBody。
public Result add(RequestBody Tborder order){
为了让此程序不报错,添加 return new Result(flag:true,Statuscode.ok,message:“提交成功“结果。
1、编写 service 接口
生成接口 orderservice。如图:
在此接口声明方法提交订单的方法并用返回代码 void。
2、编写 service 实现类
新建实现类 OrderServicelmpl。如图:
并且在此实现类当中实现 orderService 接口,并加 Service 注解。
public class OrderServiceImpl implements OrderService{)
在 orderService 接口中声明 add 方法。
public void add(Tborder order){
//1获取购物车中的商品数据信息
//2统计计算(计算总商品的数量、总金额)
//3组装订单数据信息并保存订单、
//4组装订单明细信息并保存对应的订单明细、
//5保存订单日志信息、
//6调用商品微服务扣减库存(给用户增加优惠积分)、
//7删除商品购物车中商品数据。
之后在 Controller 中注入 orderService 并注解 Autowired。
private OrderService orderService;
之后在 Controller 中调用 orderService 并调用方法 add(order)。
public Result add(RequestBody Tborder order){
orderservice. add (order);



