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`;