m_dataset_file.go 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. package model
  2. import (
  3. "context"
  4. "gorm.io/gorm"
  5. "yx-dataset-server/app/errors"
  6. "yx-dataset-server/app/model/entity"
  7. "yx-dataset-server/app/schema"
  8. )
  9. // NewDatasetFile 创建DatasetFile存储实例
  10. func NewDatasetFile(db *gorm.DB) *DatasetFile {
  11. return &DatasetFile{db}
  12. }
  13. // DatasetFile DatasetFile存储
  14. type DatasetFile struct {
  15. db *gorm.DB
  16. }
  17. func (a *DatasetFile) getQueryOption(opts ...schema.DatasetFileQueryOptions) schema.DatasetFileQueryOptions {
  18. var opt schema.DatasetFileQueryOptions
  19. if len(opts) > 0 {
  20. opt = opts[0]
  21. }
  22. return opt
  23. }
  24. // Query 查询数据
  25. func (a *DatasetFile) Query(ctx context.Context, params schema.DatasetFileQueryParam, opts ...schema.DatasetFileQueryOptions) (*schema.DatasetFileQueryResult, error) {
  26. db := entity.GetDatasetFileDB(ctx, a.db)
  27. if v := params.DatasetId; v != "" {
  28. db = db.Where("dataset_id=?", v)
  29. }
  30. if v := params.RecordIDs; len(v) > 0 {
  31. db = db.Where("record_id in (?)", v)
  32. }
  33. db = db.Order("id DESC")
  34. opt := a.getQueryOption(opts...)
  35. var list entity.DatasetFiles
  36. pr, err := WrapPageQuery(ctx, db, opt.PageParam, &list)
  37. if err != nil {
  38. return nil, errors.ErrDBServerInternalError
  39. }
  40. qr := &schema.DatasetFileQueryResult{
  41. PageResult: pr,
  42. Data: list.ToSchemaDatasetFiles(),
  43. }
  44. return qr, nil
  45. }
  46. // Get 查询指定数据
  47. func (a *DatasetFile) Get(ctx context.Context, recordID string, opts ...schema.DatasetFileQueryOptions) (*schema.DatasetFile, error) {
  48. db := entity.GetDatasetFileDB(ctx, a.db).Where("record_id=?", recordID)
  49. var item entity.DatasetFile
  50. ok, err := FindOne(ctx, db, &item)
  51. if err != nil {
  52. return nil, errors.ErrDBServerInternalError
  53. } else if !ok {
  54. return nil, nil
  55. }
  56. return item.ToSchemaDatasetFile(), nil
  57. }
  58. // Create 创建数据
  59. func (a *DatasetFile) Create(ctx context.Context, item schema.DatasetFile) error {
  60. DatasetFile := entity.SchemaDatasetFile(item).ToDatasetFile()
  61. result := entity.GetDatasetFileDB(ctx, a.db).Create(DatasetFile)
  62. if err := result.Error; err != nil {
  63. return errors.ErrDBServerInternalError
  64. }
  65. return nil
  66. }
  67. // Update 更新数据
  68. func (a *DatasetFile) Update(ctx context.Context, recordID string, item schema.DatasetFile) error {
  69. DatasetFile := entity.SchemaDatasetFile(item).ToDatasetFile()
  70. result := entity.GetDatasetFileDB(ctx, a.db).Where("record_id=?", recordID).Omit("record_id", "creator").Updates(DatasetFile)
  71. if err := result.Error; err != nil {
  72. return errors.ErrDBServerInternalError
  73. }
  74. return nil
  75. }
  76. // Delete 删除数据
  77. func (a *DatasetFile) Delete(ctx context.Context, recordID string) error {
  78. result := entity.GetDatasetFileDB(ctx, a.db).Where("record_id=?", recordID).Delete(entity.DatasetFile{})
  79. if err := result.Error; err != nil {
  80. return errors.ErrDBServerInternalError
  81. }
  82. return nil
  83. }
  84. // BatchDelete 删除数据
  85. func (a *DatasetFile) BatchDelete(ctx context.Context, recordIDs []string) error {
  86. result := entity.GetDatasetFileDB(ctx, a.db).Where("record_id in (?)", recordIDs).Delete(entity.DatasetFile{})
  87. if err := result.Error; err != nil {
  88. return errors.ErrDBServerInternalError
  89. }
  90. return nil
  91. }
  92. // DeleteByDatasetId 删除数据
  93. func (a *DatasetFile) DeleteByDatasetIds(ctx context.Context, datasetIds []string) error {
  94. result := entity.GetDatasetFileDB(ctx, a.db).Where("dataset_id in (?)", datasetIds).Delete(entity.DatasetFile{})
  95. if err := result.Error; err != nil {
  96. return errors.ErrDBServerInternalError
  97. }
  98. return nil
  99. }
  100. // UpdateStatus 更新状态
  101. func (a *DatasetFile) UpdateStatus(ctx context.Context, recordID string, status int) error {
  102. result := entity.GetDatasetFileDB(ctx, a.db).Where("record_id=?", recordID).Update("status", status)
  103. if err := result.Error; err != nil {
  104. return errors.ErrDBServerInternalError
  105. }
  106. return nil
  107. }
  108. // UpdateParseStatus 更新解析状态
  109. func (a *DatasetFile) UpdateParseStatus(ctx context.Context, recordID string, status bool) error {
  110. result := entity.GetDatasetFileDB(ctx, a.db).Where("record_id = ?", recordID).Update("parse_status", status)
  111. if err := result.Error; err != nil {
  112. return errors.ErrDBServerInternalError
  113. }
  114. return nil
  115. }
  116. // UpdateEnabled 更新启用状态
  117. func (a *DatasetFile) UpdateEnabled(ctx context.Context, recordID string, status bool) error {
  118. result := entity.GetDatasetFileDB(ctx, a.db).Where("record_id=?", recordID).Update("enabled", status)
  119. if err := result.Error; err != nil {
  120. return errors.ErrDBServerInternalError
  121. }
  122. return nil
  123. }