package controllers import ( "fmt" "github.com/gin-gonic/gin" "github.com/sirupsen/logrus" "psi/constant" "psi/database" systemReq "psi/models/request" systemRes "psi/models/response" "psi/service" "psi/utils" ) type ConfigApi struct{} //ConfigApi结构体 var configService = service.ConfigService{} // GetConfigList 获取配置列表 func (r *ConfigApi) GetConfigList(c *gin.Context) { var req systemReq.GetConfigListRequest if err := c.ShouldBindQuery(&req); err != nil { ValidAndFail(constant.LoggerChannelRequest, "配置列表请求参数异常", "参数错误: "+err.Error(), c, err) return } result, err := configService.GetConfigList(req, database.GetDB(c)) if err != nil { utils.FailWithRequestLog(constant.LoggerChannelWork, "配置列表异常", err, c, req) return } systemRes.OkWithDetailed(result, "查询成功", c) } // GetConfigDetail 获取配置详情 func (r *ConfigApi) GetConfigDetail(c *gin.Context) { idStr := c.Param("id") if idStr == "" { utils.ErrorLog(constant.LoggerChannelRequest, logrus.Fields{ "source": "获取配置详情请求参数异常", "err_msg": "ID参数不能为空", }) systemRes.FailWithValidateMessage("参数错误: ID不能为空", c) return } var id int64 if _, err := fmt.Sscanf(idStr, "%d", &id); err != nil || id <= 0 { utils.ErrorLog(constant.LoggerChannelRequest, logrus.Fields{ "source": "获取配置详情请求参数异常", "err_msg": "ID格式错误: " + idStr, }) systemRes.FailWithValidateMessage("参数错误: ID格式不正确", c) return } result, err := configService.GetConfigDetail(id, database.GetDB(c)) if err != nil { utils.FailWithRequestLog(constant.LoggerChannelWork, "配置详情异常", err, c, gin.H{"id": id}) return } systemRes.OkWithDetailed(result, "查询成功", c) } // CreateConfig 创建配置 func (r *ConfigApi) CreateConfig(c *gin.Context) { var req systemReq.AddConfigRequest if err := c.ShouldBind(&req); err != nil { ValidAndFail(constant.LoggerChannelRequest, "创建配置请求参数异常", "参数错误: "+err.Error(), c, err) return } id, err := configService.CreateConfig(req, database.GetDB(c)) if err != nil { utils.FailWithRequestLog(constant.LoggerChannelWork, "创建配置异常", err, c, req) return } systemRes.OkWithDetailed(gin.H{"id": id}, "创建成功", c) } // UpdateConfig 更新配置 func (r *ConfigApi) UpdateConfig(c *gin.Context) { var req systemReq.UpdateConfigRequest if err := c.ShouldBind(&req); err != nil { ValidAndFail(constant.LoggerChannelRequest, "更新配置请求参数异常", "参数错误: "+err.Error(), c, err) return } err := configService.UpdateConfig(req, database.GetDB(c)) if err != nil { utils.FailWithRequestLog(constant.LoggerChannelWork, "更新配置异常", err, c, req) return } systemRes.OkWithMessage("更新成功", c) } // DeleteConfig 删除配置 func (r *ConfigApi) DeleteConfig(c *gin.Context) { var req systemReq.DeleteConfigRequest if err := c.ShouldBind(&req); err != nil { ValidAndFail(constant.LoggerChannelRequest, "删除配置请求参数异常", "参数错误: "+err.Error(), c, err) return } err := configService.DeleteConfig(req, database.GetDB(c)) if err != nil { utils.FailWithRequestLog(constant.LoggerChannelWork, "删除配置异常", err, c, req) return } systemRes.OkWithMessage("删除成功", c) }