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()
|
|
|
|
|
}
|
2025-04-26 18:59:55 +08:00
|
|
|
c.JSON(http.StatusOK, resp)
|
2025-04-08 15:58:29 +08:00
|
|
|
|
|
|
|
|
}
|