Files
rag/service/keyword.go

66 lines
1.4 KiB
Go
Raw Permalink Normal View History

2026-04-03 09:16:53 +08:00
package service
import (
"context"
"rag/dao"
"rag/model/dto"
"github.com/gogf/gf/v2/errors/gerror"
"github.com/gogf/gf/v2/util/gconv"
)
var Keyword = new(keywordService)
type keywordService struct{}
func (s *keywordService) Create(ctx context.Context, req *dto.CreateKeywordReq) (res *dto.CreateKeywordRes, err error) {
count, err := dao.Keyword.Count(ctx, &dto.ListKeywordReq{
DatasetId: req.DatasetId,
DocumentId: req.DocumentId,
Word: req.Word,
})
if err != nil {
return
}
if count > 0 {
err = gerror.New("关键词已存在")
return
}
var id int64
id, err = dao.Keyword.Insert(ctx, req)
if err != nil {
return
}
res = &dto.CreateKeywordRes{Id: id}
return
}
func (s *keywordService) Update(ctx context.Context, req *dto.UpdateKeywordReq) (err error) {
_, err = dao.Keyword.Update(ctx, req)
return
}
func (s *keywordService) Delete(ctx context.Context, req *dto.DeleteKeywordReq) (err error) {
_, err = dao.Keyword.Delete(ctx, req)
return
}
func (s *keywordService) Get(ctx context.Context, req *dto.GetKeywordReq) (res *dto.KeywordVO, err error) {
r, err := dao.Keyword.GetByID(ctx, req)
err = gconv.Struct(r, &res)
return
}
func (s *keywordService) List(ctx context.Context, req *dto.ListKeywordReq) (res *dto.ListKeywordRes, err error) {
list, total, err := dao.Keyword.List(ctx, req)
if err != nil {
return nil, err
}
res = &dto.ListKeywordRes{
Total: total,
}
err = gconv.Struct(list, &res.List)
return
}