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 QuestionQaItem struct{} // GetQuestionQaItemPage 获取问答题库明细列表-分页 func (r *QuestionQaItem) GetQuestionQaItemPage(c *gin.Context) { questionQaItemRequest := requests.QuestionQaItemRequest{} req := questionQaItemRequest.GetQuestionQaItemPage 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 } if req.Page == 0 { req.Page = 1 } if req.PageSize == 0 { req.PageSize = 20 } questionQaItemDao := dao.QuestionQaItemDao{} questionQaItem, total, err := questionQaItemDao.GetQuestionQaItemPageSearch(req, req.Page, req.PageSize) if err != nil { responses.FailWithMessage(err.Error(), c) return } // 处理返回值 questionQaItemPageResponses := dto.GetQuestionQaItemListDto(questionQaItem) if err != nil { responses.FailWithMessage(err.Error(), c) return } result := make(map[string]interface{}) result["page"] = req.Page result["page_size"] = req.PageSize result["total"] = total result["data"] = questionQaItemPageResponses responses.OkWithData(result, c) } // DeleteQuestionQaItem 删除问答题库明细 func (r *QuestionQaItem) DeleteQuestionQaItem(c *gin.Context) { questionQaItemRequest := requests.QuestionQaItemRequest{} req := questionQaItemRequest.DeleteQuestionQaItem 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 } // 业务处理 questionQaItemService := service.QuestionQaItemService{} _, err := questionQaItemService.DeleteQuestionQaItem(req) if err != nil { responses.FailWithMessage(err.Error(), c) return } responses.Ok(c) } // PutQuestionQaItemMust 修改必选 func (r *QuestionQaItem) PutQuestionQaItemMust(c *gin.Context) { questionQaItemRequest := requests.QuestionQaItemRequest{} req := questionQaItemRequest.PutQuestionQaItemMust 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("item_id") if id == "" { responses.FailWithMessage("缺少参数", c) return } // 将 id 转换为 int64 类型 itemId, err := strconv.ParseInt(id, 10, 64) if err != nil { responses.Fail(c) return } // 业务处理 questionQaItemService := service.QuestionQaItemService{} _, err = questionQaItemService.PutQuestionQaItemMust(itemId, req) if err != nil { responses.FailWithMessage(err.Error(), c) return } responses.Ok(c) }