+ 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

@@ -435,3 +435,42 @@ func RefreshOrderSkuRelated(order *model.GoodsOrder) *model.GoodsOrder {
}
return order
}
func RemoveSkuFromOrder(order *model.GoodsOrder, removedSkuList []*model.OrderSku) *model.GoodsOrder {
removedSkuMap := make(map[int]*model.OrderSku)
removedSkuMap2 := make(map[string]*model.OrderSku)
for _, sku := range removedSkuList {
if skuID := GetSkuIDFromOrderSku(sku); skuID > 0 {
removedSkuMap[skuID] = sku
}
if vendorSkuID := sku.VendorSkuID; vendorSkuID != "" {
removedSkuMap2[vendorSkuID] = sku
}
}
var skuList []*model.OrderSku
for _, sku := range order.Skus {
var removedSku *model.OrderSku
if skuID := GetSkuIDFromOrderSku(sku); skuID > 0 {
removedSku = removedSkuMap[skuID]
}
if removedSku == nil {
if vendorSkuID := sku.VendorSkuID; vendorSkuID != "" {
removedSku = removedSkuMap2[vendorSkuID]
}
}
copiedSku := *sku
tmp := &copiedSku
if removedSku != nil {
if removedSku.Count >= sku.Count {
tmp = nil
} else {
tmp.Count -= removedSku.Count
}
}
if tmp != nil {
skuList = append(skuList, tmp)
}
}
order.Skus = skuList
return RefreshOrderSkuRelated(order)
}