数据结构优化
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/niangaodev/art-code/models"
|
||||
"github.com/niangaodev/art-code/repositories"
|
||||
@@ -29,10 +31,41 @@ func AdminGetSettings(c *gin.Context) {
|
||||
}
|
||||
}
|
||||
|
||||
// AdminUpdateSettings 批量更新设置
|
||||
// AdminUpdateSettings 批量更新设置或单个设置更新
|
||||
func AdminUpdateSettings(c *gin.Context) {
|
||||
// 读取原始 body
|
||||
body, err := c.GetRawData()
|
||||
if err != nil {
|
||||
utils.Error(c, 400, "Invalid request")
|
||||
return
|
||||
}
|
||||
|
||||
// 检查 JSON 是否包含 keyName 字段来判断是 Setting 对象还是 map
|
||||
var temp map[string]interface{}
|
||||
if err := json.Unmarshal(body, &temp); err == nil {
|
||||
if _, ok := temp["keyName"]; ok {
|
||||
// 如果包含 keyName 字段,认为是 Setting 对象
|
||||
var setting models.Setting
|
||||
if err := json.Unmarshal(body, &setting); err != nil {
|
||||
utils.Error(c, 400, "Invalid request")
|
||||
return
|
||||
}
|
||||
if setting.KeyName == "" {
|
||||
utils.Error(c, 400, "keyName is required")
|
||||
return
|
||||
}
|
||||
if err := repositories.UpdateSetting(&setting); err != nil {
|
||||
utils.ServerError(c, err)
|
||||
return
|
||||
}
|
||||
utils.SuccessWithMsg(c, "Setting updated successfully", nil)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// 如果不包含 keyName,认为是批量更新的 map
|
||||
var req map[string]string
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
if err := json.Unmarshal(body, &req); err != nil {
|
||||
utils.Error(c, 400, "Invalid request")
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user