From 4e2d2321a9c2b0157656ea5caf0e4aab3bf2535a Mon Sep 17 00:00:00 2001 From: gazebo Date: Wed, 12 Jun 2019 17:38:49 +0800 Subject: [PATCH] =?UTF-8?q?-=20UpdateStore=E4=B8=AD=EF=BC=8C=E5=A6=82?= =?UTF-8?q?=E6=9E=9C=E5=8F=AA=E6=98=AF=E6=9C=AC=E5=9C=B0=E5=B1=9E=E6=80=A7?= =?UTF-8?q?=E5=8F=98=E6=9B=B4=EF=BC=8C=E4=B8=8D=E9=9C=80=E8=A6=81=E5=90=8C?= =?UTF-8?q?=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store.go | 45 +++++++++++++++++++++++++++++------ 1 file changed, 38 insertions(+), 7 deletions(-) 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 {