开发者学堂课程【RocketMQ 知识精讲与项目实战(第二阶段):下单接口定义和编码步骤分析】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/703/detail/12410
下单接口定义和编码步骤分析
内容介绍:
一、接口定义
二、总结
一、接口定义
整个接口会定义到 shop-api 这个项目当中,在这里面去定义一个接口,叫做 IOrderService,
这个接口当中提供一个方法,而这个方法的业务非常简单,就是用来确认订单的(订单系统通过接口调用订单服务),然后编写一个 Result-comfirmOrder,它接收一个参数,这个参数是在外部层提交过来的订单对象,之后把这个订单对象传递过来,然后在这里边完成下单业务之后去给客户端做一个响应,在处理完之后返回一个结果,将这个结果封装到 result 当中,这就是分析的通用的响应的一个类。在服务层处理完业务之后,将这个处理的结果封装到 result 对象当中,这是整个一个下单的接口。
接下来到 order-service 当中去创建一个 order 一个实现类 OrderServicelmpl 去实现所定义的接口,在 return null 去完成整个业务。
整个业务分析要做六件事情,将来这个方法如果全部都写在一个方法当中,那么这个方法将来会变得非常庞大,所以在这个地方将每一个步骤都抽取成子方法,统一完成调用。基本上流程都是和时序图是一样的。
第一步是校验订单;
第二步是生成预订单;
第三步是扣减库存;
第四步是扣减优惠券;
第五步是使用余额;
第六步是确认订单;
把上里的整个代码结构进行分析,先去返回一个 null ,服务层接收到这个下单的请求之后首先校验订单,再进行一个生成预订单的操作,图下这几步正式扣减库存、扣减优惠券,再使用余额确认订单,要保证扣减库存、扣减优惠券、使用余额、确认订单返回成功状态这几步原则性,也就是说这几步如果要成功那么全部都成功,如果有一个失败整个的这几步全部都要回退,所以把是这几步放到一个 try case 里面去,如果这里面它出现了异常,那么程序进入 catch 里面,在 catch 里面完成失败补偿机制,在这里边发送消息,去返回一个当前确认订单失败的信息,整个代码的结构就是这样。
接下来要一步一步去实现,而关于整个下单的大体框架
第一步是确认订单失败,发送消息;
第二步是返回失败状态。
二、总结
P
ublic interface IOrderService
/**
*确认订单
*@param order
*return Result
*/
Result confirmorder(TradeOrder order);
定义一个接口,这个接口当中需要去接收一个 order 对象,也就是客户端需要下单,把下单的 order 对象的需要去传递过来,那么在业务层整个步骤去完成下单的一个处理。
现在先去完成正常下单成功的,再去完成 catch。