diff --git a/business/jxstore/cms/sync.go b/business/jxstore/cms/sync.go index 586ef8a7d..30deed38f 100644 --- a/business/jxstore/cms/sync.go +++ b/business/jxstore/cms/sync.go @@ -16,6 +16,11 @@ import ( type VendorSync struct { } +type SyncError struct { + Original error `json:"original"` + Message string `json:"message"` +} + var ( MultiStoresVendorHandlers []partner.IMultipleStoresHandler SingleStoreVendorIDs []int @@ -171,13 +176,13 @@ func (v *VendorSync) LoopStoreMap(db *dao.DaoDB, storeID int, handler tasksch.Wo task := tasksch.RunTask("LoopStoreMap", false, nil, len(storeMaps), 1, "", handler, storeMaps) _, err = task.GetResult(0) } - return err + return makeSyncError(err) } func (v *VendorSync) LoopMultiStoresVendors(db *dao.DaoDB, handler tasksch.WorkFunc) (err error) { task := tasksch.RunTask("LoopMultiStoresVendors", false, nil, len(MultiStoresVendorHandlers), 1, "", handler, MultiStoresVendorHandlers) _, err = task.GetResult(0) - return err + return makeSyncError(err) } func (v *VendorSync) LoopSingleStoreVendors(db *dao.DaoDB, taskName, userName string, handler tasksch.WorkFunc) (err error) { @@ -196,7 +201,7 @@ func (v *VendorSync) LoopSingleStoreVendors(db *dao.DaoDB, taskName, userName st task := tasksch.RunManagedTask(taskName, false, nil, parellelCount, 1, userName, handler, storeMaps) _, err = task.GetResult(0) } - return err + return makeSyncError(err) } func (v *VendorSync) RefreshSkuIDs(nameID, skuID int, isForce bool, userName string) (err error) { @@ -229,3 +234,13 @@ func (v *VendorSync) RefreshSkuIDs(nameID, skuID int, isForce bool, userName str } return err } + +func makeSyncError(err error) (newErr error) { + return &SyncError{ + Original: err, + } +} + +func (e *SyncError) Error() string { + return fmt.Sprintf("本地数据修改成功,但同步失败,请根据错误提示处理!,同步错误信息:%s", e.Original.Error()) +}