feat():learning后台管理项目初始化
This commit is contained in:
189
internal/api/handlers/system_config_handler.go
Normal file
189
internal/api/handlers/system_config_handler.go
Normal file
@@ -0,0 +1,189 @@
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"goalfymax-admin/internal/models"
|
||||
"goalfymax-admin/internal/services"
|
||||
"goalfymax-admin/pkg/utils"
|
||||
"strconv"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
// SystemConfigHandler 系统配置处理器
|
||||
type SystemConfigHandler struct {
|
||||
service services.SystemConfigService
|
||||
response *utils.Response
|
||||
logger *utils.Logger
|
||||
}
|
||||
|
||||
// NewSystemConfigHandler 创建系统配置处理器
|
||||
func NewSystemConfigHandler(service services.SystemConfigService, logger *utils.Logger) *SystemConfigHandler {
|
||||
return &SystemConfigHandler{
|
||||
service: service,
|
||||
response: utils.NewResponse(),
|
||||
logger: logger,
|
||||
}
|
||||
}
|
||||
|
||||
// Create 创建系统配置
|
||||
func (h *SystemConfigHandler) Create(c *gin.Context) {
|
||||
var req models.SystemConfigRequest
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
h.response.ValidateError(c, err)
|
||||
return
|
||||
}
|
||||
|
||||
config, err := h.service.Create(&req)
|
||||
if err != nil {
|
||||
h.logger.Error("创建系统配置失败", zap.Error(err))
|
||||
h.response.InternalServerError(c, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
h.response.Success(c, config)
|
||||
}
|
||||
|
||||
// GetByID 获取系统配置详情
|
||||
func (h *SystemConfigHandler) GetByID(c *gin.Context) {
|
||||
idStr := c.Param("id")
|
||||
id, err := strconv.ParseUint(idStr, 10, 32)
|
||||
if err != nil {
|
||||
h.response.BadRequest(c, "无效的ID")
|
||||
return
|
||||
}
|
||||
|
||||
config, err := h.service.GetByID(uint(id))
|
||||
if err != nil {
|
||||
h.logger.Error("获取系统配置失败", zap.Error(err))
|
||||
h.response.NotFound(c, "配置不存在")
|
||||
return
|
||||
}
|
||||
|
||||
h.response.Success(c, config)
|
||||
}
|
||||
|
||||
// GetByKey 根据配置标识获取系统配置
|
||||
func (h *SystemConfigHandler) GetByKey(c *gin.Context) {
|
||||
key := c.Param("key")
|
||||
if key == "" {
|
||||
h.response.BadRequest(c, "配置标识不能为空")
|
||||
return
|
||||
}
|
||||
|
||||
config, err := h.service.GetByKey(key)
|
||||
if err != nil {
|
||||
h.logger.Error("获取系统配置失败", zap.Error(err))
|
||||
h.response.NotFound(c, "配置不存在")
|
||||
return
|
||||
}
|
||||
|
||||
h.response.Success(c, config)
|
||||
}
|
||||
|
||||
// List 获取系统配置列表
|
||||
func (h *SystemConfigHandler) List(c *gin.Context) {
|
||||
var req models.SystemConfigListRequest
|
||||
if err := c.ShouldBindQuery(&req); err != nil {
|
||||
h.response.ValidateError(c, err)
|
||||
return
|
||||
}
|
||||
|
||||
// 设置默认值
|
||||
if req.Page <= 0 {
|
||||
req.Page = 1
|
||||
}
|
||||
if req.Size <= 0 {
|
||||
req.Size = 20
|
||||
}
|
||||
|
||||
configs, total, err := h.service.List(&req)
|
||||
if err != nil {
|
||||
h.logger.Error("获取系统配置列表失败", zap.Error(err))
|
||||
h.response.InternalServerError(c, "获取列表失败")
|
||||
return
|
||||
}
|
||||
|
||||
h.response.Page(c, configs, total, req.Page, req.Size)
|
||||
}
|
||||
|
||||
// Update 更新系统配置
|
||||
func (h *SystemConfigHandler) Update(c *gin.Context) {
|
||||
idStr := c.Param("id")
|
||||
id, err := strconv.ParseUint(idStr, 10, 32)
|
||||
if err != nil {
|
||||
h.response.BadRequest(c, "无效的ID")
|
||||
return
|
||||
}
|
||||
|
||||
var req models.SystemConfigUpdateRequest
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
h.response.ValidateError(c, err)
|
||||
return
|
||||
}
|
||||
|
||||
config, err := h.service.Update(uint(id), &req)
|
||||
if err != nil {
|
||||
h.logger.Error("更新系统配置失败", zap.Error(err))
|
||||
h.response.InternalServerError(c, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
h.response.Success(c, config)
|
||||
}
|
||||
|
||||
// Delete 删除系统配置
|
||||
func (h *SystemConfigHandler) Delete(c *gin.Context) {
|
||||
idStr := c.Param("id")
|
||||
id, err := strconv.ParseUint(idStr, 10, 32)
|
||||
if err != nil {
|
||||
h.response.BadRequest(c, "无效的ID")
|
||||
return
|
||||
}
|
||||
|
||||
err = h.service.Delete(uint(id))
|
||||
if err != nil {
|
||||
h.logger.Error("删除系统配置失败", zap.Error(err))
|
||||
h.response.InternalServerError(c, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
h.response.Success(c, nil)
|
||||
}
|
||||
|
||||
// UpdateStatus 更新状态
|
||||
func (h *SystemConfigHandler) UpdateStatus(c *gin.Context) {
|
||||
idStr := c.Param("id")
|
||||
id, err := strconv.ParseUint(idStr, 10, 32)
|
||||
if err != nil {
|
||||
h.response.BadRequest(c, "无效的ID")
|
||||
return
|
||||
}
|
||||
|
||||
var req models.SystemConfigUpdateStatusRequest
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
h.response.ValidateError(c, err)
|
||||
return
|
||||
}
|
||||
|
||||
err = h.service.UpdateStatus(uint(id), req.Status)
|
||||
if err != nil {
|
||||
h.logger.Error("更新系统配置状态失败", zap.Error(err))
|
||||
h.response.InternalServerError(c, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
h.response.Success(c, nil)
|
||||
}
|
||||
|
||||
// GetAll 获取所有系统配置
|
||||
func (h *SystemConfigHandler) GetAll(c *gin.Context) {
|
||||
configs, err := h.service.GetAll()
|
||||
if err != nil {
|
||||
h.logger.Error("获取所有系统配置失败", zap.Error(err))
|
||||
h.response.InternalServerError(c, "获取配置失败")
|
||||
return
|
||||
}
|
||||
|
||||
h.response.Success(c, configs)
|
||||
}
|
||||
Reference in New Issue
Block a user