- UpdateEntityLogicallyAndUpdateSyncStatus for model.SyncFlagModifiedMask

This commit is contained in:
gazebo
2018-09-25 17:49:20 +08:00
parent 366634fc00
commit a8974ff4a6
4 changed files with 57 additions and 20 deletions

View File

@@ -69,9 +69,8 @@ func UpdateCategory(categoryID int, payload map[string]interface{}, userName str
cat.ID = categoryID
valid := dao.NormalMakeMapByStructObject(payload, cat, userName)
if len(valid) > 0 {
valid[model.FieldJdSyncStatus] = model.SyncFlagModifiedMask
db := dao.GetDB()
if num, err = dao.UpdateEntityLogically(db, cat, valid, userName, nil); err == nil {
if num, err = dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, cat, valid, userName, nil, model.FieldJdSyncStatus); err == nil {
err = CurVendorSync.SyncCategory(db, categoryID, false, userName)
}
}
@@ -100,7 +99,7 @@ func ReorderCategories(parentID int, categoryIDs []int, userName string) (err er
}
for k, v := range categoryIDs {
catsMap[v].Seq = k
catsMap[v].JdSyncStatus = model.SyncFlagModifiedMask
catsMap[v].JdSyncStatus |= model.SyncFlagModifiedMask
if _, err = dao.UpdateEntity(db, catsMap[v], "Seq"); err != nil {
break
}
@@ -396,11 +395,9 @@ func UpdateSkuName(nameID int, payload map[string]interface{}, userName string)
}
if err == nil {
sku := &model.Sku{}
_, err2 := dao.UpdateEntityLogically(db, sku, map[string]interface{}{
model.FieldJdSyncStatus: model.SyncFlagModifiedMask,
}, userName, map[string]interface{}{
_, err2 := dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, sku, nil, userName, map[string]interface{}{
model.FieldNameID: nameID,
})
}, model.FieldJdSyncStatus)
if err = err2; err == nil {
dao.Commit(db)
err2 = CurVendorSync.SyncSku(db, nameID, -1, false, userName)
@@ -472,9 +469,8 @@ func UpdateSku(skuID int, payload map[string]interface{}, userName string) (num
sku.ID = skuID
valid := dao.NormalMakeMapByStructObject(payload, sku, userName)
if len(valid) > 0 {
valid[model.FieldJdSyncStatus] = model.SyncFlagModifiedMask
db := dao.GetDB()
if num, err = dao.UpdateEntityLogically(db, sku, valid, userName, nil); err == nil {
if num, err = dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, sku, valid, userName, nil, model.FieldJdSyncStatus); err == nil {
if num == 1 {
err = CurVendorSync.SyncSku(db, -1, sku.ID, false, userName)
} else {

View File

@@ -193,11 +193,9 @@ func UpdateStore(storeID int, payload map[string]interface{}, userName string) (
}()
if num, err = dao.UpdateEntityLogically(db, store, valid, userName, nil); err == nil && num == 1 {
dummy := &model.StoreMap{}
_, err2 := dao.UpdateEntityLogically(db, dummy, map[string]interface{}{
model.FieldSyncStatus: model.SyncFlagModifiedMask,
}, userName, map[string]interface{}{
_, err2 := dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, dummy, nil, userName, map[string]interface{}{
model.FieldStoreID: store.ID,
})
}, model.FieldSyncStatus)
if err = err2; err == nil {
dao.Commit(db)
err = CurVendorSync.SyncStore(db, -1, store.ID, false, userName)
@@ -301,12 +299,17 @@ func UpdateStoreVendorMap(db *dao.DaoDB, storeID, vendorID int, payload map[stri
valid := dao.NormalMakeMapByStructObject(payload, dummyStoreMap, userName)
if len(valid) > 0 {
if valid["status"] != nil { // 对于store vendor map只有Status改变才需要同步到厂商
valid[model.FieldSyncStatus] = model.SyncFlagModifiedMask
num, err = dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, dummyStoreMap, valid, userName, map[string]interface{}{
model.FieldStoreID: storeID,
model.FieldVendorID: vendorID,
}, model.FieldSyncStatus)
} else {
num, err = dao.UpdateEntityLogically(db, dummyStoreMap, valid, userName, map[string]interface{}{
model.FieldStoreID: storeID,
model.FieldVendorID: vendorID,
})
}
if num, err = dao.UpdateEntityLogically(db, dummyStoreMap, valid, userName, map[string]interface{}{
model.FieldStoreID: storeID,
model.FieldVendorID: vendorID,
}); err == nil && num > 0 {
if err == nil && num > 0 {
if valid["status"] != nil {
err = CurVendorSync.SyncStore(db, vendorID, storeID, false, userName)
}

View File

@@ -236,9 +236,12 @@ func (v *VendorSync) RefreshSkuIDs(nameID, skuID int, isForce bool, userName str
}
func makeSyncError(err error) (newErr error) {
return &SyncError{
Original: err,
if err != nil {
return &SyncError{
Original: err,
}
}
return err
}
func (e *SyncError) Error() string {