diff --git a/app/admin/apis/sys_config.go b/app/admin/apis/sys_config.go index 3d00676f..598b7c82 100644 --- a/app/admin/apis/sys_config.go +++ b/app/admin/apis/sys_config.go @@ -87,7 +87,6 @@ func (e SysConfig) GetSysConfigBySysApp(c *gin.Context) { e.OK(mp, "查询成功") } - // GetSysConfig 获取配置管理 // @Summary 获取配置管理 // @Description 获取配置管理 @@ -180,6 +179,73 @@ func (e SysConfig) UpdateSysConfig(c *gin.Context) { e.OK(control.GetId(), "更新成功") } +// SetSysConfig 设置配置 +// @Summary 设置配置 +// @Description 界面操作设置配置值 +// @Tags 配置管理 +// @Accept application/json +// @Product application/json +// @Param data body []dto.SysConfigSetReq true "body" +// @Success 200 {object} response.Response "{"code": 200, "message": "修改成功"}" +// @Router /api/v1/set-config [put] +// @Security Bearer +func (e SysConfig) SetSysConfig(c *gin.Context) { + s := service.SysConfig{} + req := make([]dto.SysConfigSetReq, 0) + err := e.MakeContext(c). + MakeOrm(). + Bind(&req). + MakeService(&s.Service). + Errors + if err != nil { + e.Logger.Error(err) + return + } + + err = s.SetSysConfig(&req) + if err != nil { + e.Error(http.StatusUnprocessableEntity, err, "更新失败") + e.Logger.Errorf("Orm获取失败, error:%s", err) + return + } + e.OK("", "更新成功") +} + +func (e SysConfig) GetSetSysConfig(c *gin.Context) { + s := service.SysConfig{} + err := e.MakeContext(c). + MakeOrm(). + MakeService(&s.Service). + Errors + if err != nil { + e.Logger.Error(err) + return + } + + d := make([]dto.SysConfigSetReq, 0) + err = s.GetSetSysConfig(&d) + if err != nil { + e.Logger.Errorf("GetSetSysConfig 查询失败, error:%s", err) + e.Error(500, err, "查询失败") + return + } + m := make(map[string]interface{}, 0) + for _, req := range d { + + if req.ConfigKey == "sys_app_logo" { + mp := make(map[string]interface{}, 0) + mp["url"] = req.ConfigValue + l := make([]map[string]interface{}, 0) + l = append(l, mp) + m[req.ConfigKey] = l + } else { + m[req.ConfigKey] = req.ConfigValue + } + + } + e.OK(m, "查询成功") +} + // DeleteSysConfig 删除配置管理 // @Summary 删除配置管理 // @Description 删除配置管理 diff --git a/app/admin/router/sys_config.go b/app/admin/router/sys_config.go index 034d54bc..d3242424 100644 --- a/app/admin/router/sys_config.go +++ b/app/admin/router/sys_config.go @@ -33,4 +33,10 @@ func registerSysConfigRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMidd r2.GET("", api.GetSysConfigBySysApp) } -} + r3 := v1.Group("/set-config") + { + r3.PUT("", api.SetSysConfig) + r3.GET("", api.GetSetSysConfig) + } + +} \ No newline at end of file diff --git a/app/admin/service/dto/sys_config.go b/app/admin/service/dto/sys_config.go index b78306a4..95d7a7e0 100644 --- a/app/admin/service/dto/sys_config.go +++ b/app/admin/service/dto/sys_config.go @@ -17,11 +17,11 @@ type SysConfigSearch struct { } type SysConfigOrder struct { - IdOrder string `search:"type:order;column:id;table:sys_config" form:"idOrder"` + IdOrder string `search:"type:order;column:id;table:sys_config" form:"idOrder"` ConfigNameOrder string `search:"type:order;column:config_name;table:sys_config" form:"configNameOrder"` - ConfigKeyOrder string `search:"type:order;column:config_key;table:sys_config" form:"configKeyOrder"` + ConfigKeyOrder string `search:"type:order;column:config_key;table:sys_config" form:"configKeyOrder"` ConfigTypeOrder string `search:"type:order;column:config_type;table:sys_config" form:"configTypeOrder"` - CreatedAtOrder string `search:"type:order;column:created_at;table:sys_config" form:"createdAtOrder"` + CreatedAtOrder string `search:"type:order;column:created_at;table:sys_config" form:"createdAtOrder"` } func (m *SysConfigSearch) GetNeedSearch() interface{} { @@ -59,6 +59,17 @@ func (s *SysConfigControl) GetId() interface{} { return s.Id } +// SysConfigSetReq 增、改使用的结构体 +type SysConfigSetReq struct { + ConfigKey string `json:"configKey" comment:""` + ConfigValue string `json:"configValue" comment:""` +} + +// Generate 结构体数据转化 从 SysConfigControl 至 system.SysConfig 对应的模型 +func (s *SysConfigSetReq) Generate(model *models.SysConfig) { + model.ConfigValue = s.ConfigValue +} + // SysConfigByKeyReq 根据Key获取配置 type SysConfigByKeyReq struct { ConfigKey string `uri:"configKey" search:"type:contains;column:config_key;table:sys_config"` diff --git a/app/admin/service/sys_config.go b/app/admin/service/sys_config.go index 938cfb1b..f4b640fd 100644 --- a/app/admin/service/sys_config.go +++ b/app/admin/service/sys_config.go @@ -98,6 +98,41 @@ func (e *SysConfig) UpdateSysConfig(c *dto.SysConfigControl) error { return nil } +// SetSysConfig 修改SysConfig对象 +func (e *SysConfig) SetSysConfig(c *[]dto.SysConfigSetReq) error { + var err error + for _, req := range *c { + var model = models.SysConfig{} + e.Orm.Where("config_key = ?",req.ConfigKey).First(&model) + if model.Id!=0{ + req.Generate(&model) + db := e.Orm.Save(&model) + err = db.Error + if err != nil { + e.Log.Errorf("Service SetSysConfig error:%s", err) + return err + } + if db.RowsAffected == 0 { + return errors.New("无权更新该数据") + } + } + } + return nil +} + +func (e *SysConfig) GetSetSysConfig(c *[]dto.SysConfigSetReq) error { + var err error + var data models.SysConfig + + err = e.Orm.Model(&data). + Find(c).Error + if err != nil { + e.Log.Errorf("Service GetSysConfigPage error:%s", err) + return err + } + return nil +} + // RemoveSysConfig 删除SysConfig func (e *SysConfig) RemoveSysConfig(d *dto.SysConfigById) error { var err error