package handler import ( "StuAcaWorksAI/proto" "StuAcaWorksAI/service" "github.com/gin-gonic/gin" "net/http" ) func SetUpKnowledgeBaseGroup(router *gin.Engine) { knowledgeBaseGroup := router.Group("/knowledgeBase") knowledgeBaseGroup.POST("/create", CreateKnowledgeBase) // 创建知识库 knowledgeBaseGroup.POST("/update", UpdateKnowledgeBase) // 更新知识库 knowledgeBaseGroup.POST("/list", GetKnowledgeBaseList) // 获取知识库列表 knowledgeBaseGroup.POST("/delete", DeleteKnowledgeBase) // 删除知识库 } func CreateKnowledgeBase(c *gin.Context) { id, _ := c.Get("id") userID := int(id.(float64)) // 处理创建知识库的逻辑 var req proto.KnowledgeBaseReq var resp proto.GenerateResp if err := c.ShouldBind(&req); err == nil { knowledgeBase, err2 := service.CreateKnowledgeBase(userID, req) if err2 == nil { resp.Code = proto.SuccessCode resp.Message = "success" resp.Data = knowledgeBase } else { resp.Code = proto.ParameterError resp.Message = "内部错误:" + err2.Error() } } else { resp.Code = proto.ParameterError resp.Message = "参数错误:" + err.Error() } c.JSON(http.StatusOK, resp) } func UpdateKnowledgeBase(c *gin.Context) { id, _ := c.Get("id") userID := int(id.(float64)) // 处理更新知识库的逻辑 var req proto.KnowledgeBaseReq var resp proto.GenerateResp if err := c.ShouldBind(&req); err == nil { knowledgeBase, err2 := service.UpdateKnowledgeBase(userID, req) if err2 == nil { resp.Code = proto.SuccessCode resp.Message = "success" resp.Data = knowledgeBase } else { resp.Code = proto.ParameterError resp.Message = "内部错误:" + err2.Error() } } else { resp.Code = proto.ParameterError resp.Message = "参数错误:" + err.Error() } c.JSON(http.StatusOK, resp) } func GetKnowledgeBaseList(c *gin.Context) { id, _ := c.Get("id") userID := int(id.(float64)) // 处理获取知识库列表的逻辑 var resp proto.GenerateResp knowledgeBases, err2 := service.GetKnowledgeBaseList(userID) if err2 == nil { resp.Code = proto.SuccessCode resp.Message = "success" resp.Data = knowledgeBases } else { resp.Code = proto.ParameterError resp.Message = "内部错误:" + err2.Error() } c.JSON(http.StatusOK, resp) } func DeleteKnowledgeBase(c *gin.Context) { id, _ := c.Get("id") userID := int(id.(float64)) // 处理更新知识库的逻辑 var req proto.KnowledgeBaseReq var resp proto.GenerateResp if err := c.ShouldBind(&req); err == nil { err2 := service.DeleteKnowledgeBase(userID, req) if err2 == nil { resp.Code = proto.SuccessCode resp.Message = "success" } else { resp.Code = proto.ParameterError resp.Message = "内部处理错误:" + err2.Error() } } else { resp.Code = proto.ParameterError resp.Message = "参数错误:" + err.Error() } c.JSON(http.StatusOK, resp) }