- 将OrderSku中没有用的StoreSubName暂时当成VendorActType来使用
- 美团外卖订单使用sku_benefit_detail来更准确的判断单品活动
This commit is contained in:
@@ -141,8 +141,8 @@ func (p *PurchaseHandler) Map2Order(orderData map[string]interface{}) (order *mo
|
||||
}
|
||||
|
||||
// 添加需要赠送的东西
|
||||
var extraList []*mtwmapi.OrderExtraInfo
|
||||
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))
|
||||
}
|
||||
@@ -157,12 +157,22 @@ func (p *PurchaseHandler) Map2Order(orderData map[string]interface{}) (order *mo
|
||||
SkuName: extra.Remark,
|
||||
Weight: 0,
|
||||
SalePrice: 0,
|
||||
StoreSubName: utils.Int2Str(extra.Type),
|
||||
}
|
||||
order.Skus = append(order.Skus, sku)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var skuBenefitDetailMap map[string]*mtwmapi.SkuBenefitDetailInfo
|
||||
if skuBenefitDetai := utils.Interface2String(result["sku_benefit_detail"]); skuBenefitDetai != "" {
|
||||
skuBenefitDetailMap = make(map[string]*mtwmapi.SkuBenefitDetailInfo)
|
||||
var skuBenefitDetailList []*mtwmapi.SkuBenefitDetailInfo
|
||||
utils.UnmarshalUseNumber([]byte(skuBenefitDetai), &skuBenefitDetailList)
|
||||
for _, v := range skuBenefitDetailList {
|
||||
skuBenefitDetailMap[v.SkuID] = v
|
||||
}
|
||||
}
|
||||
ignoreSkuMap := make(map[int]int)
|
||||
// detail := result["detail"].([]interface{})
|
||||
for _, product := range detail {
|
||||
@@ -179,16 +189,17 @@ func (p *PurchaseHandler) Map2Order(orderData map[string]interface{}) (order *mo
|
||||
Weight: getSkuWeight(product),
|
||||
VendorPrice: jxutils.StandardPrice2Int(utils.MustInterface2Float64(product["price"])),
|
||||
SalePrice: jxutils.StandardPrice2Int(utils.MustInterface2Float64(product["price"])),
|
||||
// PromotionType: int(utils.MustInterface2Int64(product["promotionType"])),
|
||||
}
|
||||
if sku.Weight == 0 {
|
||||
sku.Weight = 222 // 如果名字里找不到缺省给半斤左右的一个特别值
|
||||
}
|
||||
if ignoreSkuMap[sku.SkuID] == 0 && sku.Count == 1 {
|
||||
for _, v := range extraList {
|
||||
if /*skuActTypeMap[v.Type] == 1 && */ strings.Index(v.Remark, skuName) >= 0 {
|
||||
if skuBenefitDetailMap != nil && skuBenefitDetailMap[sku.VendorSkuID] != nil && ignoreSkuMap[sku.SkuID] == 0 /* && sku.Count == 1 */ {
|
||||
for _, v := range skuBenefitDetailMap[sku.VendorSkuID].WmAppOrderActDetails {
|
||||
if /*skuActTypeMap[v.Type] == 1 && */ strings.Index(v.Remark, skuName) >= 0 && sku.Count == v.Count {
|
||||
ignoreSkuMap[sku.SkuID] = 1
|
||||
sku.SalePrice -= jxutils.StandardPrice2Int(v.ReduceFee)
|
||||
sku.SalePrice -= jxutils.StandardPrice2Int(v.MtCharge + v.PoiCharge)
|
||||
sku.PromotionType = v.Type
|
||||
sku.StoreSubName = utils.Int2Str(v.Type)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user