diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index fdd984b17..8f8504629 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -1751,6 +1751,25 @@ func GetStoreSkuBindByNameID(db *DaoDB, storeID, nameID, status int) (storeSkuBi return storeSkuBind, err } +func GetStoreSkuByVendorSkuId(storeId int, vendorID int, vendorSkuId string) (storeSkuBind *model.StoreSkuBind, err error) { + sql := ` + SELECT * FROM store_sku_bind s WHERE s.store_id = ? +` + param := []interface{}{ + storeId, + } + switch vendorID { + case model.VendorIDEBAI: + sql += ` AND s.ebai_id = ?` + param = append(param, vendorSkuId) + } + sql += ` AND s.deleted_at = ? ` + param = append(param, utils.DefaultTimeValue) + + err = GetRow(GetDB(), &storeSkuBind, sql, param...) + return storeSkuBind, err +} + func GetPriceReferPrice(db *DaoDB, cityCode int, skuID int, snapDate time.Time) (result *PriceReferSnapshotExt, err error) { var ( pRefer *PriceReferSnapshotExt diff --git a/business/partner/purchase/ebai/order.go b/business/partner/purchase/ebai/order.go index 95d80a83e..ab6d7ebda 100644 --- a/business/partner/purchase/ebai/order.go +++ b/business/partner/purchase/ebai/order.go @@ -319,6 +319,16 @@ func (p *PurchaseHandler) Map2Order(orderData map[string]interface{}) (order *mo if shelfPosition, ok := product["shelf_position"]; ok { sku.LocationCode = shelfPosition.(string) } + if sku.SkuID == 0 { + if product["upc"] != nil { + sku.SkuID = utils.Str2Int(strings.Split(product["upc"].(string), "-")[1]) + } else if product["baidu_product_id"] != nil { + skuBind, err := dao.GetStoreSkuByVendorSkuId(order.StoreID, model.VendorIDEBAI, product["baidu_product_id"].(string)) + if err == nil && skuBind != nil { + sku.SkuID = skuBind.SkuID + } + } + } var baiduRate int64 sku.SalePrice, baiduRate, sku.StoreSubName = getSkuSalePrice(product) order.PmSubsidyMoney += baiduRate