+ RemoveSkuFromOrder

+ 美团配送调整消息正确更新订单信息
This commit is contained in:
gazebo
2019-05-01 13:38:41 +08:00
parent 3591e00636
commit c43750f2f4
3 changed files with 66 additions and 25 deletions

View File

@@ -330,27 +330,13 @@ func (c *PurchaseHandler) CancelOrder(ctx *jxcontext.Context, order *model.Goods
}
func (c *PurchaseHandler) AdjustOrder(ctx *jxcontext.Context, order *model.GoodsOrder, removedSkuList []*model.OrderSku, reason string) (err error) {
removedSkuMap := make(map[int]*model.OrderSku)
for _, sku := range removedSkuList {
removedSkuMap[jxutils.GetSkuIDFromOrderSku(sku)] = sku
}
order = jxutils.RemoveSkuFromOrder(order, removedSkuList)
var oaosAdjustDTOList []*jdapi.OAOSAdjustDTO
for _, sku := range order.Skus {
skuID := jxutils.GetSkuIDFromOrderSku(sku)
tmp := &jdapi.OAOSAdjustDTO{
OutSkuID: utils.Int2Str(skuID),
oaosAdjustDTOList = append(oaosAdjustDTOList, &jdapi.OAOSAdjustDTO{
OutSkuID: utils.Int2Str(jxutils.GetSkuIDFromOrderSku(sku)),
SkuCount: sku.Count,
}
if removedSkuMap[skuID] != nil {
if removedSkuMap[skuID].Count >= sku.Count {
tmp = nil
} else {
tmp.SkuCount -= removedSkuMap[skuID].Count
}
}
if tmp != nil {
oaosAdjustDTOList = append(oaosAdjustDTOList, tmp)
}
})
}
if globals.EnableStoreWrite {
err = api.JdAPI.AdjustOrder(order.VendorOrderID, ctx.GetUserName(), reason, oaosAdjustDTOList)

View File

@@ -170,14 +170,30 @@ func (c *PurchaseHandler) onOrderMsg(msg *mtwmapi.CallbackMsg) (response *mtwmap
}
} else {
if status := c.callbackMsg2Status(msg); status != nil {
err = partner.CurOrderManager.OnOrderStatusChanged(status)
if err == nil && msg.Cmd == mtwmapi.MsgTypeOrderFinished {
utils.CallFuncAsync(func() {
orderMap, err := api.MtwmAPI.OrderGetOrderDetail(utils.Str2Int64(GetOrderIDFromMsg(msg)), true)
if err == nil && utils.MustInterface2Int64(orderMap["is_third_shipping"]) == SelfDeliveryCarrierNo {
c.OnOrderDetail(orderMap, partner.UpdatedPeration)
if status.Status == model.OrderStatusAdjust {
var order *model.GoodsOrder
if order, err = c.GetOrder(GetOrderIDFromMsg(msg)); err == nil {
skuList := api.MtwmAPI.GetRefundSkuDetailFromMsg(msg)
var removedSkuList []*model.OrderSku
for _, mtwmSku := range skuList {
removedSkuList = append(removedSkuList, &model.OrderSku{
SkuID: int(utils.Str2Int64WithDefault(mtwmSku.SkuID, 0)),
Count: mtwmSku.Count,
})
}
})
order = jxutils.RemoveSkuFromOrder(order, removedSkuList)
err = partner.CurOrderManager.OnOrderAdjust(order, status.VendorStatus)
}
} else {
err = partner.CurOrderManager.OnOrderStatusChanged(status)
if err == nil && msg.Cmd == mtwmapi.MsgTypeOrderFinished {
utils.CallFuncAsync(func() {
orderMap, err := api.MtwmAPI.OrderGetOrderDetail(utils.Str2Int64(GetOrderIDFromMsg(msg)), true)
if err == nil && utils.MustInterface2Int64(orderMap["is_third_shipping"]) == SelfDeliveryCarrierNo {
c.OnOrderDetail(orderMap, partner.UpdatedPeration)
}
})
}
}
}
}