47 lines
1.0 KiB
Go
47 lines
1.0 KiB
Go
package service
|
|
|
|
import (
|
|
"context"
|
|
|
|
"rag-local/kb/consts"
|
|
"rag-local/kb/dao"
|
|
"rag-local/kb/model/entity"
|
|
|
|
"github.com/gogf/gf/v2/errors/gerror"
|
|
"github.com/gogf/gf/v2/frame/g"
|
|
)
|
|
|
|
var DatasetService = &datasetService{}
|
|
|
|
type datasetService struct{}
|
|
|
|
func (s *datasetService) List(ctx context.Context) ([]*entity.Dataset, error) {
|
|
return dao.Dataset.List(ctx)
|
|
}
|
|
|
|
func (s *datasetService) Save(ctx context.Context, m *entity.Dataset) (int64, error) {
|
|
if m.Status == 0 {
|
|
m.Status = 1
|
|
}
|
|
if m.Id > 0 {
|
|
if err := dao.Dataset.Update(ctx, m); err != nil {
|
|
return 0, err
|
|
}
|
|
return m.Id, nil
|
|
}
|
|
return dao.Dataset.Insert(ctx, m)
|
|
}
|
|
|
|
func (s *datasetService) Delete(ctx context.Context, id int64) error {
|
|
// 有文档的数据集不允许删除
|
|
count, err := g.DB(consts.DbGroupDefault).Model(consts.TableNameDocument).Ctx(ctx).
|
|
Where("dataset_id", id).Count()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if count > 0 {
|
|
return gerror.New("数据集下存在文档,无法删除")
|
|
}
|
|
return dao.Dataset.Delete(ctx, id)
|
|
}
|