UpdateConfig在有时会异步操作
This commit is contained in:
@@ -301,12 +301,12 @@ func DeleteConfig(ctx *jxcontext.Context, key, configType string) (err error) {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func UpdateConfig(ctx *jxcontext.Context, key, configType, value string) (err error) {
|
func UpdateConfig(ctx *jxcontext.Context, key, configType, value string) (hint string, err error) {
|
||||||
if key == "" {
|
if key == "" {
|
||||||
return fmt.Errorf("修改配置必须给定key")
|
return "", fmt.Errorf("修改配置必须给定key")
|
||||||
}
|
}
|
||||||
if err = checkConfig(model.SyncFlagModifiedMask, configType, key, value); err != nil {
|
if err = checkConfig(model.SyncFlagModifiedMask, configType, key, value); err != nil {
|
||||||
return err
|
return "", err
|
||||||
}
|
}
|
||||||
|
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
@@ -320,27 +320,27 @@ func UpdateConfig(ctx *jxcontext.Context, key, configType, value string) (err er
|
|||||||
configList, err := dao.QueryConfigs(db, key, configType, "")
|
configList, err := dao.QueryConfigs(db, key, configType, "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
dao.Rollback(db)
|
dao.Rollback(db)
|
||||||
return err
|
return "", err
|
||||||
}
|
}
|
||||||
if _, err = dao.UpdateEntityLogically(db, configList[0], map[string]interface{}{
|
if _, err = dao.UpdateEntityLogically(db, configList[0], map[string]interface{}{
|
||||||
"Value": value,
|
"Value": value,
|
||||||
}, ctx.GetUserName(), nil); err != nil {
|
}, ctx.GetUserName(), nil); err != nil {
|
||||||
dao.Rollback(db)
|
dao.Rollback(db)
|
||||||
return err
|
return "", err
|
||||||
}
|
}
|
||||||
switch configType {
|
switch configType {
|
||||||
case model.ConfigTypePricePack:
|
case model.ConfigTypePricePack:
|
||||||
storeMapList, err := dao.GetStoresMapList(db, nil, nil, model.StoreStatusAll, model.StoreIsSyncYes, key)
|
storeMapList, err := dao.GetStoresMapList(db, nil, nil, model.StoreStatusAll, model.StoreIsSyncYes, key)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
dao.Rollback(db)
|
dao.Rollback(db)
|
||||||
return err
|
return "", err
|
||||||
}
|
}
|
||||||
for _, v := range storeMapList {
|
for _, v := range storeMapList {
|
||||||
if _, err = dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, &model.StoreSkuBind{}, nil, ctx.GetUserName(), map[string]interface{}{
|
if _, err = dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, &model.StoreSkuBind{}, nil, ctx.GetUserName(), map[string]interface{}{
|
||||||
model.FieldStoreID: v.StoreID,
|
model.FieldStoreID: v.StoreID,
|
||||||
}, dao.GetSyncStatusStructField(model.VendorNames[v.VendorID]), model.SyncFlagPriceMask); err != nil {
|
}, dao.GetSyncStatusStructField(model.VendorNames[v.VendorID]), model.SyncFlagPriceMask); err != nil {
|
||||||
dao.Rollback(db)
|
dao.Rollback(db)
|
||||||
return err
|
return "", err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
dao.Commit(db)
|
dao.Commit(db)
|
||||||
@@ -348,17 +348,32 @@ func UpdateConfig(ctx *jxcontext.Context, key, configType, value string) (err er
|
|||||||
dao.Commit(db)
|
dao.Commit(db)
|
||||||
storeMapList, err := dao.GetStoresMapList(db, nil, nil, model.StoreStatusAll, model.StoreIsSyncYes, "")
|
storeMapList, err := dao.GetStoresMapList(db, nil, nil, model.StoreStatusAll, model.StoreIsSyncYes, "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return "", err
|
||||||
}
|
}
|
||||||
for _, v := range storeMapList {
|
for _, v := range storeMapList {
|
||||||
|
var storeMapList2 []*model.StoreMap
|
||||||
if v.FreightDeductionPack == key {
|
if v.FreightDeductionPack == key {
|
||||||
_, _ = CurVendorSync.SyncStore(ctx, db, v.VendorID, v.StoreID, false, ctx.GetUserName())
|
storeMapList2 = append(storeMapList2, v)
|
||||||
|
}
|
||||||
|
if len(storeMapList2) > 0 {
|
||||||
|
task := tasksch.NewParallelTask("同步门店配送免运", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx,
|
||||||
|
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||||
|
storeMap := batchItemList[0].(*model.StoreMap)
|
||||||
|
_, err = CurVendorSync.SyncStore(ctx, db, storeMap.VendorID, storeMap.StoreID, false, ctx.GetUserName())
|
||||||
|
return retVal, err
|
||||||
|
}, storeMapList2)
|
||||||
|
tasksch.HandleTask(task, nil, true).Run()
|
||||||
|
if len(storeMapList2) < 5 {
|
||||||
|
_, err = task.GetResult(0)
|
||||||
|
} else {
|
||||||
|
hint = task.GetID()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
dao.Commit(db)
|
dao.Commit(db)
|
||||||
}
|
}
|
||||||
return err
|
return hint, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func QueryConfigs(key, configType, keyword string) (configList []*model.NewConfig, err error) {
|
func QueryConfigs(key, configType, keyword string) (configList []*model.NewConfig, err error) {
|
||||||
|
|||||||
@@ -278,7 +278,7 @@ func (c *CmsController) DeleteConfig() {
|
|||||||
// @router /UpdateConfig [put]
|
// @router /UpdateConfig [put]
|
||||||
func (c *CmsController) UpdateConfig() {
|
func (c *CmsController) UpdateConfig() {
|
||||||
c.callUpdateConfig(func(params *tCmsUpdateConfigParams) (retVal interface{}, errCode string, err error) {
|
c.callUpdateConfig(func(params *tCmsUpdateConfigParams) (retVal interface{}, errCode string, err error) {
|
||||||
err = cms.UpdateConfig(params.Ctx, params.Key, params.Type, params.Value)
|
retVal, err = cms.UpdateConfig(params.Ctx, params.Key, params.Type, params.Value)
|
||||||
return retVal, "", err
|
return retVal, "", err
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user