From 633878f05a3457df11f82b9581f24f17ea4652e5 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Wed, 25 Oct 2023 17:04:40 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=8F=82=E6=95=B0=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=85=8D=E7=BD=AE=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/system/controller/sys_config.go | 35 +++++++++++++++++++ src/modules/system/service/sys_config.go | 3 ++ src/modules/system/service/sys_config.impl.go | 11 ++++++ src/modules/system/system.go | 5 +++ 4 files changed, 54 insertions(+) diff --git a/src/modules/system/controller/sys_config.go b/src/modules/system/controller/sys_config.go index 73503657..75c569d3 100644 --- a/src/modules/system/controller/sys_config.go +++ b/src/modules/system/controller/sys_config.go @@ -218,3 +218,38 @@ func (s *SysConfigController) Export(c *gin.Context) { c.FileAttachment(saveFilePath, fileName) } + +// 参数配置修改配置参数 +// +// PUT /changeConfigValue +func (s *SysConfigController) ConfigValue(c *gin.Context) { + var body struct { + Key string `json:"key" binding:"required"` + Value string `json:"value" binding:"required"` + } + if err := c.ShouldBindBodyWith(&body, binding.JSON); err != nil { + c.JSON(400, result.CodeMsg(400, "参数错误")) + return + } + + // 检查是否存在 + info := s.sysConfigService.SelectConfigByKey(body.Key) + if info.ConfigKey != body.Key { + c.JSON(200, result.ErrMsg("无效 key")) + return + } + + // 与旧值相等不变更 + if info.ConfigValue == body.Value { + c.JSON(200, result.ErrMsg("变更状态与旧值相等!")) + return + } + info.ConfigValue = body.Value + info.UpdateBy = ctx.LoginUserToUserName(c) + rows := s.sysConfigService.UpdateConfig(info) + if rows > 0 { + c.JSON(200, result.Ok(nil)) + return + } + c.JSON(200, result.Err(nil)) +} diff --git a/src/modules/system/service/sys_config.go b/src/modules/system/service/sys_config.go index 4ec80db1..6e9be4e8 100644 --- a/src/modules/system/service/sys_config.go +++ b/src/modules/system/service/sys_config.go @@ -27,4 +27,7 @@ type ISysConfig interface { // ResetConfigCache 重置参数缓存数据 ResetConfigCache() + + // SelectConfigByKey 查询配置信息BY键 + SelectConfigByKey(configKey string) model.SysConfig } diff --git a/src/modules/system/service/sys_config.impl.go b/src/modules/system/service/sys_config.impl.go index c15eea06..2a50ceec 100644 --- a/src/modules/system/service/sys_config.impl.go +++ b/src/modules/system/service/sys_config.impl.go @@ -155,3 +155,14 @@ func (r *SysConfigImpl) clearConfigCache(configKey string) bool { delOk, _ := redis.DelKeys("", keys) return delOk } + +// SelectConfigByKey 查询配置信息BY键 +func (r *SysConfigImpl) SelectConfigByKey(configKey string) model.SysConfig { + sysConf := r.sysConfigRepository.SelectConfigList(model.SysConfig{ + ConfigKey: configKey, + }) + if len(sysConf) > 0 { + return sysConf[0] + } + return model.SysConfig{} +} diff --git a/src/modules/system/system.go b/src/modules/system/system.go index 07d226c3..82cb6a19 100644 --- a/src/modules/system/system.go +++ b/src/modules/system/system.go @@ -56,6 +56,11 @@ func Setup(router *gin.Engine) { collectlogs.OperateLog(collectlogs.OptionNew("参数配置信息", collectlogs.BUSINESS_TYPE_EXPORT)), controller.NewSysConfig.Export, ) + sysConfigGroup.PUT("/changeValue", + middleware.PreAuthorize(map[string][]string{"hasPerms": {"system:config:edit"}}), + collectlogs.OperateLog(collectlogs.OptionNew("参数配置信息", collectlogs.BUSINESS_TYPE_UPDATE)), + controller.NewSysConfig.ConfigValue, + ) } // 部门信息