发起售后退货
- 用户消费者,发起退货申请;
- 订单服务,操作本地数据库,记录售后数据,发送消息,退货申请,通知客服系统
- 客服服务,消费消息,插入售后工单,等待退货入库通知;
技术问题:订单记录售后数据与发送消息通知客服系统的强一致性问题,基于基于RocketMQ事务消息保证;
审核售后退货
- 客服服务,审核售后退货申请完成,通知订单服务更新售后数据
- 订单服务更新售后数据,发送消息,售后退货释放资产
技术问题:订单服务更新售后数据与”发送售后释放资产消息“的强一致性问题,基于基于RocketMQ事务消息保证;另外,关于实际执行退款处理,同样,需要基于RocketMQ事务消息保证释放优惠券的业务逻辑和执行退款的强一致性问题(需要思考一下,结合退款原理分析);
还有一个问题,考虑消费者撤销售后申请和审核售后退货的并发问题,分布式锁保证,先执行撤销逻辑,这个时候都已经收到用户的退货啦,还能怎么处理呢???
注意:目前针对单个订单条目进行退货处理;