数据结构优化

This commit is contained in:
李琦
2026-01-20 09:01:10 +08:00
parent e7839795fb
commit 1e2044c0d4

View File

@@ -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
}