UpdateConfig在有时会异步操作
This commit is contained in:
@@ -301,12 +301,12 @@ func DeleteConfig(ctx *jxcontext.Context, key, configType string) (err error) {
|
||||
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 == "" {
|
||||
return fmt.Errorf("修改配置必须给定key")
|
||||
return "", fmt.Errorf("修改配置必须给定key")
|
||||
}
|
||||
if err = checkConfig(model.SyncFlagModifiedMask, configType, key, value); err != nil {
|
||||
return err
|
||||
return "", err
|
||||
}
|
||||
|
||||
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, "")
|
||||
if err != nil {
|
||||
dao.Rollback(db)
|
||||
return err
|
||||
return "", err
|
||||
}
|
||||
if _, err = dao.UpdateEntityLogically(db, configList[0], map[string]interface{}{
|
||||
"Value": value,
|
||||
}, ctx.GetUserName(), nil); err != nil {
|
||||
dao.Rollback(db)
|
||||
return err
|
||||
return "", err
|
||||
}
|
||||
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
|
||||
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
|
||||
return "", err
|
||||
}
|
||||
}
|
||||
dao.Commit(db)
|
||||
@@ -348,17 +348,32 @@ func UpdateConfig(ctx *jxcontext.Context, key, configType, value string) (err er
|
||||
dao.Commit(db)
|
||||
storeMapList, err := dao.GetStoresMapList(db, nil, nil, model.StoreStatusAll, model.StoreIsSyncYes, "")
|
||||
if err != nil {
|
||||
return err
|
||||
return "", err
|
||||
}
|
||||
for _, v := range storeMapList {
|
||||
var storeMapList2 []*model.StoreMap
|
||||
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:
|
||||
dao.Commit(db)
|
||||
}
|
||||
return err
|
||||
return hint, err
|
||||
}
|
||||
|
||||
func QueryConfigs(key, configType, keyword string) (configList []*model.NewConfig, err error) {
|
||||
|
||||
@@ -278,7 +278,7 @@ func (c *CmsController) DeleteConfig() {
|
||||
// @router /UpdateConfig [put]
|
||||
func (c *CmsController) UpdateConfig() {
|
||||
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
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user