- sync.SyncSku add param isContinueWhenError
This commit is contained in:
@@ -469,7 +469,7 @@ func AddSkuName(ctx *jxcontext.Context, skuNameExt *model.SkuNameExt, userName s
|
|||||||
return nil, ErrEntityNotExist
|
return nil, ErrEntityNotExist
|
||||||
}
|
}
|
||||||
outSkuNameExt = tmpInfo.SkuNames[0]
|
outSkuNameExt = tmpInfo.SkuNames[0]
|
||||||
_, err = CurVendorSync.SyncSku(ctx, db, outSkuNameExt.SkuName.ID, -1, false, userName)
|
_, err = CurVendorSync.SyncSku(ctx, db, outSkuNameExt.SkuName.ID, -1, false, false, userName)
|
||||||
return outSkuNameExt, err
|
return outSkuNameExt, err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -507,7 +507,7 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf
|
|||||||
}, model.FieldJdSyncStatus)
|
}, model.FieldJdSyncStatus)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
dao.Commit(db)
|
dao.Commit(db)
|
||||||
_, err = CurVendorSync.SyncSku(ctx, db, nameID, -1, false, userName)
|
_, err = CurVendorSync.SyncSku(ctx, db, nameID, -1, false, false, userName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -546,7 +546,7 @@ func DeleteSkuName(ctx *jxcontext.Context, nameID int, userName string) (num int
|
|||||||
}
|
}
|
||||||
dao.Commit(db)
|
dao.Commit(db)
|
||||||
if numSku > 0 {
|
if numSku > 0 {
|
||||||
_, err = CurVendorSync.SyncSku(ctx, db, skuName.ID, -1, false, userName)
|
_, err = CurVendorSync.SyncSku(ctx, db, skuName.ID, -1, false, false, userName)
|
||||||
}
|
}
|
||||||
return num, err
|
return num, err
|
||||||
}
|
}
|
||||||
@@ -571,7 +571,7 @@ func AddSku(ctx *jxcontext.Context, nameID int, sku *model.Sku, userName string)
|
|||||||
if err = err2; err == nil {
|
if err = err2; err == nil {
|
||||||
if result.TotalCount == 1 {
|
if result.TotalCount == 1 {
|
||||||
outSkuNameExt = result.SkuNames[0]
|
outSkuNameExt = result.SkuNames[0]
|
||||||
_, err = CurVendorSync.SyncSku(ctx, db, outSkuNameExt.SkuName.ID, sku.ID, false, userName)
|
_, err = CurVendorSync.SyncSku(ctx, db, outSkuNameExt.SkuName.ID, sku.ID, false, false, userName)
|
||||||
} else {
|
} else {
|
||||||
err = ErrEntityNotExist
|
err = ErrEntityNotExist
|
||||||
}
|
}
|
||||||
@@ -602,7 +602,7 @@ func UpdateSku(ctx *jxcontext.Context, skuID int, payload map[string]interface{}
|
|||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
dao.Commit(db)
|
dao.Commit(db)
|
||||||
_, err = CurVendorSync.SyncSku(ctx, db, -1, sku.ID, false, userName)
|
_, err = CurVendorSync.SyncSku(ctx, db, -1, sku.ID, false, false, userName)
|
||||||
} else {
|
} else {
|
||||||
err = ErrEntityNotExist
|
err = ErrEntityNotExist
|
||||||
}
|
}
|
||||||
@@ -627,7 +627,7 @@ func DeleteSku(ctx *jxcontext.Context, skuID int, userName string) (num int64, e
|
|||||||
}, userName, nil); err == nil {
|
}, userName, nil); err == nil {
|
||||||
dao.Commit(db)
|
dao.Commit(db)
|
||||||
if num == 1 {
|
if num == 1 {
|
||||||
_, err = CurVendorSync.SyncSku(ctx, db, -1, sku.ID, false, userName)
|
_, err = CurVendorSync.SyncSku(ctx, db, -1, sku.ID, false, false, userName)
|
||||||
} else {
|
} else {
|
||||||
err = ErrEntityNotExist
|
err = ErrEntityNotExist
|
||||||
}
|
}
|
||||||
@@ -684,7 +684,7 @@ func AddSkuNamePlace(ctx *jxcontext.Context, nameID, placeCode int, userName str
|
|||||||
}
|
}
|
||||||
dao.WrapAddIDCULEntity(placeBind, userName)
|
dao.WrapAddIDCULEntity(placeBind, userName)
|
||||||
if err = dao.CreateEntity(db, placeBind); err == nil {
|
if err = dao.CreateEntity(db, placeBind); err == nil {
|
||||||
_, err = CurVendorSync.SyncSku(ctx, db, nameID, -1, false, userName)
|
_, err = CurVendorSync.SyncSku(ctx, db, nameID, -1, false, false, userName)
|
||||||
}
|
}
|
||||||
return placeBind, err
|
return placeBind, err
|
||||||
}
|
}
|
||||||
@@ -696,7 +696,7 @@ func DeleteSkuNamePlace(ctx *jxcontext.Context, nameID, placeCode int, userName
|
|||||||
placeBind.PlaceCode = placeCode
|
placeBind.PlaceCode = placeCode
|
||||||
if num, err = dao.DeleteEntity(db, placeBind, model.FieldNameID, model.FieldPlaceCode); err == nil {
|
if num, err = dao.DeleteEntity(db, placeBind, model.FieldNameID, model.FieldPlaceCode); err == nil {
|
||||||
if num == 1 {
|
if num == 1 {
|
||||||
_, err = CurVendorSync.SyncSku(ctx, db, nameID, -1, false, userName)
|
_, err = CurVendorSync.SyncSku(ctx, db, nameID, -1, false, false, userName)
|
||||||
} else {
|
} else {
|
||||||
err = ErrEntityNotExist
|
err = ErrEntityNotExist
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -232,7 +232,7 @@ func (v *VendorSync) SyncStore(ctx *jxcontext.Context, db *dao.DaoDB, vendorID,
|
|||||||
return hint, err
|
return hint, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (v *VendorSync) SyncSku(ctx *jxcontext.Context, db *dao.DaoDB, nameID, skuID int, isAsync bool, userName string) (hint string, err error) {
|
func (v *VendorSync) SyncSku(ctx *jxcontext.Context, db *dao.DaoDB, nameID, skuID int, isAsync, isContinueWhenError bool, userName string) (hint string, err error) {
|
||||||
globals.SugarLogger.Debugf("SyncSku, nameID:%d, skuID:%d, userName:%s", nameID, skuID, userName)
|
globals.SugarLogger.Debugf("SyncSku, nameID:%d, skuID:%d, userName:%s", nameID, skuID, userName)
|
||||||
return v.LoopMultiStoresVendors(ctx, db, "SyncSku", isAsync, userName, func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
return v.LoopMultiStoresVendors(ctx, db, "SyncSku", isAsync, userName, func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
||||||
multiStoresHandler := v.GetMultiStoreHandler(batchItemList[0].(int))
|
multiStoresHandler := v.GetMultiStoreHandler(batchItemList[0].(int))
|
||||||
@@ -250,7 +250,7 @@ func (v *VendorSync) SyncSku(ctx *jxcontext.Context, db *dao.DaoDB, nameID, skuI
|
|||||||
sort.Sort(jxutils.SkuList(skuList))
|
sort.Sort(jxutils.SkuList(skuList))
|
||||||
// globals.SugarLogger.Debug(utils.Format4Output(skuList, false))
|
// globals.SugarLogger.Debug(utils.Format4Output(skuList, false))
|
||||||
// todo 这里SetParallelCount(1)的原因是京东SPU特殊类型必须要序列化同步才能正常处理, db可能会有多线程问题
|
// todo 这里SetParallelCount(1)的原因是京东SPU特殊类型必须要序列化同步才能正常处理, db可能会有多线程问题
|
||||||
task := tasksch.NewParallelTask("SyncSku loop sku", tasksch.NewParallelConfig().SetParallelCount(1), userName, func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
task := tasksch.NewParallelTask("SyncSku loop sku", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(isContinueWhenError), userName, func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
||||||
sku := batchItemList[0].(*model.Sku)
|
sku := batchItemList[0].(*model.Sku)
|
||||||
syncStatus := jxutils.GetObjFieldByName(sku, syncStatusFieldName).(int8)
|
syncStatus := jxutils.GetObjFieldByName(sku, syncStatusFieldName).(int8)
|
||||||
if (skuID == -1 || skuID == sku.ID) && (syncStatus != 0) {
|
if (skuID == -1 || skuID == sku.ID) && (syncStatus != 0) {
|
||||||
|
|||||||
@@ -304,7 +304,7 @@ func Convert2JDSPU(ctx *jxcontext.Context, count int, isAsync, isContinueWhenErr
|
|||||||
}
|
}
|
||||||
rootTask := tasksch.NewParallelTask("Convert2JDSPU", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx.GetUserName(), func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
rootTask := tasksch.NewParallelTask("Convert2JDSPU", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx.GetUserName(), func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||||
skuName := batchItemList[0].(*model.SkuName)
|
skuName := batchItemList[0].(*model.SkuName)
|
||||||
_, err = cms.CurVendorSync.SyncSku(ctx, db, skuName.ID, -1, false, ctx.GetUserName())
|
_, err = cms.CurVendorSync.SyncSku(ctx, db, skuName.ID, -1, false, isContinueWhenError, ctx.GetUserName())
|
||||||
return nil, err
|
return nil, err
|
||||||
}, skuNameList)
|
}, skuNameList)
|
||||||
tasksch.ManageTask(rootTask).Run()
|
tasksch.ManageTask(rootTask).Run()
|
||||||
|
|||||||
@@ -303,16 +303,17 @@ func (c *SkuController) GetVendorSku() {
|
|||||||
// @Title 同步商家SKU
|
// @Title 同步商家SKU
|
||||||
// @Description 同步商家SKU
|
// @Description 同步商家SKU
|
||||||
// @Param token header string true "认证token"
|
// @Param token header string true "认证token"
|
||||||
// @Param nameID query int true "name ID, -1表示所有"
|
// @Param nameID formData int true "name ID, -1表示所有"
|
||||||
// @Param skuID query int true "sku ID, -1表示所有"
|
// @Param skuID formData int true "sku ID, -1表示所有"
|
||||||
// @Param isAsync query bool false "是否异步"
|
// @Param isAsync formData bool false "是否异步"
|
||||||
|
// @Param isContinueWhenError formData bool false "单个同步失败是否继续,缺省false"
|
||||||
// @Success 200 {object} controllers.CallResult
|
// @Success 200 {object} controllers.CallResult
|
||||||
// @Failure 200 {object} controllers.CallResult
|
// @Failure 200 {object} controllers.CallResult
|
||||||
// @router /SyncSku [put]
|
// @router /SyncSku [put]
|
||||||
func (c *SkuController) SyncSku() {
|
func (c *SkuController) SyncSku() {
|
||||||
c.callSyncSku(func(params *tSkuSyncSkuParams) (retVal interface{}, errCode string, err error) {
|
c.callSyncSku(func(params *tSkuSyncSkuParams) (retVal interface{}, errCode string, err error) {
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
retVal, err = cms.CurVendorSync.SyncSku(params.Ctx, db, params.NameID, params.SkuID, params.IsAsync, params.Ctx.GetUserName())
|
retVal, err = cms.CurVendorSync.SyncSku(params.Ctx, db, params.NameID, params.SkuID, params.IsAsync, params.IsContinueWhenError, params.Ctx.GetUserName())
|
||||||
return retVal, "", err
|
return retVal, "", err
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user