同步错误返回

This commit is contained in:
苏尹岚
2019-12-04 11:56:02 +08:00
parent ecb9b79ec6
commit 16a14e8b4d
5 changed files with 54 additions and 62 deletions

View File

@@ -485,7 +485,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, isFull bo
updateList = append(updateList, calVendorPrice4StoreSku(batchedStoreSkuList[0], storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage))) updateList = append(updateList, calVendorPrice4StoreSku(batchedStoreSkuList[0], storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage)))
err = nil err = nil
} else { } else {
failedList = append(failedList, putils.GetErrMsg2FailedSyncSingleList(batchedStoreSkuList, err2)...) failedList = append(failedList, putils.GetErrMsg2FailedSingleList(batchedStoreSkuList, err2)...)
} }
if len(failedList) > 0 { if len(failedList) > 0 {
task.AddErrMsg(failedList) task.AddErrMsg(failedList)

View File

@@ -45,6 +45,9 @@ type StoreSkuInfo struct {
type StoreSkuInfoWithErr struct { type StoreSkuInfoWithErr struct {
StoreSkuInfo *StoreSkuInfo StoreSkuInfo *StoreSkuInfo
VendoreID int
StoreID int
SyncType string
ErrMsg string ErrMsg string
} }

View File

@@ -120,7 +120,7 @@ func (p *PurchaseHandler) UpdateStoreSkus(ctx *jxcontext.Context, storeID int, v
if globals.EnableEbaiStoreWrite { if globals.EnableEbaiStoreWrite {
_, err = api.EbaiAPI.SkuUpdate(ctx.GetTrackInfo(), strStoreID, utils.Str2Int64(storeSku.VendorSkuID), params) _, err = api.EbaiAPI.SkuUpdate(ctx.GetTrackInfo(), strStoreID, utils.Str2Int64(storeSku.VendorSkuID), params)
if err != nil { if err != nil {
failedList = putils.GetErrMsg2FailedSyncSingleList(storeSkuList, err) failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err)
} }
utils.CallFuncAsync(func() { utils.CallFuncAsync(func() {
api.EbaiAPI.SkuShopCategoryMap(strStoreID, utils.Str2Int64(storeSku.VendorSkuID), "", utils.Str2Int64(storeSku.VendorCatID), genSkuCatRank(storeSku)) api.EbaiAPI.SkuShopCategoryMap(strStoreID, utils.Str2Int64(storeSku.VendorSkuID), "", utils.Str2Int64(storeSku.VendorCatID), genSkuCatRank(storeSku))
@@ -141,7 +141,7 @@ func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, v
api.EbaiAPI.SkuShopCategoryMap(strStoreID, vendorSkuID, "", utils.Str2Int64(storeSku.VendorCatID), genSkuCatRank(storeSku)) api.EbaiAPI.SkuShopCategoryMap(strStoreID, vendorSkuID, "", utils.Str2Int64(storeSku.VendorCatID), genSkuCatRank(storeSku))
}) })
} else { } else {
failedList = putils.GetErrMsg2FailedSyncSingleList(storeSkuList, err) failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err)
} }
} else { } else {
vendorSkuID = jxutils.GenFakeID() vendorSkuID = jxutils.GenFakeID()

View File

@@ -294,12 +294,12 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
if len(foodDataList) == 1 { if len(foodDataList) == 1 {
foodDataList[0]["skus"] = string(utils.MustMarshal(foodDataList[0]["skus"])) foodDataList[0]["skus"] = string(utils.MustMarshal(foodDataList[0]["skus"]))
err = api.MtwmAPI.RetailInitData(ctx.GetTrackInfo(), vendorStoreID, utils.Int2Str(storeSkuList[0].SkuID), foodDataList[0]) err = api.MtwmAPI.RetailInitData(ctx.GetTrackInfo(), vendorStoreID, utils.Int2Str(storeSkuList[0].SkuID), foodDataList[0])
failedList = putils.GetErrMsg2FailedSyncSingleList(storeSkuList, err) failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err)
} else if len(foodDataList) > 0 { } else if len(foodDataList) > 0 {
failedFoodList, err2 := api.MtwmAPI.RetailBatchInitData(ctx.GetTrackInfo(), vendorStoreID, foodDataList) failedFoodList, err2 := api.MtwmAPI.RetailBatchInitData(ctx.GetTrackInfo(), vendorStoreID, foodDataList)
if err = err2; err == nil { if err = err2; err == nil {
if err = putils.GenPartialFailedErr(failedFoodList, len(failedFoodList)); err != nil { if err = putils.GenPartialFailedErr(failedFoodList, len(failedFoodList)); err != nil {
failedList = putils.SelectStoreSynSkuByFoodList(storeSkuList, failedFoodList) failedList = putils.SelectStoreSkuListByFoodList(storeSkuList, failedFoodList)
// successList = putils.UnselectStoreSkuSyncListByVendorSkuIDs(storeSkuList, getAppFoodCodeList(failedFoodList)) // successList = putils.UnselectStoreSkuSyncListByVendorSkuIDs(storeSkuList, getAppFoodCodeList(failedFoodList))
} }
} }

View File

@@ -237,47 +237,40 @@ func UnselectStoreSkuListByVendorSkuIDs(storeSkuList []*partner.StoreSkuInfo, ve
} }
//美团api返回 //美团api返回
func SelectStoreSkuListByFoodList(storeSkuList []*partner.StoreSkuInfo, foodList []*mtwmapi.AppFoodResult) (selectedStoreSkuList []*partner.StoreSkuInfoWithErr) { func SelectStoreSkuListByFoodList(storeSkuList interface{}, foodList []*mtwmapi.AppFoodResult) (selectedStoreSkuList []*partner.StoreSkuInfoWithErr) {
foodMap := make(map[string]string) foodMap := make(map[string]string)
if len(foodList) > 0 { if len(foodList) > 0 {
for _, v := range foodList { for _, v := range foodList {
foodMap[v.AppFoodCode] = v.ErrorMsg foodMap[v.AppFoodCode] = v.ErrorMsg
} }
for _, v := range storeSkuList { if storeSkuLists, ok := storeSkuList.([]*partner.StoreSkuInfo); ok {
if foodMap[v.VendorSkuID] != "" { for _, v := range storeSkuLists {
foodFailed := &partner.StoreSkuInfoWithErr{ if foodMap[v.VendorSkuID] != "" {
StoreSkuInfo: v, foodFailed := &partner.StoreSkuInfoWithErr{
ErrMsg: foodMap[v.VendorSkuID], StoreSkuInfo: v,
ErrMsg: foodMap[v.VendorSkuID],
}
selectedStoreSkuList = append(selectedStoreSkuList, foodFailed)
} }
selectedStoreSkuList = append(selectedStoreSkuList, foodFailed)
} }
} }
} if storeSkuLists, ok := storeSkuList.([]*dao.StoreSkuSyncInfo); ok {
return selectedStoreSkuList for _, v := range storeSkuLists {
} if foodMap[v.VendorSkuID] != "" {
storeSkuInfo := &partner.StoreSkuInfo{
//美团api返回 SkuID: v.SkuID,
func SelectStoreSynSkuByFoodList(storeSkuList []*dao.StoreSkuSyncInfo, foodList []*mtwmapi.AppFoodResult) (selectedStoreSkuList []*partner.StoreSkuInfoWithErr) { VendorSkuID: v.VendorSkuID,
foodMap := make(map[string]string) NameID: v.NameID,
if len(foodList) > 0 { VendorNameID: v.VendorNameID,
for _, v := range foodList { VendorPrice: v.VendorPrice,
foodMap[v.AppFoodCode] = v.ErrorMsg Status: v.Status,
} }
for _, v := range storeSkuList { foodFailed := &partner.StoreSkuInfoWithErr{
if foodMap[v.VendorSkuID] != "" { StoreSkuInfo: storeSkuInfo,
storeSkuInfo := &partner.StoreSkuInfo{ ErrMsg: foodMap[v.VendorSkuID],
SkuID: v.SkuID, }
VendorSkuID: v.VendorSkuID, selectedStoreSkuList = append(selectedStoreSkuList, foodFailed)
NameID: v.NameID,
VendorNameID: v.VendorNameID,
VendorPrice: v.VendorPrice,
Status: v.Status,
} }
foodFailed := &partner.StoreSkuInfoWithErr{
StoreSkuInfo: storeSkuInfo,
ErrMsg: foodMap[v.VendorSkuID],
}
selectedStoreSkuList = append(selectedStoreSkuList, foodFailed)
} }
} }
} }
@@ -326,35 +319,31 @@ func SelectStoreSkuListByResponseList(storeSkuList []*partner.StoreSkuInfo, resp
return selectedStoreSkuList return selectedStoreSkuList
} }
func GetErrMsg2FailedSingleList(storeSkuList []*partner.StoreSkuInfo, err error) (failedList []*partner.StoreSkuInfoWithErr) { func GetErrMsg2FailedSingleList(storeSkuList interface{}, err error) (failedList []*partner.StoreSkuInfoWithErr) {
if err != nil { if err != nil {
if errExt, ok := err.(*utils.ErrorWithCode); ok { if errExt, ok := err.(*utils.ErrorWithCode); ok {
storeSkuInfoWithErr := &partner.StoreSkuInfoWithErr{ if storeSkuLists, ok := storeSkuList.([]*partner.StoreSkuInfo); ok {
StoreSkuInfo: storeSkuList[0], storeSkuInfoWithErr := &partner.StoreSkuInfoWithErr{
ErrMsg: errExt.ErrMsg(), StoreSkuInfo: storeSkuLists[0],
ErrMsg: errExt.ErrMsg(),
}
failedList = append(failedList, storeSkuInfoWithErr)
} }
failedList = append(failedList, storeSkuInfoWithErr) if storeSkuLists, ok := storeSkuList.([]*dao.StoreSkuSyncInfo); ok {
} storeSkuInfo := &partner.StoreSkuInfo{
} SkuID: storeSkuLists[0].SkuID,
return failedList VendorSkuID: storeSkuLists[0].VendorSkuID,
} NameID: storeSkuLists[0].NameID,
VendorNameID: storeSkuLists[0].VendorNameID,
func GetErrMsg2FailedSyncSingleList(storeSkuList []*dao.StoreSkuSyncInfo, err error) (failedList []*partner.StoreSkuInfoWithErr) { VendorPrice: storeSkuLists[0].VendorPrice,
if err != nil { Status: storeSkuLists[0].Status,
if errExt, ok := err.(*utils.ErrorWithCode); ok { }
storeSkuInfo := &partner.StoreSkuInfo{ storeSkuInfoWithErr := &partner.StoreSkuInfoWithErr{
SkuID: storeSkuList[0].SkuID, StoreSkuInfo: storeSkuInfo,
VendorSkuID: storeSkuList[0].VendorSkuID, ErrMsg: errExt.ErrMsg(),
NameID: storeSkuList[0].NameID, }
VendorNameID: storeSkuList[0].VendorNameID, failedList = append(failedList, storeSkuInfoWithErr)
VendorPrice: storeSkuList[0].VendorPrice,
Status: storeSkuList[0].Status,
} }
storeSkuInfoWithErr := &partner.StoreSkuInfoWithErr{
StoreSkuInfo: storeSkuInfo,
ErrMsg: errExt.ErrMsg(),
}
failedList = append(failedList, storeSkuInfoWithErr)
} }
} }
return failedList return failedList