订单分拆退单

BossService层的方法

  • backOrder(orderID,backOrderDetail);

    • 参数说明:

      • orderID 订单ID;
      • backOrderDetail 退菜明细,结构如下:

[{
dishID:10001,
num:1
},{
dishID:10002,
num:1
}]

* #### 处理逻辑:
1.往dishrefund表插入一条记录,需要生成退单的单号,用作支付退款时的外部业务号;
2.往dishrefundetail表插入一条记录,关联新建的dishrefund,实退菜金额的计算得考虑当天的优惠政策,计算工式:实退菜金额=订单实付金额/订单原金额*原退菜金额,场景:平台优惠政策:9.5折,商家优惠政策:9.7拆,订单金额:¥230,实付订单金额:¥225, 225/230*20 =实退菜金额;
3.往bill表插入一条记录,这里需要金额设置为负数,用来抵消原账号金额数;
4.往billdetail插入一条记录,关联新建的bill;
5.更新订单表的状态与明细表记录状态及退品数;
6.向支付平台退款服务申请退款,这里需要用到分批退款

* ### 时序图
  * #### 分拆退单
 ![订单分拆退单](http://upload-images.jianshu.io/upload_images/1637907-a4cf9eb47a2272a3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

 商户老板点退菜时,调用`BossService.backOrder`;

你可能感兴趣的:(订单分拆退单)