diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 9291c4b50..b70e3df78 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -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 {