66 lines
1.4 KiB
Go
66 lines
1.4 KiB
Go
|
|
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
|
||
|
|
}
|