e_dataset_relation.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package entity
  2. import (
  3. "context"
  4. "gorm.io/gorm"
  5. "yx-dataset-server/app/schema"
  6. )
  7. // GetDatasetRelationDB 获取 DatasetRelation 存储
  8. func GetDatasetRelationDB(ctx context.Context, defDB *gorm.DB) *gorm.DB {
  9. return getDBWithModel(ctx, defDB, DatasetRelation{})
  10. }
  11. // SchemaDatasetRelation DatasetRelation 对象
  12. type SchemaDatasetRelation schema.DatasetRelation
  13. // ToDatasetRelation 转换为 DatasetRelation 实体
  14. func (a SchemaDatasetRelation) ToDatasetRelation() *DatasetRelation {
  15. return &DatasetRelation{
  16. RecordID: a.RecordID,
  17. DatasetId: a.DatasetId,
  18. BizId: a.BizId,
  19. Type: a.Type,
  20. CreatorId: a.CreatorId,
  21. }
  22. }
  23. // ToSchemaDatasetRelation 转换为 DatasetRelation 对象
  24. func (a DatasetRelation) ToSchemaDatasetRelation() *schema.DatasetRelation {
  25. return &schema.DatasetRelation{
  26. RecordID: a.RecordID,
  27. DatasetId: a.DatasetId,
  28. BizId: a.BizId,
  29. Type: a.Type,
  30. CreatorId: a.CreatorId,
  31. }
  32. }
  33. // DatasetRelation 知识库关系映射(统一替代 org_dataset / user_dataset)
  34. type DatasetRelation struct {
  35. gorm.Model
  36. RecordID string `gorm:"column:record_id;size:32;index;"`
  37. DatasetId string `gorm:"column:dataset_id;size:32;index;"` // 知识库id
  38. BizId string `gorm:"column:biz_id;size:32;index;"` // 业务id:企业id 或 用户id
  39. Type int `gorm:"column:type;index;"` // 1 公共/共享 2 企业 3 个人
  40. CreatorId string `gorm:"column:creator_id;size:32;"` // 关联创建人
  41. }
  42. // DatasetRelations 列表
  43. type DatasetRelations []*DatasetRelation
  44. // ToSchemaDatasetRelations 批量转换
  45. func (a DatasetRelations) ToSchemaDatasetRelations() []*schema.DatasetRelation {
  46. list := make([]*schema.DatasetRelation, len(a))
  47. for i, item := range a {
  48. list[i] = item.ToSchemaDatasetRelation()
  49. }
  50. return list
  51. }