- 因应饿百门店商品操作API的返回结果变更修改
This commit is contained in:
@@ -243,11 +243,14 @@ func (p *PurchaseHandler) syncStoreSkus(ctx *jxcontext.Context, parentTask tasks
|
|||||||
if storeSku.NameID == 0 || storeSku.EbaiSyncStatus&model.SyncFlagDeletedMask != 0 {
|
if storeSku.NameID == 0 || storeSku.EbaiSyncStatus&model.SyncFlagDeletedMask != 0 {
|
||||||
if storeSku.EbaiSyncStatus&model.SyncFlagNewMask == 0 && !jxutils.IsEmptyID(storeSku.EbaiID) {
|
if storeSku.EbaiSyncStatus&model.SyncFlagNewMask == 0 && !jxutils.IsEmptyID(storeSku.EbaiID) {
|
||||||
if globals.EnableEbaiStoreWrite {
|
if globals.EnableEbaiStoreWrite {
|
||||||
if _, err = api.EbaiAPI.SkuDelete(strStoreID, []int64{storeSku.EbaiID}, nil); ebaiapi.IsErrSkuNotExist(err) {
|
opResult, err2 := api.EbaiAPI.SkuDelete(strStoreID, []int64{storeSku.EbaiID}, nil)
|
||||||
|
if err = err2; err != nil {
|
||||||
|
if ebaiapi.IsErrSkuNotExist(err) || (opResult != nil && len(opResult.FailedList) == 1) {
|
||||||
err = nil
|
err = nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if err == nil {
|
if err == nil {
|
||||||
if utils.IsTimeZero(storeSku.DeletedAt) {
|
if utils.IsTimeZero(storeSku.DeletedAt) {
|
||||||
storeSku.DeletedAt = time.Now()
|
storeSku.DeletedAt = time.Now()
|
||||||
|
|||||||
@@ -132,16 +132,24 @@ func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, v
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getFailedVendorSkuIDsFromOpResult(opResult *ebaiapi.BatchOpResult) (skuIDs []string) {
|
||||||
|
if opResult != nil {
|
||||||
|
for _, v := range opResult.FailedList {
|
||||||
|
skuIDs = append(skuIDs, utils.Int64ToStr(v.SkuID))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return skuIDs
|
||||||
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) DeleteStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (successList []*partner.StoreSkuInfo, err error) {
|
func (p *PurchaseHandler) DeleteStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (successList []*partner.StoreSkuInfo, err error) {
|
||||||
if globals.EnableEbaiStoreWrite {
|
if globals.EnableEbaiStoreWrite {
|
||||||
failedEbaiSkuIDs, err2 := api.EbaiAPI.SkuDelete(utils.Int2Str(storeID), partner.BareStoreSkuInfoList(storeSkuList).GetVendorSkuIDIntList(), nil)
|
opResult, err2 := api.EbaiAPI.SkuDelete(utils.Int2Str(storeID), partner.BareStoreSkuInfoList(storeSkuList).GetVendorSkuIDIntList(), nil)
|
||||||
if err = err2; err == nil {
|
if err = err2; err2 != nil && opResult != nil {
|
||||||
if err = putils.GenPartialFailedErr(failedEbaiSkuIDs, len(failedEbaiSkuIDs)); err != nil {
|
if len(storeSkuList) == 1 && len(storeSkuList) == len(opResult.FailedList) { // 饿百现在删除不存在错,在上层通过IsErrSkuNotExist很难准备判断,暂时这里直接处理
|
||||||
successList = putils.UnselectStoreSkuListByVendorSkuIDs(storeSkuList, utils.Int64Slice2String(failedEbaiSkuIDs))
|
|
||||||
}
|
|
||||||
} else if len(storeSkuList) == 1 && len(storeSkuList) == len(failedEbaiSkuIDs) { // 饿百现在删除不存在错,在上层通过IsErrSkuNotExist很难准备判断,暂时这里直接处理
|
|
||||||
successList = storeSkuList
|
|
||||||
err = nil
|
err = nil
|
||||||
|
} else {
|
||||||
|
successList = putils.UnselectStoreSkuListByVendorSkuIDs(storeSkuList, getFailedVendorSkuIDsFromOpResult(opResult))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return successList, err
|
return successList, err
|
||||||
@@ -150,24 +158,22 @@ func (p *PurchaseHandler) DeleteStoreSkus(ctx *jxcontext.Context, storeID int, v
|
|||||||
func (p *PurchaseHandler) UpdateStoreSkusStatus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo, status int) (successList []*partner.StoreSkuInfo, err error) {
|
func (p *PurchaseHandler) UpdateStoreSkusStatus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo, status int) (successList []*partner.StoreSkuInfo, err error) {
|
||||||
vendorSkuIDs := partner.BareStoreSkuInfoList(storeSkuList).GetVendorSkuIDIntList()
|
vendorSkuIDs := partner.BareStoreSkuInfoList(storeSkuList).GetVendorSkuIDIntList()
|
||||||
if globals.EnableEbaiStoreWrite {
|
if globals.EnableEbaiStoreWrite {
|
||||||
var failedEbaiSkuIDs []int64
|
var opResult *ebaiapi.BatchOpResult
|
||||||
if status == model.SkuStatusNormal {
|
if status == model.SkuStatusNormal {
|
||||||
if len(vendorSkuIDs) > 1 {
|
if len(vendorSkuIDs) > 1 {
|
||||||
failedEbaiSkuIDs, err = api.EbaiAPI.SkuOnline(utils.Int2Str(storeID), vendorSkuIDs, nil, nil)
|
opResult, err = api.EbaiAPI.SkuOnline(utils.Int2Str(storeID), vendorSkuIDs, nil, nil)
|
||||||
} else if len(vendorSkuIDs) == 1 {
|
} else if len(vendorSkuIDs) == 1 {
|
||||||
err = api.EbaiAPI.SkuOnlineOne(utils.Int2Str(storeID), vendorSkuIDs[0], "", "")
|
err = api.EbaiAPI.SkuOnlineOne(utils.Int2Str(storeID), vendorSkuIDs[0], "", "")
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if len(vendorSkuIDs) > 1 {
|
if len(vendorSkuIDs) > 1 {
|
||||||
failedEbaiSkuIDs, err = api.EbaiAPI.SkuOffline(utils.Int2Str(storeID), vendorSkuIDs, nil, nil)
|
opResult, err = api.EbaiAPI.SkuOffline(utils.Int2Str(storeID), vendorSkuIDs, nil, nil)
|
||||||
} else if len(vendorSkuIDs) == 1 {
|
} else if len(vendorSkuIDs) == 1 {
|
||||||
err = api.EbaiAPI.SkuOfflineOne(utils.Int2Str(storeID), vendorSkuIDs[0], "", "")
|
err = api.EbaiAPI.SkuOfflineOne(utils.Int2Str(storeID), vendorSkuIDs[0], "", "")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if err == nil {
|
if err != nil && opResult != nil {
|
||||||
if err = putils.GenPartialFailedErr(failedEbaiSkuIDs, len(failedEbaiSkuIDs)); err != nil {
|
successList = putils.UnselectStoreSkuListByVendorSkuIDs(storeSkuList, getFailedVendorSkuIDsFromOpResult(opResult))
|
||||||
successList = putils.UnselectStoreSkuListByVendorSkuIDs(storeSkuList, utils.Int64Slice2String(failedEbaiSkuIDs))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return successList, err
|
return successList, err
|
||||||
@@ -186,23 +192,12 @@ func StoreSkuInfoList2Ebai(storeSkuList []*partner.StoreSkuInfo) (outList ebaiap
|
|||||||
return outList
|
return outList
|
||||||
}
|
}
|
||||||
|
|
||||||
func getFailedVendorIDs(l []*ebaiapi.ShopSkuPriceUpdateResponseItem) (vendorSkuIDs []string) {
|
|
||||||
for _, v := range l {
|
|
||||||
if v.ErrorNo != 0 {
|
|
||||||
vendorSkuIDs = append(vendorSkuIDs, utils.Int64ToStr(v.SkuID))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return vendorSkuIDs
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *PurchaseHandler) UpdateStoreSkusPrice(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (successList []*partner.StoreSkuInfo, err error) {
|
func (p *PurchaseHandler) UpdateStoreSkusPrice(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (successList []*partner.StoreSkuInfo, err error) {
|
||||||
if globals.EnableEbaiStoreWrite {
|
if globals.EnableEbaiStoreWrite {
|
||||||
if len(storeSkuList) > 1 {
|
if len(storeSkuList) > 1 {
|
||||||
updateResponse, err2 := api.EbaiAPI.SkuPriceUpdateBatch(utils.Int2Str(storeID), StoreSkuInfoList2Ebai(storeSkuList), ebaiapi.SkuIDTypeSkuID)
|
opResult, err2 := api.EbaiAPI.SkuPriceUpdateBatch(utils.Int2Str(storeID), StoreSkuInfoList2Ebai(storeSkuList), ebaiapi.SkuIDTypeSkuID)
|
||||||
if err = err2; err != nil {
|
if err = err2; err != nil && opResult != nil {
|
||||||
if len(updateResponse.FailedList) > 0 {
|
successList = putils.UnselectStoreSkuListByVendorSkuIDs(storeSkuList, getFailedVendorSkuIDsFromOpResult(opResult))
|
||||||
successList = putils.UnselectStoreSkuListByVendorSkuIDs(storeSkuList, getFailedVendorIDs(updateResponse.FailedList))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else if len(storeSkuList) == 1 {
|
} else if len(storeSkuList) == 1 {
|
||||||
err = api.EbaiAPI.SkuPriceUpdateOne(utils.Int2Str(storeID), StoreSkuInfoList2Ebai(storeSkuList)[0])
|
err = api.EbaiAPI.SkuPriceUpdateOne(utils.Int2Str(storeID), StoreSkuInfoList2Ebai(storeSkuList)[0])
|
||||||
@@ -214,11 +209,9 @@ func (p *PurchaseHandler) UpdateStoreSkusPrice(ctx *jxcontext.Context, storeID i
|
|||||||
func (p *PurchaseHandler) UpdateStoreSkusStock(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (successList []*partner.StoreSkuInfo, err error) {
|
func (p *PurchaseHandler) UpdateStoreSkusStock(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (successList []*partner.StoreSkuInfo, err error) {
|
||||||
if globals.EnableEbaiStoreWrite {
|
if globals.EnableEbaiStoreWrite {
|
||||||
if len(storeSkuList) > 1 {
|
if len(storeSkuList) > 1 {
|
||||||
failedEbaiSkuIDs, err2 := api.EbaiAPI.SkuStockUpdateBatch(utils.Int2Str(storeID), StoreSkuInfoList2Ebai(storeSkuList), ebaiapi.SkuIDTypeSkuID)
|
opResult, err2 := api.EbaiAPI.SkuStockUpdateBatch(utils.Int2Str(storeID), StoreSkuInfoList2Ebai(storeSkuList), ebaiapi.SkuIDTypeSkuID)
|
||||||
if err = err2; err == nil {
|
if err = err2; err != nil && opResult != nil {
|
||||||
if err = putils.GenPartialFailedErr(failedEbaiSkuIDs, len(failedEbaiSkuIDs)); err != nil {
|
successList = putils.UnselectStoreSkuListByVendorSkuIDs(storeSkuList, getFailedVendorSkuIDsFromOpResult(opResult))
|
||||||
successList = putils.UnselectStoreSkuListByVendorSkuIDs(storeSkuList, utils.Int64Slice2String(failedEbaiSkuIDs))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else if len(storeSkuList) == 1 {
|
} else if len(storeSkuList) == 1 {
|
||||||
err = api.EbaiAPI.SkuStockUpdateOne(utils.Int2Str(storeID), StoreSkuInfoList2Ebai(storeSkuList)[0])
|
err = api.EbaiAPI.SkuStockUpdateOne(utils.Int2Str(storeID), StoreSkuInfoList2Ebai(storeSkuList)[0])
|
||||||
|
|||||||
@@ -209,6 +209,8 @@ func UnselectStoreSkuListByVendorSkuIDs(storeSkuList []*partner.StoreSkuInfo, ve
|
|||||||
selectedStoreSkuList = append(selectedStoreSkuList, storeSkuMap[v])
|
selectedStoreSkuList = append(selectedStoreSkuList, storeSkuMap[v])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
selectedStoreSkuList = storeSkuList
|
||||||
}
|
}
|
||||||
return selectedStoreSkuList
|
return selectedStoreSkuList
|
||||||
}
|
}
|
||||||
@@ -224,6 +226,8 @@ func UnselectStoreSkuSyncListByVendorSkuIDs(storeSkuList []*dao.StoreSkuSyncInfo
|
|||||||
selectedStoreSkuList = append(selectedStoreSkuList, storeSkuMap[v])
|
selectedStoreSkuList = append(selectedStoreSkuList, storeSkuMap[v])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
selectedStoreSkuList = storeSkuList
|
||||||
}
|
}
|
||||||
return selectedStoreSkuList
|
return selectedStoreSkuList
|
||||||
}
|
}
|
||||||
@@ -236,6 +240,8 @@ func UnselectStoreSkuListBySkuIDs(storeSkuList []*partner.StoreSkuInfo, skuIDs [
|
|||||||
selectedStoreSkuList = append(selectedStoreSkuList, storeSkuMap[v])
|
selectedStoreSkuList = append(selectedStoreSkuList, storeSkuMap[v])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
selectedStoreSkuList = storeSkuList
|
||||||
}
|
}
|
||||||
return selectedStoreSkuList
|
return selectedStoreSkuList
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user