diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 3dd8e9550..1a5565346 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -339,7 +339,8 @@ func GetSkuNames(ctx *jxcontext.Context, keyword string, params map[string]inter t1.elm_img_hash_code, t1.status, t1.is_spu, - t1.img_hash_code + t1.img_hash_code, + t1.upc ` sqlData := ` SELECT @@ -361,6 +362,7 @@ func GetSkuNames(ctx *jxcontext.Context, keyword string, params map[string]inter t1.status, t1.is_spu, t1.img_hash_code, + t1.upc, CONCAT("[", GROUP_CONCAT(DISTINCT CONCAT('{"id":', t2.id, ',"comment":"', t2.comment, '","status":', t2.status, ',"createdAt":"', CONCAT(REPLACE(t2.created_at," ","T"),"+08:00"), '","updatedAt":"', CONCAT(REPLACE(t2.updated_at," ","T"),"+08:00"), '","lastOperator":"', t2.last_operator, '","specQuality":', t2.spec_quality, ',"specUnit":"', t2.spec_unit, '","weight":', t2.weight, ',"jdID":', t2.jd_id, ',"categoryID":', t2.category_id, ',"nameID":', t2.name_id, "}")), "]") skus_str, CONCAT("[", GROUP_CONCAT(DISTINCT t3.place_code), "]") places_str ` + sql + ` diff --git a/business/model/sku.go b/business/model/sku.go index 9d3b2a706..5ce7a1d42 100644 --- a/business/model/sku.go +++ b/business/model/sku.go @@ -164,11 +164,11 @@ type SkuName struct { Img string `orm:"size(255)" json:"img"` ImgHashCode string `orm:"size(255)" json:"img_hash_code"` ElmImgHashCode string `orm:"size(255)" json:"-"` // 长度255的原因是从京东初始化数据时临时需要 - - Status int `orm:"default(1)" json:"status"` // skuname状态,取值同sku.Status - IsSpu int8 `orm:"column(is_spu)" json:"isSpu"` // 用于指明是否SKUNAME当成SPU - JdID int64 `orm:"column(jd_id);null" json:"jdID"` - JdSyncStatus int8 `orm:"default(2)" json:"jdSyncStatus"` + Upc string `orm:"size(20)"` + Status int `orm:"default(1)" json:"status"` // skuname状态,取值同sku.Status + IsSpu int8 `orm:"column(is_spu)" json:"isSpu"` // 用于指明是否SKUNAME当成SPU + JdID int64 `orm:"column(jd_id);null" json:"jdID"` + JdSyncStatus int8 `orm:"default(2)" json:"jdSyncStatus"` } func (*SkuName) TableUnique() [][]string { diff --git a/business/partner/purchase/jd/sku.go b/business/partner/purchase/jd/sku.go index 77c98468b..88726232a 100644 --- a/business/partner/purchase/jd/sku.go +++ b/business/partner/purchase/jd/sku.go @@ -141,6 +141,9 @@ func (p *PurchaseHandler) cuSku(db *dao.DaoDB, sku *model.Sku, handler func(skuE if err == nil { skuName := jxutils.ComposeSkuName(skuInfoExt.Prefix, skuInfoExt.Name, sku.Comment, skuInfoExt.Unit, sku.SpecQuality, sku.SpecUnit, 0) skuPrice := jxutils.CaculateSkuPrice(skuInfoExt.Price, sku.SpecQuality, sku.SpecUnit, skuInfoExt.Unit) + if skuInfoExt.Upc != "" { + addParams["upcCode"] = skuInfoExt.Upc + } result, err2 := handler(&skuInfoExt, skuPrice, skuName, shopCategories, addParams) if err = err2; err == nil { if jdID := utils.Str2Int64WithDefault(result, 0); jdID != 0 { @@ -328,6 +331,7 @@ func (p *PurchaseHandler) RefreshAllSkusID(ctx *jxcontext.Context, parentTask ta } // 这个处理JD SPU,补丁形式 +// addParams是SPU的附加参数而不是SKU func (p *PurchaseHandler) syncSkuNameAsSpu(db *dao.DaoDB, sku *model.Sku, skuExt *tSkuInfoExt, price int, skuName string, shopCategories []int64, addParams map[string]interface{}) (vendorSkuID string, err error) { updateFields := []string{ model.FieldJdSyncStatus, @@ -350,20 +354,17 @@ func (p *PurchaseHandler) syncSkuNameAsSpu(db *dao.DaoDB, sku *model.Sku, skuExt err = api.JdAPI.UpdateSkuBaseInfo(utils.Int2Str(skuExt.ID), utils.Int2Str(sku.ID), utils.Params2Map(jdapi.KeyFixedStatus, jdapi.SkuFixedStatusDeleted)) } else if sku.JdSyncStatus&model.SyncFlagNewMask != 0 && !jxutils.IsFakeID(skuNameJdID) { // 非首次新增SKU if globals.EnableStoreWrite { - vendorSkuID2, err2 := api.JdAPI.AppendSku(utils.Int2Str(skuExt.ID), utils.Int2Str(sku.ID), skuExt.JdCategoryID, shopCategories, skuExt.BrandID, skuName, price, jxutils.IntWeight2Float(sku.Weight), []string{skuExt.Img}, jxStatus2jdStatus(sku.Status), true, addParams) + vendorSkuID2, err2 := api.JdAPI.AppendSku(utils.Int2Str(skuExt.ID), utils.Int2Str(sku.ID), skuExt.JdCategoryID, shopCategories, skuExt.BrandID, skuName, price, jxutils.IntWeight2Float(sku.Weight), []string{skuExt.Img}, jxStatus2jdStatus(sku.Status), true, nil) if err = err2; err == nil { vendorSkuID = utils.Int64ToStr(vendorSkuID2) } } } else if sku.JdSyncStatus&model.SyncFlagModifiedMask != 0 { - params := utils.MergeMaps(addParams) - params["categoryId"] = skuExt.JdCategoryID - params["shopCategories"] = shopCategories - params["brandId"] = skuExt.BrandID + params := make(map[string]interface{}) params["skuName"] = skuName - params["weight"] = jxutils.IntWeight2Float(sku.Weight) params["images"] = []string{skuExt.Img} params[jdapi.KeyFixedStatus] = jxStatus2jdStatus(sku.Status) + params[jdapi.KeyWeight] = sku.Weight if globals.EnableStoreWrite { err = api.JdAPI.UpdateSkuBaseInfo(utils.Int2Str(skuExt.ID), utils.Int2Str(sku.ID), params) } @@ -409,14 +410,14 @@ func (p *PurchaseHandler) syncSkuNameAsSpu(db *dao.DaoDB, sku *model.Sku, skuExt } } } else if skuExt.JdSyncStatus&model.SyncFlagModifiedMask != 0 { - params := map[string]interface{}{ - "categoryId": skuExt.JdCategoryID, + params := utils.MergeMaps(map[string]interface{}{ + "superName": jxutils.ComposeSpuName(skuExt.Prefix, skuExt.Name, 0), "shopCategories": shopCategories, + "categoryId": skuExt.JdCategoryID, "brandId": skuExt.BrandID, - "skuName": skuName, "images": []string{skuExt.Img}, jdapi.KeyFixedStatus: jxStatus2jdStatus(skuExt.Status), - } + }, addParams) if globals.EnableStoreWrite { err = api.JdAPI.UpdateSpu(utils.Int2Str(skuExt.ID), params) }