扫码建商品优化
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user