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 }