diff --git a/business/partner/purchase/mtwm/order.go b/business/partner/purchase/mtwm/order.go index 974edadf6..2c945b655 100644 --- a/business/partner/purchase/mtwm/order.go +++ b/business/partner/purchase/mtwm/order.go @@ -151,6 +151,30 @@ func (p *PurchaseHandler) Map2Order(orderData map[string]interface{}) (order *mo // } order.Skus = append(order.Skus, sku) } + + // 添加需要赠送的东西 + if result["extras"] != nil { + var extraList []*mtwmapi.OrderExtraInfo + if err := utils.UnmarshalUseNumber([]byte(result["extras"].(string)), &extraList); err != nil { + panic(fmt.Sprintf("mtwm Map2Order vendorID:%s failed with error:%v", vendorOrderID, err)) + } + for _, extra := range extraList { + if extra.Type == mtwmapi.ExtrasPromotionTypeTaoCanZeng || extra.Type == mtwmapi.ExtrasPromotionTypeManZeng { + sku := &model.OrderSku{ + VendorOrderID: order.VendorOrderID, + VendorID: model.VendorIDMTWM, + Count: 1, + SkuID: 0, + VendorSkuID: "", + SkuName: extra.Remark, + Weight: 0, + SalePrice: 0, + } + order.Skus = append(order.Skus, sku) + } + } + } + jxutils.RefreshOrderSkuRelated(order) return order } diff --git a/controllers/jx_order.go b/controllers/jx_order.go index d8660a329..ecafc9782 100644 --- a/controllers/jx_order.go +++ b/controllers/jx_order.go @@ -462,10 +462,12 @@ func skuList2Map(skuList []*model.OrderSku) (skuMap map[int]*model.OrderSku) { skuMap = make(map[int]*model.OrderSku) for _, sku := range skuList { skuID := jxutils.GetSkuIDFromOrderSku(sku) - if skuMap[skuID] == nil { - skuMap[skuID] = sku - } else { - skuMap[skuID].Count += sku.Count + if sku.SkuID > 0 { + if skuMap[skuID] == nil { + skuMap[skuID] = sku + } else { + skuMap[skuID].Count += sku.Count + } } } return skuMap