diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index 5a8959a47..a63ed6bf7 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -236,7 +236,7 @@ func storeSkuSyncInfo2Bare(inSku *dao.StoreSkuSyncInfo) (outSku *partner.StoreSk Seq: inSku.Seq, JxPrice: inSku.Price, JxUnitPrice: inSku.UnitPrice, - VendorSkuID2: utils.Int2Str(inSku.JdsWareID), + VendorSkuID2: utils.Int64ToStr(inSku.JdsWareID), } if !isStoreSkuSyncNeedDelete(inSku) { outSku.Stock = model.MaxStoreSkuStockQty @@ -334,26 +334,31 @@ func updateStoreSku(db *dao.DaoDB, vendorID int, storeSkuList []*dao.StoreSkuSyn // panic(r) // } // }() - updateItemList := make([]*dao.KVUpdateItem, len(storeSkuList)) - for k, v := range storeSkuList { - updateItemList[k] = sku2Update(vendorID, v, syncStatus) - } - num, err = dao.BatchUpdateEntityByKV(db, updateItemList) - if vendorID == model.VendorIDYB { - err = updateYbOhterSku(db, storeSkuList) - } if vendorID == model.VendorIDJDShop { - err = updateJdsWareID(db, storeSkuList) + for _, v := range storeSkuList { + updateItemList := make([]*dao.KVUpdateItem, len(storeSkuList)) + for k, vv := range v.StoreSkuSyncInfoJds { + updateItemList[k] = sku2Update(vendorID, vv, syncStatus) + err = updateJdsWareID(db, vv) + } + num, err = dao.BatchUpdateEntityByKV(db, updateItemList) + } + } else { + updateItemList := make([]*dao.KVUpdateItem, len(storeSkuList)) + for k, v := range storeSkuList { + updateItemList[k] = sku2Update(vendorID, v, syncStatus) + } + num, err = dao.BatchUpdateEntityByKV(db, updateItemList) + if vendorID == model.VendorIDYB { + err = updateYbOhterSku(db, storeSkuList) + } } } return num, err } -func updateJdsWareID(db *dao.DaoDB, storeSkuList []*dao.StoreSkuSyncInfo) (err error) { - for _, v := range storeSkuList { - err = dao.UpdateJdsWareID(db, v) - } - return err +func updateJdsWareID(db *dao.DaoDB, storeSku *dao.StoreSkuSyncInfo) (err error) { + return dao.UpdateJdsWareID(db, storeSku) } func updateYbOhterSku(db *dao.DaoDB, storeSkuList []*dao.StoreSkuSyncInfo) (err error) { diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index 3b938c9d1..1c503a708 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -61,7 +61,7 @@ type StoreSkuSyncInfo struct { StoreSkuStatus int SkuSyncStatus int8 VendorSkuID string `orm:"column(vendor_sku_id)"` - JdsWareID int `orm:"column(jds_ware_id)" json:"jdsWareID"` + JdsWareID int64 `orm:"column(jds_ware_id)" json:"jdsWareID"` BindDeletedAt time.Time `orm:"type(datetime)" json:"bindDeletedAt"` model.Sku diff --git a/business/partner/purchase/jdshop/store_sku.go b/business/partner/purchase/jdshop/store_sku.go index e259ff5c3..0dd729988 100644 --- a/business/partner/purchase/jdshop/store_sku.go +++ b/business/partner/purchase/jdshop/store_sku.go @@ -27,8 +27,28 @@ 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 { - buildCreateWareParam(v) - // api.JdShopAPI.CreateWare(createSkuParamWare, createSkuParamSkus) + createSkuParamWare, createSkuParamSkus, err := buildCreateWareParam(v) + if err != nil { + failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品") + } + createSkuResult, err := api.JdShopAPI.CreateWare(createSkuParamWare, createSkuParamSkus) + if err != nil { + failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品") + } + v.JdsWareID = createSkuResult.WareID + for _, vv2 := range v.StoreSkuSyncInfoJds { + for _, vv := range createSkuParamSkus { + for _, vvv := range vv.SaleAttrs { + for _, vv1 := range createSkuResult.Skus { + for _, vvv1 := range vv1.SaleAttrs { + if vvv1.AttrValues[0] == vvv.AttrValues[0] { + vv2.VendorSkuID = utils.Int64ToStr(vv1.SkuID) + } + } + } + } + } + } } } return failedList, err