diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 4b66b4cff..979c72643 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -1120,31 +1120,34 @@ func AddSku(ctx *jxcontext.Context, nameID int, sku *model.Sku, userName string) err = ErrEntityNotExist } } - // storeSkus, err := dao.GetStoreSkusByNameIDs(db, []int{model.JdShopMainStoreID}, nameID) - // if len(storeSkus) > 0 { - // storeSkus2, err2 := dao.GetStoreSkusByNameIDs(db, nil, nameID) - // err = err2 - // storeIDs := make(map[int]int) - // for _, v := range storeSkus2 { - // storeMaps, err := dao.GetStoresMapList(db, []int{model.VendorIDJDShop}, []int{v.StoreID}, nil, model.StoreStatusAll, model.StoreIsSyncAll, "") - - // storeIDs[v.StoreID] = v.StoreID - // } - // skuBindInfos := []*StoreSkuBindInfo{} - // for _, v := range storeIDs { - // skus2 := []*StoreSkuBindSkuInfo{} - // skuBindInfo := &StoreSkuBindInfo{ - // StoreID: v, - // } - // sku2 := &StoreSkuBindSkuInfo{ - // SkuID: sku.ID, - // } - // skus2 = append(skus2, sku2) - // skuBindInfo.Skus = skus2 - // skuBindInfos = append(skuBindInfos, skuBindInfo) - // } - // FocusStoreSkusBySku(ctx, skuBindInfos, true, true) - // } + //增加规格则同步到门店,目前只做了京东商城的。 + storeSkus, err := dao.GetStoreSkusByNameIDs(db, []int{model.JdShopMainStoreID}, nameID) + if len(storeSkus) > 0 { + storeIDs := make(map[int]int) + storeMaps, err2 := dao.GetStoresMapList(db, []int{model.VendorIDJDShop}, nil, nil, model.StoreStatusAll, model.StoreIsSyncAll, "") + err = err2 + for _, v := range storeMaps { + storeSkus2, err2 := dao.GetStoreSkusByNameIDs(db, []int{v.StoreID}, nameID) + err = err2 + if len(storeSkus2) > 0 { + storeIDs[v.StoreID] = v.StoreID + } + } + skuBindInfos := []*StoreSkuBindInfo{} + for _, v := range storeIDs { + skus2 := []*StoreSkuBindSkuInfo{} + skuBindInfo := &StoreSkuBindInfo{ + StoreID: v, + } + sku2 := &StoreSkuBindSkuInfo{ + SkuID: sku.ID, + } + skus2 = append(skus2, sku2) + skuBindInfo.Skus = skus2 + skuBindInfos = append(skuBindInfos, skuBindInfo) + } + FocusStoreSkusBySku(ctx, skuBindInfos, true, true) + } return outSkuNameExt, err } diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index 2ccf2ea58..b9f2fe47b 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -1386,6 +1386,7 @@ func changeList2Jds(list []*dao.StoreSkuSyncInfo) (rList []*dao.StoreSkuSyncInfo storeSku.Img = v[0].Img storeSku.Img2 = v[0].Img2 storeSku.DescImg = v[0].DescImg + storeSku.JdsWareID = v[0].JdsWareID rList = append(rList, storeSku) } return rList diff --git a/business/partner/purchase/jdshop/store_sku.go b/business/partner/purchase/jdshop/store_sku.go index 74e4b844a..096e3f55c 100644 --- a/business/partner/purchase/jdshop/store_sku.go +++ b/business/partner/purchase/jdshop/store_sku.go @@ -27,34 +27,45 @@ var ( func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { if globals.EnableJdShopWrite && vendorStoreID == model.JdShopMainVendorStoreID { for _, v := range storeSkuList { - createSkuParamWare, createSkuParamSkus, err := buildCreateWareParam(v) + //判断京东商城上是否有这个商品了,如果有就是添加规格而不是创建商品 + name := filterSensitiveWord(v.Name) + result, err := api.JdShopAPI.SearchWare4Valid(name) if err != nil { failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品") return failedList, err } - createSkuResult, err := api.JdShopAPI.CreateWare(createSkuParamWare, createSkuParamSkus) - if err != nil { - failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品") - return failedList, err - } - var paramAttrs = make(map[string]*jdshopapi.CreateSkuParamSkus) - var resultAttrs = make(map[string]int64) - for _, vv := range createSkuParamSkus { - for _, vvv := range vv.SaleAttrs { - paramAttrs[vvv.AttrValues[0]] = vv + if result.TotalItem > 0 && len(result.Data) > 0 { + + } else { + createSkuParamWare, createSkuParamSkus, err := buildCreateWareParam(v) + if err != nil { + failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品") + return failedList, err } - } - for _, vv1 := range createSkuResult.Skus { - for _, vvv1 := range vv1.SaleAttrs { - if paramAttrs[vvv1.AttrValues[0]] != nil { - resultAttrs[paramAttrs[vvv1.AttrValues[0]].OuterID] = vv1.SkuID + createSkuResult, err := api.JdShopAPI.CreateWare(createSkuParamWare, createSkuParamSkus) + if err != nil { + failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品") + return failedList, err + } + var paramAttrs = make(map[string]*jdshopapi.CreateSkuParamSkus) + var resultAttrs = make(map[string]int64) + for _, vv := range createSkuParamSkus { + for _, vvv := range vv.SaleAttrs { + paramAttrs[vvv.AttrValues[0]] = vv } } - } - for _, vv2 := range v.StoreSkuSyncInfoJds { - vv2.JdsWareID = createSkuResult.WareID - if resultAttrs[utils.Int2Str(vv2.SkuID)] != 0 { - vv2.VendorSkuID = utils.Int64ToStr(resultAttrs[utils.Int2Str(vv2.SkuID)]) + for _, vv1 := range createSkuResult.Skus { + for _, vvv1 := range vv1.SaleAttrs { + if paramAttrs[vvv1.AttrValues[0]] != nil { + resultAttrs[paramAttrs[vvv1.AttrValues[0]].OuterID] = vv1.SkuID + } + } + } + for _, vv2 := range v.StoreSkuSyncInfoJds { + vv2.JdsWareID = createSkuResult.WareID + if resultAttrs[utils.Int2Str(vv2.SkuID)] != 0 { + vv2.VendorSkuID = utils.Int64ToStr(resultAttrs[utils.Int2Str(vv2.SkuID)]) + } } } }