feat 参数更新功能

This commit is contained in:
wenjianzhang
2021-05-28 17:12:55 +08:00
parent d69b7807c1
commit 32d8f4384a
4 changed files with 81 additions and 64 deletions
+35 -44
View File
@@ -179,38 +179,6 @@ 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).
@@ -222,7 +190,7 @@ func (e SysConfig) GetSetSysConfig(c *gin.Context) {
return
}
d := make([]dto.SysConfigSetReq, 0)
d := make([]dto.GetSetSysConfigReq, 0)
err = s.GetSetSysConfig(&d)
if err != nil {
e.Logger.Errorf("GetSetSysConfig 查询失败, error:%s", err)
@@ -231,21 +199,44 @@ func (e SysConfig) GetSetSysConfig(c *gin.Context) {
}
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
}
m[req.ConfigKey] = req.ConfigValue
}
e.OK(m, "查询成功")
}
// UpdateSetSysConfig 设置配置
// @Summary 设置配置
// @Description 界面操作设置配置值
// @Tags 配置管理
// @Accept application/json
// @Product application/json
// @Param data body []dto.GetSetSysConfigReq true "body"
// @Success 200 {object} response.Response "{"code": 200, "message": "修改成功"}"
// @Router /api/v1/set-config [put]
// @Security Bearer
func (e SysConfig) UpdateSetSysConfig(c *gin.Context) {
s := service.SysConfig{}
d := make([]dto.GetSetSysConfigReq, 0)
err := e.MakeContext(c).
MakeOrm().
Bind(&d).
MakeService(&s.Service).
Errors
if err != nil {
e.Logger.Error(err)
return
}
err = s.UpdateSetSysConfig(&d)
if err != nil {
e.Logger.Errorf("GetSetSysConfig 更新失败, error:%s", err)
e.Error(500, err, err.Error())
return
}
e.OK("", "更新成功")
}
// DeleteSysConfig 删除配置管理
// @Summary 删除配置管理
// @Description 删除配置管理
+1 -1
View File
@@ -35,7 +35,7 @@ func registerSysConfigRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMidd
r3 := v1.Group("/set-config")
{
r3.PUT("", api.SetSysConfig)
r3.PUT("", api.UpdateSetSysConfig)
r3.GET("", api.GetSetSysConfig)
}
+5 -4
View File
@@ -59,16 +59,17 @@ func (s *SysConfigControl) GetId() interface{} {
return s.Id
}
// SysConfigSetReq 增、改使用的结构体
type SysConfigSetReq struct {
ConfigKey string `json:"configKey" comment:""`
// GetSetSysConfigReq 增、改使用的结构体
type GetSetSysConfigReq struct {
ConfigKey string `json:"configKey" comment:""`
ConfigValue string `json:"configValue" comment:""`
}
// Generate 结构体数据转化 从 SysConfigControl 至 system.SysConfig 对应的模型
func (s *SysConfigSetReq) Generate(model *models.SysConfig) {
func (s *GetSetSysConfigReq) Generate(model *models.SysConfig) {
model.ConfigValue = s.ConfigValue
}
type UpdateSetSysConfigReq map[string]string
// SysConfigByKeyReq 根据Key获取配置
type SysConfigByKeyReq struct {
+40 -15
View File
@@ -99,28 +99,28 @@ func (e *SysConfig) UpdateSysConfig(c *dto.SysConfigControl) error {
}
// SetSysConfig 修改SysConfig对象
func (e *SysConfig) SetSysConfig(c *[]dto.SysConfigSetReq) error {
func (e *SysConfig) SetSysConfig(c *[]dto.GetSetSysConfigReq) 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("无权更新该数据")
}
}
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 {
func (e *SysConfig) GetSetSysConfig(c *[]dto.GetSetSysConfigReq) error {
var err error
var data models.SysConfig
@@ -133,6 +133,31 @@ func (e *SysConfig) GetSetSysConfig(c *[]dto.SysConfigSetReq) error {
return nil
}
func (e *SysConfig) UpdateSetSysConfig(c *[]dto.GetSetSysConfigReq) error {
m := *c
for _, req := range m {
var data models.SysConfig
if err := e.Orm.Where("config_key = ?", req.ConfigKey).
First(&data).Error;
err != nil {
e.Log.Errorf("Service GetSysConfigPage error:%s", err)
return err
}
if data.ConfigValue != req.ConfigValue {
data.ConfigValue = req.ConfigValue
if err := e.Orm.Save(&data).Error;
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