package handler import ( "photowall/internal/service" "photowall/pkg/response" "github.com/gin-gonic/gin" ) type ConfigHandler struct { cfg *service.ConfigService } func NewConfigHandler(cfg *service.ConfigService) *ConfigHandler { return &ConfigHandler{cfg: cfg} } // GetAll GET /api/admin/config 获取所有系统配置 func (h *ConfigHandler) GetAll(c *gin.Context) { list, err := h.cfg.GetAll() if err != nil { response.Internal(c, "获取配置失败") return } // 按分类分组返回 result := gin.H{ "basic": []gin.H{}, "geetest": []gin.H{}, "sms": []gin.H{}, "wechat": []gin.H{}, "storage": []gin.H{}, } for _, item := range list { result[item.Category] = append(result[item.Category].([]gin.H), gin.H{ "key": item.Key, "value": item.Value, "label": item.Label, "description": item.Description, "placeholder": item.Placeholder, "doc_link": item.DocLink, }) } response.OK(c, result) } // Update PUT /api/admin/config 批量更新配置 func (h *ConfigHandler) Update(c *gin.Context) { var req service.UpdateConfigReq if err := c.ShouldBindJSON(&req); err != nil { response.BadRequest(c, "参数错误:"+err.Error()) return } if err := h.cfg.Update(&req); err != nil { response.Internal(c, "更新配置失败") return } response.OK(c, gin.H{"message": "配置更新成功,部分配置需重启服务生效"}) }