diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index ed5c7ac05..ca0c7037b 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -4209,65 +4209,67 @@ func CreateSkusAndFocusFromWx(ctx *jxcontext.Context, productInfo *jdapi.Product if price == 0 { return fmt.Errorf("请输入商品价格!") } - skuNames, err := dao.GetSkuNames(db, nil, nil, productInfo.Name) + focusSku := func(nameID int) { + skuBindInfo := &StoreSkuBindInfo{ + StoreID: storeID, + NameID: nameID, + UnitPrice: price, + IsFocus: 1, + IsSale: 1, + } + skuBindInfos = append(skuBindInfos, skuBindInfo) + UpdateStoresSkusByBind(ctx, nil, skuBindInfos, true, true) + } + skuNames, err := dao.GetSkuNames(db, nil, []string{productInfo.UpcCode}, "") if err != nil { return err } - if len(skuNames) > 1 { - return fmt.Errorf("此商品名在京西库中查询出了大于1个商品,[%v]", productInfo.Name) - } - //表示查到了,需要把upc更新上去,没查到就要新建 - if len(skuNames) == 1 && (productInfo.SpecQuality == skuNames[0].SpecQuality && productInfo.SpecUnit == skuNames[0].SpecUnit) { - skuNames[0].Upc = &productInfo.UpcCode - dao.UpdateEntity(db, skuNames[0], "Upc") - skuBindInfo := &StoreSkuBindInfo{ - StoreID: storeID, - NameID: skuNames[0].ID, - UnitPrice: price, - IsFocus: 1, - IsSale: 1, - } - skuBindInfos = append(skuBindInfos, skuBindInfo) - UpdateStoresSkusByBind(ctx, nil, skuBindInfos, true, true) - } else { - skuNameExt := &model.SkuNameExt{ - SkuName: model.SkuName{ - Name: productInfo.Name, - Upc: &productInfo.UpcCode, - Status: model.SkuStatusNormal, - CategoryID: 175, - IsGlobal: model.YES, - Unit: productInfo.Unit, - }, - Skus: []*model.SkuWithVendor{ - &model.SkuWithVendor{ - Sku: &model.Sku{}, - }, - }, - // Places: []int{510100}, //默认成都 - } - skuNameExt.Price = price - skuNameExt.Skus[0].SpecQuality = productInfo.SpecQuality - skuNameExt.Skus[0].SpecUnit = productInfo.SpecUnit - skuNameExt.Skus[0].Weight = int(utils.Str2Int64(utils.Float64ToStr(float64(productInfo.Weight)))) - skuNameExt.Skus[0].Status = model.SkuStatusNormal - - if len(productInfo.ImgList) > 0 { - skuNameExt.Img = productInfo.ImgList[0] - } - outSkuNameExt, err := AddSkuName(ctx, skuNameExt, ctx.GetUserName()) + if len(skuNames) == 0 { + skuNames2, err := dao.GetSkuNames(db, nil, nil, productInfo.Name) if err != nil { return err } - skuBindInfo := &StoreSkuBindInfo{ - StoreID: storeID, - NameID: outSkuNameExt.ID, - UnitPrice: price, - IsFocus: 1, - IsSale: 1, + if len(skuNames2) > 1 { + return fmt.Errorf("此商品名在京西库中查询出了大于1个商品,[%v]", productInfo.Name) } - skuBindInfos = append(skuBindInfos, skuBindInfo) - UpdateStoresSkusByBind(ctx, nil, skuBindInfos, true, true) + //表示查到了,需要把upc更新上去,没查到就要新建 + if len(skuNames2) == 1 && (productInfo.SpecQuality == skuNames2[0].SpecQuality && productInfo.SpecUnit == skuNames2[0].SpecUnit) { + skuNames2[0].Upc = &productInfo.UpcCode + dao.UpdateEntity(db, skuNames2[0], "Upc") + focusSku(skuNames2[0].ID) + } else { + skuNameExt := &model.SkuNameExt{ + SkuName: model.SkuName{ + Name: productInfo.Name, + Upc: &productInfo.UpcCode, + Status: model.SkuStatusNormal, + CategoryID: 175, + IsGlobal: model.YES, + Unit: productInfo.Unit, + }, + Skus: []*model.SkuWithVendor{ + &model.SkuWithVendor{ + Sku: &model.Sku{}, + }, + }, + // Places: []int{510100}, //默认成都 + } + skuNameExt.Price = price + skuNameExt.Skus[0].SpecQuality = productInfo.SpecQuality + skuNameExt.Skus[0].SpecUnit = productInfo.SpecUnit + skuNameExt.Skus[0].Weight = int(utils.Str2Int64(utils.Float64ToStr(float64(productInfo.Weight)))) + skuNameExt.Skus[0].Status = model.SkuStatusNormal + if len(productInfo.ImgList) > 0 { + skuNameExt.Img = productInfo.ImgList[0] + } + outSkuNameExt, err := AddSkuName(ctx, skuNameExt, ctx.GetUserName()) + if err != nil { + return err + } + focusSku(outSkuNameExt.ID) + } + } else { + focusSku(skuNames[0].ID) } return err }