- UpdateStore中,如果只是本地属性变更,不需要同步
This commit is contained in:
@@ -73,6 +73,24 @@ var (
|
||||
"虞山街道": "虞山镇",
|
||||
"常福街道": "虞山镇",
|
||||
}
|
||||
|
||||
storeKeyPropertyMap = map[string]int{
|
||||
"name": 1,
|
||||
"cityCode": 1,
|
||||
"districtCode": 1,
|
||||
"address": 1,
|
||||
"tel1": 1,
|
||||
"tel2": 1,
|
||||
"openTime1": 1,
|
||||
"closeTime1": 1,
|
||||
"openTime2": 1,
|
||||
"closeTime2": 1,
|
||||
"lng": 1,
|
||||
"lat": 1,
|
||||
"deliveryRangeType": 1,
|
||||
"deliveryRange": 1,
|
||||
"status": 1,
|
||||
}
|
||||
)
|
||||
|
||||
// todo 门店绑定信息可以考虑以数组形式返回,而不是现在这样
|
||||
@@ -412,6 +430,15 @@ func GetVendorStore(ctx *jxcontext.Context, vendorStoreID string, vendorID int)
|
||||
return nil, ErrCanNotFindVendor
|
||||
}
|
||||
|
||||
func isUpdateStoreNeedSync(valid map[string]interface{}) bool {
|
||||
for k := range valid {
|
||||
if storeKeyPropertyMap[k] == 1 {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func UpdateStore(ctx *jxcontext.Context, storeID int, payload map[string]interface{}, userName string) (num int64, err error) {
|
||||
globals.SugarLogger.Debugf("UpdateStore storeID:%d, payload:%s", storeID, utils.Format4Output(payload, false))
|
||||
|
||||
@@ -505,14 +532,18 @@ func UpdateStore(ctx *jxcontext.Context, storeID int, payload map[string]interfa
|
||||
dao.Rollback(db)
|
||||
}()
|
||||
if num, err = dao.UpdateEntityLogically(db, store, valid, userName, nil); err == nil && num == 1 {
|
||||
dummy := &model.StoreMap{}
|
||||
_, err2 := dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, dummy, nil, userName, map[string]interface{}{
|
||||
model.FieldStoreID: store.ID,
|
||||
}, model.FieldSyncStatus, syncStatus)
|
||||
if err = err2; err == nil {
|
||||
if isUpdateStoreNeedSync(valid) {
|
||||
dummy := &model.StoreMap{}
|
||||
_, err2 := dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, dummy, nil, userName, map[string]interface{}{
|
||||
model.FieldStoreID: store.ID,
|
||||
}, model.FieldSyncStatus, syncStatus)
|
||||
if err = err2; err == nil {
|
||||
dao.Commit(db)
|
||||
globals.SugarLogger.Debugf("UpdateStore track:%s, before call SyncStore", ctx.GetTrackInfo())
|
||||
_, err = CurVendorSync.SyncStore(ctx, db, -1, store.ID, false, userName)
|
||||
}
|
||||
} else {
|
||||
dao.Commit(db)
|
||||
globals.SugarLogger.Debugf("UpdateStore track:%s, before call SyncStore", ctx.GetTrackInfo())
|
||||
_, err = CurVendorSync.SyncStore(ctx, db, -1, store.ID, false, userName)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user