From e8fe41398fce39077ee7704d02e89f72833718dc Mon Sep 17 00:00:00 2001 From: gazebo Date: Tue, 15 Oct 2019 10:27:30 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DUpdateConfig=E4=B8=AD?= =?UTF-8?q?=E5=86=99=E6=AD=BB=E4=B8=BAConfigTypePricePack=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/cms.go | 53 ++++++++++++++++++++++++------------- 1 file changed, 35 insertions(+), 18 deletions(-) diff --git a/business/jxstore/cms/cms.go b/business/jxstore/cms/cms.go index 807fa932e..28d21fe1a 100644 --- a/business/jxstore/cms/cms.go +++ b/business/jxstore/cms/cms.go @@ -310,37 +310,54 @@ func UpdateConfig(ctx *jxcontext.Context, key, configType, value string) (err er } db := dao.GetDB() - configList, err := dao.QueryConfigs(db, key, configType, "") - if err != nil { - return err - } - storeMapList, err := dao.GetStoresMapList(db, nil, nil, model.StoreStatusAll, model.StoreIsSyncYes, key) - if err != nil { - return err - } - dao.Begin(db) defer func() { - if r := recover(); r != nil || err != nil { + if r := recover(); r != nil { dao.Rollback(db) - if r != nil { - panic(r) - } + panic(r) } }() + configList, err := dao.QueryConfigs(db, key, configType, "") + if err != nil { + dao.Rollback(db) + return err + } if _, err = dao.UpdateEntityLogically(db, configList[0], map[string]interface{}{ "Value": value, }, ctx.GetUserName(), nil); err != nil { + dao.Rollback(db) return err } - for _, v := range storeMapList { - if _, err = dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, &model.StoreSkuBind{}, nil, ctx.GetUserName(), map[string]interface{}{ - model.FieldStoreID: v.StoreID, - }, dao.GetSyncStatusStructField(model.VendorNames[v.VendorID]), model.SyncFlagPriceMask); err != nil { + switch configType { + case model.ConfigTypePricePack: + storeMapList, err := dao.GetStoresMapList(db, nil, nil, model.StoreStatusAll, model.StoreIsSyncYes, key) + if err != nil { + dao.Rollback(db) return err } + for _, v := range storeMapList { + if _, err = dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, &model.StoreSkuBind{}, nil, ctx.GetUserName(), map[string]interface{}{ + model.FieldStoreID: v.StoreID, + }, dao.GetSyncStatusStructField(model.VendorNames[v.VendorID]), model.SyncFlagPriceMask); err != nil { + dao.Rollback(db) + return err + } + } + dao.Commit(db) + case model.ConfigTypeFreightPack: + dao.Commit(db) + storeMapList, err := dao.GetStoresMapList(db, nil, nil, model.StoreStatusAll, model.StoreIsSyncYes, "") + if err != nil { + return err + } + for _, v := range storeMapList { + if v.FreightDeductionPack == key { + _, _ = CurVendorSync.SyncStore(ctx, db, v.VendorID, v.StoreID, false, ctx.GetUserName()) + } + } + default: + dao.Commit(db) } - dao.Commit(db) return err }