package controller import ( "github.com/gin-gonic/gin" "knowledge/api/dao" "knowledge/api/dto" "knowledge/api/requests" "knowledge/api/responses" "knowledge/api/service" "knowledge/global" "knowledge/utils" "strconv" ) type Label struct{} // GetLabelList 获取标签列表 func (r *Label) GetLabelList(c *gin.Context) { labelRequest := requests.LabelRequest{} req := labelRequest.GetLabelList if err := c.ShouldBind(&req); err != nil { responses.FailWithMessage(err.Error(), c) return } // 参数验证 if err := global.Validate.Struct(req); err != nil { responses.FailWithMessage(utils.Translate(err), c) return } labelDao := dao.LabelDao{} label, err := labelDao.GetLabelListSearch(req) if err != nil { responses.FailWithMessage(err.Error(), c) return } // 处理返回值 GetLabelListResponses := dto.GetLabelListDto(label) if err != nil { responses.FailWithMessage(err.Error(), c) return } responses.OkWithData(GetLabelListResponses, c) } // AddLabel 新增标签 func (r *Label) AddLabel(c *gin.Context) { labelRequest := requests.LabelRequest{} req := labelRequest.AddLabel if err := c.ShouldBindJSON(&req); err != nil { responses.FailWithMessage(err.Error(), c) return } // 参数验证 if err := global.Validate.Struct(req); err != nil { responses.FailWithMessage(utils.Translate(err), c) return } // 业务处理 labelService := service.LabelService{} _, err := labelService.AddLabel(req) if err != nil { responses.FailWithMessage(err.Error(), c) return } responses.Ok(c) } // PutLabel 修改标签 func (r *Label) PutLabel(c *gin.Context) { labelRequest := requests.LabelRequest{} req := labelRequest.PutLabel if err := c.ShouldBindJSON(&req); err != nil { responses.FailWithMessage(err.Error(), c) return } // 参数验证 if err := global.Validate.Struct(req); err != nil { responses.FailWithMessage(utils.Translate(err), c) return } id := c.Param("label_id") if id == "" { responses.FailWithMessage("缺少参数", c) return } // 将 id 转换为 int64 类型 labelId, err := strconv.ParseInt(id, 10, 64) if err != nil { responses.Fail(c) return } // 业务处理 labelService := service.LabelService{} _, err = labelService.PutLabel(labelId, req) if err != nil { responses.FailWithMessage(err.Error(), c) return } responses.Ok(c) }