错误返回

This commit is contained in:
苏尹岚
2020-01-07 17:53:56 +08:00
parent e813e81ed8
commit 86e783a4d0
10 changed files with 99 additions and 59 deletions

View File

@@ -775,22 +775,22 @@ func asyncStoreSkuOpFilter(ctx *jxcontext.Context, isAsync bool) bool {
return isAsync return isAsync
} }
func UpdateStoreSku(ctx *jxcontext.Context, storeID int, skuBindInfo *StoreSkuBindInfo, isAsync, isContinueWhenError bool) (hint string, err error) { func UpdateStoreSku(ctx *jxcontext.Context, storeID int, skuBindInfo *StoreSkuBindInfo, isAsync, isContinueWhenError bool) (hint, errCode string, err error) {
return UpdateStoreSkus(ctx, storeID, []*StoreSkuBindInfo{skuBindInfo}, isAsync, isContinueWhenError) return UpdateStoreSkus(ctx, storeID, []*StoreSkuBindInfo{skuBindInfo}, isAsync, isContinueWhenError)
} }
func UpdateStoreSkus(ctx *jxcontext.Context, storeID int, skuBindInfos []*StoreSkuBindInfo, isAsync, isContinueWhenError bool) (hint string, err error) { func UpdateStoreSkus(ctx *jxcontext.Context, storeID int, skuBindInfos []*StoreSkuBindInfo, isAsync, isContinueWhenError bool) (hint, errCode string, err error) {
return UpdateStoresSkus(ctx, []int{storeID}, skuBindInfos, false, isAsync, isContinueWhenError) return UpdateStoresSkus(ctx, []int{storeID}, skuBindInfos, false, isAsync, isContinueWhenError)
} }
func UpdateStoresSkus(ctx *jxcontext.Context, storeIDs []int, skuBindInfos []*StoreSkuBindInfo, isScale, isAsync, isContinueWhenError bool) (hint string, err error) { func UpdateStoresSkus(ctx *jxcontext.Context, storeIDs []int, skuBindInfos []*StoreSkuBindInfo, isScale, isAsync, isContinueWhenError bool) (hint, errCode string, err error) {
globals.SugarLogger.Debugf("UpdateStoresSkus:%s, storeIDs:%v, skuBindInfos:%s", ctx.GetTrackInfo(), storeIDs, utils.Format4Output(skuBindInfos, true)) globals.SugarLogger.Debugf("UpdateStoresSkus:%s, storeIDs:%v, skuBindInfos:%s", ctx.GetTrackInfo(), storeIDs, utils.Format4Output(skuBindInfos, true))
var num int64 var num int64
db := dao.GetDB() db := dao.GetDB()
skuIDs, err := updateStoresSkusWithoutSync(ctx, db, storeIDs, skuBindInfos, isScale) skuIDs, err := updateStoresSkusWithoutSync(ctx, db, storeIDs, skuBindInfos, isScale)
if err != nil { if err != nil {
return "", err return "", "", err
} }
isAsync = asyncStoreSkuOpFilter(ctx, isAsync) isAsync = asyncStoreSkuOpFilter(ctx, isAsync)
num = int64(len(skuIDs)) num = int64(len(skuIDs))
@@ -800,7 +800,10 @@ func UpdateStoresSkus(ctx *jxcontext.Context, storeIDs []int, skuBindInfos []*St
if num == 0 || !isAsync || hint == "" { if num == 0 || !isAsync || hint == "" {
hint = utils.Int64ToStr(num) hint = utils.Int64ToStr(num)
} }
return hint, err if _, ok := err.(*SyncError); ok {
return hint, model.ErrCodeJsonSyncErr, err
}
return hint, "", err
} }
func UpdateStoresSkusByBind(ctx *jxcontext.Context, skuBindInfos []*StoreSkuBindInfo, isAsync, isContinueWhenError bool) (hint string, err error) { func UpdateStoresSkusByBind(ctx *jxcontext.Context, skuBindInfos []*StoreSkuBindInfo, isAsync, isContinueWhenError bool) (hint string, err error) {
@@ -1693,7 +1696,7 @@ func AcceptStoreOpRequests(ctx *jxcontext.Context, reqIDs []int) (err error) {
} }
} }
if err2 == nil { if err2 == nil {
_, err2 := UpdateStoresSkus(ctx, []int{op.StoreID}, []*StoreSkuBindInfo{skuBindInfo}, false, false, false) _, _, err2 := UpdateStoresSkus(ctx, []int{op.StoreID}, []*StoreSkuBindInfo{skuBindInfo}, false, false, false)
isLocalSucess := true isLocalSucess := true
if err2 != nil { if err2 != nil {
subErrors[reqID] = err2 subErrors[reqID] = err2

View File

@@ -629,7 +629,6 @@ func (v *VendorSync) LoopStoresMap2(ctx *jxcontext.Context, db *dao.DaoDB, taskN
task.SetFinishHook(func(task tasksch.ITask, ctx *jxcontext.Context) { task.SetFinishHook(func(task tasksch.ITask, ctx *jxcontext.Context) {
if len(task.GetErrMsg()) > 10 { if len(task.GetErrMsg()) > 10 {
err = WirteToExcelBySyncFailed(task, ctx) err = WirteToExcelBySyncFailed(task, ctx)
err = buildErrMsg(task)
} else { } else {
err = buildErrMsg(task) err = buildErrMsg(task)
} }
@@ -673,7 +672,7 @@ func buildErrMsg(task tasksch.ITask) (err error) {
} }
} }
err = fmt.Errorf(utils.Format4Output(resultL, true)) err = fmt.Errorf(utils.Format4Output(resultL, true))
return err return makeSyncError(err)
} }
func (v *VendorSync) LoopStoresMap(ctx *jxcontext.Context, db *dao.DaoDB, taskName string, isAsync, isManageIt bool, vendorIDs []int, storeIDs []int, handler tasksch.WorkFunc, isContinueWhenError bool) (hint string, err error) { func (v *VendorSync) LoopStoresMap(ctx *jxcontext.Context, db *dao.DaoDB, taskName string, isAsync, isManageIt bool, vendorIDs []int, storeIDs []int, handler tasksch.WorkFunc, isContinueWhenError bool) (hint string, err error) {

View File

@@ -80,15 +80,16 @@ func SyncStoreCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendo
catInfo := batchItemList[0].(*dao.SkuStoreCatInfo) catInfo := batchItemList[0].(*dao.SkuStoreCatInfo)
storeCatMap := &model.StoreSkuCategoryMap{} storeCatMap := &model.StoreSkuCategoryMap{}
storeCatMap.ID = catInfo.MapID storeCatMap.ID = catInfo.MapID
var failedList []*partner.StoreSkuInfoWithErr
if model.IsSyncStatusDelete(catInfo.CatSyncStatus) { // 删除 if model.IsSyncStatusDelete(catInfo.CatSyncStatus) { // 删除
if model.IsSyncStatusDelete(catInfo.CatSyncStatus) && !dao.IsVendorThingIDEmpty(catInfo.VendorCatID) { if model.IsSyncStatusDelete(catInfo.CatSyncStatus) && !dao.IsVendorThingIDEmpty(catInfo.VendorCatID) {
err = handler.DeleteStoreCategory(ctx, storeID, vendorStoreID, catInfo.VendorCatID, level) failedList, err = handler.DeleteStoreCategory(ctx, storeID, vendorStoreID, catInfo.VendorCatID, level)
if err != nil && handler.IsErrCategoryNotExist(err) { if err != nil && handler.IsErrCategoryNotExist(err) {
err = nil err = nil
} }
} }
} else if model.IsSyncStatusNew(catInfo.CatSyncStatus) { // 新增 } else if model.IsSyncStatusNew(catInfo.CatSyncStatus) { // 新增
err = handler.CreateStoreCategory(ctx, storeID, vendorStoreID, catInfo) failedList, err = handler.CreateStoreCategory(ctx, storeID, vendorStoreID, catInfo)
if err != nil && handler.IsErrCategoryExist(err) { if err != nil && handler.IsErrCategoryExist(err) {
if cat, err2 := handler.GetStoreCategory(ctx, storeID, vendorStoreID, catInfo.Name); err2 == nil { if cat, err2 := handler.GetStoreCategory(ctx, storeID, vendorStoreID, catInfo.Name); err2 == nil {
catInfo.VendorCatID = cat.VendorCatID catInfo.VendorCatID = cat.VendorCatID
@@ -103,10 +104,17 @@ func SyncStoreCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendo
} }
} }
} else if model.IsSyncStatusUpdate(catInfo.CatSyncStatus) { // 修改 } else if model.IsSyncStatusUpdate(catInfo.CatSyncStatus) { // 修改
if err = handler.UpdateStoreCategory(ctx, storeID, vendorStoreID, catInfo); err == nil { failedList, err = handler.UpdateStoreCategory(ctx, storeID, vendorStoreID, catInfo)
if err == nil {
updateFields = append(updateFields, idFieldName) updateFields = append(updateFields, idFieldName)
} }
} }
if len(failedList) > 0 {
for _, v := range failedList {
v.CategoryName = catInfo.Name
}
task.AddErrMsg(failedList)
}
if err == nil { if err == nil {
if vendorID == model.VendorIDMTWM { if vendorID == model.VendorIDMTWM {
refutil.SetObjFieldByName(storeCatMap, idFieldName, catInfo.VendorCatID) refutil.SetObjFieldByName(storeCatMap, idFieldName, catInfo.VendorCatID)
@@ -789,7 +797,7 @@ func amendAndPruneStoreStuff(ctx *jxcontext.Context, parentTask tasksch.ITask, v
task4Delete := tasksch.NewParallelTask(fmt.Sprintf("删除商家分类,level:%d", level), tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx, task4Delete := tasksch.NewParallelTask(fmt.Sprintf("删除商家分类,level:%d", level), tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx,
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
cat := batchItemList[0].(*partner.BareCategoryInfo) cat := batchItemList[0].(*partner.BareCategoryInfo)
err = handler.DeleteStoreCategory(ctx, storeID, vendorStoreID, cat.VendorCatID, level) _, err = handler.DeleteStoreCategory(ctx, storeID, vendorStoreID, cat.VendorCatID, level)
return nil, err return nil, err
}, levelCat2Delete) }, levelCat2Delete)
tasksch.HandleTask(task4Delete, task, true).Run() tasksch.HandleTask(task4Delete, task, true).Run()

View File

@@ -449,6 +449,16 @@ func (t *BaseTask) run(taskHandler func()) {
} }
} }
close(t.finishChan) close(t.finishChan)
if t.finishHook != nil {
t.finishHook(t, t.ctx)
} else {
SendMessage(t)
}
})
}
}
func SendMessage(t *BaseTask) {
time.Sleep(10 * time.Millisecond) // 等待GetResult中的isGetResultCalled赋值 time.Sleep(10 * time.Millisecond) // 等待GetResult中的isGetResultCalled赋值
globals.SugarLogger.Debugf("BaseTask task ID:%s, name:%s finished, isGetResultCalled:%t", t.ID, t.Name, t.isGetResultCalled) globals.SugarLogger.Debugf("BaseTask task ID:%s, name:%s finished, isGetResultCalled:%t", t.ID, t.Name, t.isGetResultCalled)
if !t.isGetResultCalled && t.parent == nil && len(GetTasks(t.ID, TaskStatusBegin, TaskStatusEnd, 24, "")) > 0 { if !t.isGetResultCalled && t.parent == nil && len(GetTasks(t.ID, TaskStatusBegin, TaskStatusEnd, 24, "")) > 0 {
@@ -467,11 +477,6 @@ func (t *BaseTask) run(taskHandler func()) {
ddmsg.SendUserMessage(dingdingapi.MsgTyeText, authInfo.UserID, "异步任务完成", content) ddmsg.SendUserMessage(dingdingapi.MsgTyeText, authInfo.UserID, "异步任务完成", content)
} }
} }
if t.finishHook != nil {
t.finishHook(t,t.ctx)
}
})
}
} }
// successCount表示在返回错误的情况下部分成功的个数如果没有返回错误则successCount无意义 // successCount表示在返回错误的情况下部分成功的个数如果没有返回错误则successCount无意义

View File

@@ -16,6 +16,7 @@ const (
ErrCodeJsonActPriceTooLarger = "-102" // 这个错误号表示description中的是一个json对象不是错误文本 ErrCodeJsonActPriceTooLarger = "-102" // 这个错误号表示description中的是一个json对象不是错误文本
ErrCodeJsonActEarningPriceIsZero = "-103" ErrCodeJsonActEarningPriceIsZero = "-103"
ErrCodeJsonUserAlreadyExist = "-104" // 用户已经存在错,且能成功登录 ErrCodeJsonUserAlreadyExist = "-104" // 用户已经存在错,且能成功登录
ErrCodeJsonSyncErr = "-105" //同步错误
) )
var ( var (

View File

@@ -45,6 +45,7 @@ type StoreSkuInfo struct {
type StoreSkuInfoWithErr struct { type StoreSkuInfoWithErr struct {
StoreSkuInfo *StoreSkuInfo StoreSkuInfo *StoreSkuInfo
CategoryName string
VendoreID int VendoreID int
StoreID int StoreID int
SyncType string SyncType string
@@ -155,9 +156,9 @@ type ISingleStoreStoreSkuHandler interface {
GetStoreAllCategories(ctx *jxcontext.Context, storeID int, vendorStoreID string) (cats []*BareCategoryInfo, err error) GetStoreAllCategories(ctx *jxcontext.Context, storeID int, vendorStoreID string) (cats []*BareCategoryInfo, err error)
GetStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID, catName string) (cat *BareCategoryInfo, err error) GetStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID, catName string) (cat *BareCategoryInfo, err error)
CreateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (err error) CreateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (failedList []*StoreSkuInfoWithErr, err error)
UpdateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (err error) UpdateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (failedList []*StoreSkuInfoWithErr, err error)
DeleteStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID, vendorCatID string, level int) (err error) DeleteStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID, vendorCatID string, level int) (failedList []*StoreSkuInfoWithErr, err error)
DeleteStoreAllCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, storeID int, vendorStoreID string, isContinueWhenError bool) (err error) DeleteStoreAllCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, storeID int, vendorStoreID string, isContinueWhenError bool) (err error)
IsErrCategoryExist(err error) (isExist bool) IsErrCategoryExist(err error) (isExist bool)

View File

@@ -68,7 +68,7 @@ func (p *PurchaseHandler) IsErrCategoryNotExist(err error) (isNotExist bool) {
return ebaiapi.IsErrCategoryNotExist(err) return ebaiapi.IsErrCategoryNotExist(err)
} }
func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (err error) { func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) {
var vendorCatID int64 var vendorCatID int64
if globals.EnableEbaiStoreWrite { if globals.EnableEbaiStoreWrite {
vendorCatID, err = api.EbaiAPI.ShopCategoryCreate(utils.Int2Str(storeID), utils.Str2Int64WithDefault(storeCat.ParentVendorCatID, 0), formatCatName(storeCat.Name), jxCatSeq2Ebai(storeCat.Seq)) vendorCatID, err = api.EbaiAPI.ShopCategoryCreate(utils.Int2Str(storeID), utils.Str2Int64WithDefault(storeCat.ParentVendorCatID, 0), formatCatName(storeCat.Name), jxCatSeq2Ebai(storeCat.Seq))
@@ -76,10 +76,13 @@ func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID in
vendorCatID = jxutils.GenFakeID() vendorCatID = jxutils.GenFakeID()
} }
storeCat.VendorCatID = utils.Int64ToStr(vendorCatID) storeCat.VendorCatID = utils.Int64ToStr(vendorCatID)
return err if err != nil {
failedList = putils.GetErrMsg2FailedSingleList(nil, err, storeID, model.VendorIDEBAI, "创建分类")
}
return failedList, err
} }
func (p *PurchaseHandler) UpdateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (err error) { func (p *PurchaseHandler) UpdateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) {
if globals.EnableEbaiStoreWrite { if globals.EnableEbaiStoreWrite {
err = api.EbaiAPI.ShopCategoryUpdate(utils.Int2Str(storeID), utils.Str2Int64WithDefault(storeCat.VendorCatID, 0), formatCatName(storeCat.Name), jxCatSeq2Ebai(storeCat.Seq)) err = api.EbaiAPI.ShopCategoryUpdate(utils.Int2Str(storeID), utils.Str2Int64WithDefault(storeCat.VendorCatID, 0), formatCatName(storeCat.Name), jxCatSeq2Ebai(storeCat.Seq))
// todo, 饿百将一个分类重复改名也会报分类名重复错特殊处理一下不过因为GetStoreCategory其实会拉取所有的门店分类是比较耗时的操作 // todo, 饿百将一个分类重复改名也会报分类名重复错特殊处理一下不过因为GetStoreCategory其实会拉取所有的门店分类是比较耗时的操作
@@ -90,15 +93,21 @@ func (p *PurchaseHandler) UpdateStoreCategory(ctx *jxcontext.Context, storeID in
} }
} }
} }
if err != nil {
failedList = putils.GetErrMsg2FailedSingleList(nil, err, storeID, model.VendorIDEBAI, "修改分类")
} }
return err }
return failedList, err
} }
func (p *PurchaseHandler) DeleteStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID, vendorCatID string, level int) (err error) { func (p *PurchaseHandler) DeleteStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID, vendorCatID string, level int) (failedList []*partner.StoreSkuInfoWithErr, err error) {
if globals.EnableEbaiStoreWrite { if globals.EnableEbaiStoreWrite {
err = api.EbaiAPI.ShopCategoryDelete(utils.Int2Str(storeID), utils.Str2Int64WithDefault(vendorCatID, 0)) err = api.EbaiAPI.ShopCategoryDelete(utils.Int2Str(storeID), utils.Str2Int64WithDefault(vendorCatID, 0))
if err != nil {
failedList = putils.GetErrMsg2FailedSingleList(nil, err, storeID, model.VendorIDEBAI, "删除分类")
} }
return err }
return failedList, err
} }
// 门店商品 // 门店商品

View File

@@ -102,7 +102,7 @@ func tryCatName2Code(originName string) (catCodeStr string) {
return catCodeStr return catCodeStr
} }
func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (err error) { func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) {
level := 1 level := 1
if storeCat.ParentCatName != "" { if storeCat.ParentCatName != "" {
level = 2 level = 2
@@ -151,24 +151,27 @@ func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID in
Sequence: storeCat.Seq, Sequence: storeCat.Seq,
} }
err = api.MtwmAPI.RetailCatUpdate(vendorStoreID, catName, param4Update) err = api.MtwmAPI.RetailCatUpdate(vendorStoreID, catName, param4Update)
if err != nil {
failedList = putils.GetErrMsg2FailedSingleList(nil, err, storeID, model.VendorIDMTWM, "创建修改分类")
}
if storeCat.CatSyncStatus&model.SyncFlagNewMask == 0 && // 修改分类名,但分类不存在 if storeCat.CatSyncStatus&model.SyncFlagNewMask == 0 && // 修改分类名,但分类不存在
p.IsErrCategoryNotExist(err) && originName != "" { p.IsErrCategoryNotExist(err) && originName != "" {
storeCat.CatSyncStatus |= model.SyncFlagNewMask storeCat.CatSyncStatus |= model.SyncFlagNewMask
err = p.CreateStoreCategory(ctx, storeID, vendorStoreID, storeCat) failedList, err = p.CreateStoreCategory(ctx, storeID, vendorStoreID, storeCat)
} }
} }
if err == nil { if err == nil {
// storeCat.VendorCatID = utils.FilterEmoji(storeCat.Name) // storeCat.VendorCatID = utils.FilterEmoji(storeCat.Name)
storeCat.VendorCatID = utils.Int2Str(storeCat.ID) storeCat.VendorCatID = utils.Int2Str(storeCat.ID)
} }
return err return failedList, err
} }
func (p *PurchaseHandler) UpdateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (err error) { func (p *PurchaseHandler) UpdateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) {
return p.CreateStoreCategory(ctx, storeID, vendorStoreID, storeCat) return p.CreateStoreCategory(ctx, storeID, vendorStoreID, storeCat)
} }
func (p *PurchaseHandler) DeleteStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID, vendorCatID string, level int) (err error) { func (p *PurchaseHandler) DeleteStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID, vendorCatID string, level int) (failedList []*partner.StoreSkuInfoWithErr, err error) {
if false { if false {
if globals.EnableMtwmStoreWrite { if globals.EnableMtwmStoreWrite {
err = api.MtwmAPI.RetailCatDelete(vendorStoreID, tryCatName2Code(vendorCatID), vendorCatID) err = api.MtwmAPI.RetailCatDelete(vendorStoreID, tryCatName2Code(vendorCatID), vendorCatID)
@@ -184,9 +187,12 @@ func (p *PurchaseHandler) DeleteStoreCategory(ctx *jxcontext.Context, storeID in
} else { } else {
err = api.MtwmAPI.RetailCatSkuBatchDelete2(ctx.GetTrackInfo(), vendorStoreID, nil, nil, catCodes, []string{vendorCatID}, nil) err = api.MtwmAPI.RetailCatSkuBatchDelete2(ctx.GetTrackInfo(), vendorStoreID, nil, nil, catCodes, []string{vendorCatID}, nil)
} }
if err != nil {
failedList = putils.GetErrMsg2FailedSingleList(nil, err, storeID, model.VendorIDMTWM, "删除分类")
} }
} }
return err }
return failedList, err
} }
// 门店商品 // 门店商品

View File

@@ -64,7 +64,8 @@ func (p *DefSingleStorePlatform) DeleteStoreAllCategories(ctx *jxcontext.Context
vendorCatIDs[k] = v.VendorCatID vendorCatIDs[k] = v.VendorCatID
} }
err = FreeBatchCategoryIDOp(func(vendorCatID string) (err error) { err = FreeBatchCategoryIDOp(func(vendorCatID string) (err error) {
return p.DeleteStoreCategory(ctx, storeID, vendorStoreID, vendorCatID, step) _, err2 := p.DeleteStoreCategory(ctx, storeID, vendorStoreID, vendorCatID, step)
return err2
}, ctx, task, vendorCatIDs, isContinueWhenError) }, ctx, task, vendorCatIDs, isContinueWhenError)
return nil, err return nil, err
}, len(levelList)) }, len(levelList))
@@ -343,8 +344,7 @@ func GetErrMsg2FailedSingleList(storeSkuList interface{}, err error, storeID, ve
SyncType: syncType, SyncType: syncType,
} }
failedList = append(failedList, storeSkuInfoWithErr) failedList = append(failedList, storeSkuInfoWithErr)
} } else if storeSkuLists, ok := storeSkuList.([]*dao.StoreSkuSyncInfo); ok {
if storeSkuLists, ok := storeSkuList.([]*dao.StoreSkuSyncInfo); ok {
storeSkuInfo := &partner.StoreSkuInfo{ storeSkuInfo := &partner.StoreSkuInfo{
SkuID: storeSkuLists[0].SkuID, SkuID: storeSkuLists[0].SkuID,
VendorSkuID: storeSkuLists[0].VendorSkuID, VendorSkuID: storeSkuLists[0].VendorSkuID,
@@ -361,6 +361,14 @@ func GetErrMsg2FailedSingleList(storeSkuList interface{}, err error, storeID, ve
SyncType: syncType, SyncType: syncType,
} }
failedList = append(failedList, storeSkuInfoWithErr) failedList = append(failedList, storeSkuInfoWithErr)
} else {
storeSkuInfoWithErr := &partner.StoreSkuInfoWithErr{
ErrMsg: errExt.ErrMsg(),
StoreID: storeID,
VendoreID: vendorID,
SyncType: syncType,
}
failedList = append(failedList, storeSkuInfoWithErr)
} }
} }
} }

View File

@@ -151,9 +151,9 @@ func (c *StoreSkuController) UpdateStoreSku() {
c.callUpdateStoreSku(func(params *tStoreSkuUpdateStoreSkuParams) (retVal interface{}, errCode string, err error) { c.callUpdateStoreSku(func(params *tStoreSkuUpdateStoreSkuParams) (retVal interface{}, errCode string, err error) {
var skuBindInfo cms.StoreSkuBindInfo var skuBindInfo cms.StoreSkuBindInfo
if err = jxutils.Strings2Objs(params.Payload, &skuBindInfo); err == nil { if err = jxutils.Strings2Objs(params.Payload, &skuBindInfo); err == nil {
retVal, err = cms.UpdateStoreSku(params.Ctx, params.StoreID, &skuBindInfo, params.IsAsync, params.IsContinueWhenError) retVal, errCode, err = cms.UpdateStoreSku(params.Ctx, params.StoreID, &skuBindInfo, params.IsAsync, params.IsContinueWhenError)
} }
return retVal, "", err return retVal, errCode, err
}) })
} }
@@ -171,9 +171,9 @@ func (c *StoreSkuController) UpdateStoreSkus() {
c.callUpdateStoreSkus(func(params *tStoreSkuUpdateStoreSkusParams) (retVal interface{}, errCode string, err error) { c.callUpdateStoreSkus(func(params *tStoreSkuUpdateStoreSkusParams) (retVal interface{}, errCode string, err error) {
var skuBindInfos []*cms.StoreSkuBindInfo var skuBindInfos []*cms.StoreSkuBindInfo
if err = jxutils.Strings2Objs(params.Payload, &skuBindInfos); err == nil { if err = jxutils.Strings2Objs(params.Payload, &skuBindInfos); err == nil {
retVal, err = cms.UpdateStoreSkus(params.Ctx, params.StoreID, skuBindInfos, params.IsAsync, params.IsContinueWhenError) retVal, errCode, err = cms.UpdateStoreSkus(params.Ctx, params.StoreID, skuBindInfos, params.IsAsync, params.IsContinueWhenError)
} }
return retVal, "", err return retVal, errCode, err
}) })
} }
@@ -219,8 +219,8 @@ func (c *StoreSkuController) UpdateStoresSkus() {
if err = jxutils.Strings2Objs(params.StoreIDs, &storeIDs, params.Payload, &skuBindInfos); err != nil { if err = jxutils.Strings2Objs(params.StoreIDs, &storeIDs, params.Payload, &skuBindInfos); err != nil {
return retVal, "", err return retVal, "", err
} }
retVal, err = cms.UpdateStoresSkus(params.Ctx, storeIDs, skuBindInfos, params.IsScale, params.IsAsync, params.IsContinueWhenError) retVal, errCode, err = cms.UpdateStoresSkus(params.Ctx, storeIDs, skuBindInfos, params.IsScale, params.IsAsync, params.IsContinueWhenError)
return retVal, "", err return retVal, errCode, err
}) })
} }