package system import ( "kra/internal/biz/system" "kra/pkg/response" "github.com/gin-gonic/gin" ) type ParamsApi struct{} // CreateParamsRequest 创建参数请求 type CreateParamsRequest struct { Key string `json:"key" binding:"required"` Value string `json:"value" binding:"required"` Name string `json:"name"` Desc string `json:"desc"` } // UpdateParamsRequest 更新参数请求 type UpdateParamsRequest struct { ID uint `json:"ID" binding:"required"` Key string `json:"key" binding:"required"` Value string `json:"value" binding:"required"` Name string `json:"name"` Desc string `json:"desc"` } // DeleteParamsRequest 删除参数请求 type DeleteParamsRequest struct { ID uint `json:"ID" binding:"required"` } // GetParamsListRequest 获取参数列表请求 type GetParamsListRequest struct { Page int `json:"page"` PageSize int `json:"pageSize"` Key string `json:"key"` Name string `json:"name"` } // CreateSysParams 创建参数 func (p *ParamsApi) CreateSysParams(c *gin.Context) { var req CreateParamsRequest if err := c.ShouldBindJSON(&req); err != nil { response.FailWithMessage(err.Error(), c) return } params := &system.Params{ Key: req.Key, Value: req.Value, Name: req.Name, Desc: req.Desc, } if err := paramsUsecase.Create(c, params); err != nil { response.FailWithMessage("创建失败: "+err.Error(), c) return } response.OkWithMessage("创建成功", c) } // DeleteSysParams 删除参数 func (p *ParamsApi) DeleteSysParams(c *gin.Context) { var req DeleteParamsRequest if err := c.ShouldBindJSON(&req); err != nil { response.FailWithMessage(err.Error(), c) return } if err := paramsUsecase.Delete(c, req.ID); err != nil { response.FailWithMessage("删除失败: "+err.Error(), c) return } response.OkWithMessage("删除成功", c) } // UpdateSysParams 更新参数 func (p *ParamsApi) UpdateSysParams(c *gin.Context) { var req UpdateParamsRequest if err := c.ShouldBindJSON(&req); err != nil { response.FailWithMessage(err.Error(), c) return } params := &system.Params{ ID: req.ID, Key: req.Key, Value: req.Value, Name: req.Name, Desc: req.Desc, } if err := paramsUsecase.Update(c, params); err != nil { response.FailWithMessage("更新失败: "+err.Error(), c) return } response.OkWithMessage("更新成功", c) } // GetSysParams 根据Key获取参数 func (p *ParamsApi) GetSysParams(c *gin.Context) { key := c.Query("key") if key == "" { response.FailWithMessage("参数错误", c) return } params, err := paramsUsecase.GetByKey(c, key) if err != nil { response.FailWithMessage("获取失败", c) return } response.OkWithDetailed(gin.H{"sysParams": params}, "获取成功", c) } // GetSysParamsList 获取参数列表 func (p *ParamsApi) GetSysParamsList(c *gin.Context) { var req GetParamsListRequest if err := c.ShouldBindJSON(&req); err != nil { // GET请求使用默认值 req.Page = 1 req.PageSize = 10 } if req.Page == 0 { req.Page = 1 } if req.PageSize == 0 { req.PageSize = 10 } filters := make(map[string]interface{}) if req.Key != "" { filters["key"] = req.Key } if req.Name != "" { filters["name"] = req.Name } list, total, err := paramsUsecase.GetList(c, req.Page, req.PageSize, filters) if err != nil { response.FailWithMessage("获取失败", c) return } response.OkWithDetailed(response.PageResult{ List: list, Total: total, Page: req.Page, PageSize: req.PageSize, }, "获取成功", c) }