saw-go/handler/knowledgeBase.go

102 lines
2.8 KiB
Go
Raw Normal View History

2025-04-08 15:58:29 +08:00
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()
}
}