public async Task <Result> Put([FromBody] AppSetting model)
        {
            // 由于涉及高级权限,影响系统运行,目前暂时控制系统用户才可以修改
            // TODO 待优化
            var user = await _workContext.GetCurrentOrThrowAsync();

            if (user.Id != (int)UserWithId.System)
            {
                return(Result.Fail("您不是系统管理员!您没有操作权限"));
            }

            var setting = await _appSettingRepository.Query().FirstOrDefaultAsync(x => x.Id == model.Id && x.IsVisibleInCommonSettingPage);

            if (setting != null)
            {
                if (setting.FormatType == AppSettingFormatType.Json)
                {
                    var type = Type.GetType(setting.Type);
                    if (type == null)
                    {
                        return(Result.Fail("设置类型异常"));
                    }
                    var obj = JsonConvert.DeserializeObject(model.Value, type);
                    if (obj == null)
                    {
                        return(Result.Fail("设置参数异常"));
                    }
                }

                setting.Value = model.Value;
                var count = await _appSettingRepository.SaveChangesAsync();

                if (count > 0)
                {
                    await _appSettingService.ClearCache(setting.Id);

                    _configurationRoot.Reload();

                    //if (setting.FormatType == AppSettingFormatType.Json)
                    //{
                    //    // 绑定方式
                    //    // Singleton/Option
                    //    // 是否可以重新注入绑定??
                    //    var type = Type.GetType(setting.Type);
                    //    if (type == null)
                    //    {
                    //        return Result.Fail("配置类型异常");
                    //    }
                    //    //var obj = type.Assembly.CreateInstance(type.FullName);
                    //    var obj = Activator.CreateInstance(type);
                    //    //var pis = type.GetType().GetProperties();
                    //    //foreach (var pi in pis)
                    //    //{
                    //    //    obj.GetType().GetField(pi.Name).SetValue(obj, objVal[pi.Name]);
                    //    //}
                    //    return Result.Ok();
                    //}
                }
            }
            return(Result.Ok());
        }