m_dataset_file.go 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  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. if v := params.DatasetId; len(v) > 0 {
  34. db = db.Where("dataset_id in (?)", v)
  35. }
  36. db = db.Order("id DESC")
  37. opt := a.getQueryOption(opts...)
  38. var list entity.DatasetFiles
  39. pr, err := WrapPageQuery(ctx, db, opt.PageParam, &list)
  40. if err != nil {
  41. return nil, errors.ErrDBServerInternalError
  42. }
  43. qr := &schema.DatasetFileQueryResult{
  44. PageResult: pr,
  45. Data: list.ToSchemaDatasetFiles(),
  46. }
  47. return qr, nil
  48. }
  49. // Get 查询指定数据
  50. func (a *DatasetFile) Get(ctx context.Context, recordID string, opts ...schema.DatasetFileQueryOptions) (*schema.DatasetFile, error) {
  51. db := entity.GetDatasetFileDB(ctx, a.db).Where("record_id=?", recordID)
  52. var item entity.DatasetFile
  53. ok, err := FindOne(ctx, db, &item)
  54. if err != nil {
  55. return nil, errors.ErrDBServerInternalError
  56. } else if !ok {
  57. return nil, nil
  58. }
  59. return item.ToSchemaDatasetFile(), nil
  60. }
  61. // Create 创建数据
  62. func (a *DatasetFile) Create(ctx context.Context, item schema.DatasetFile) error {
  63. DatasetFile := entity.SchemaDatasetFile(item).ToDatasetFile()
  64. result := entity.GetDatasetFileDB(ctx, a.db).Create(DatasetFile)
  65. if err := result.Error; err != nil {
  66. return errors.ErrDBServerInternalError
  67. }
  68. return nil
  69. }
  70. // Update 更新数据
  71. func (a *DatasetFile) Update(ctx context.Context, recordID string, item schema.DatasetFile) error {
  72. DatasetFile := entity.SchemaDatasetFile(item).ToDatasetFile()
  73. result := entity.GetDatasetFileDB(ctx, a.db).Where("record_id=?", recordID).Omit("record_id", "creator").Updates(DatasetFile)
  74. if err := result.Error; err != nil {
  75. return errors.ErrDBServerInternalError
  76. }
  77. return nil
  78. }
  79. // Delete 删除数据
  80. func (a *DatasetFile) Delete(ctx context.Context, recordID string) error {
  81. result := entity.GetDatasetFileDB(ctx, a.db).Where("record_id=?", recordID).Delete(entity.DatasetFile{})
  82. if err := result.Error; err != nil {
  83. return errors.ErrDBServerInternalError
  84. }
  85. return nil
  86. }
  87. // BatchDelete 删除数据
  88. func (a *DatasetFile) BatchDelete(ctx context.Context, recordIDs []string) error {
  89. result := entity.GetDatasetFileDB(ctx, a.db).Where("record_id in (?)", recordIDs).Delete(entity.DatasetFile{})
  90. if err := result.Error; err != nil {
  91. return errors.ErrDBServerInternalError
  92. }
  93. return nil
  94. }
  95. // DeleteByDatasetId 删除数据
  96. func (a *DatasetFile) DeleteByDatasetIds(ctx context.Context, datasetIds []string) error {
  97. result := entity.GetDatasetFileDB(ctx, a.db).Where("dataset_id in (?)", datasetIds).Delete(entity.DatasetFile{})
  98. if err := result.Error; err != nil {
  99. return errors.ErrDBServerInternalError
  100. }
  101. return nil
  102. }
  103. // UpdateStatus 更新状态
  104. func (a *DatasetFile) UpdateStatus(ctx context.Context, recordID string, status int) error {
  105. result := entity.GetDatasetFileDB(ctx, a.db).Where("record_id=?", recordID).Update("status", status)
  106. if err := result.Error; err != nil {
  107. return errors.ErrDBServerInternalError
  108. }
  109. return nil
  110. }
  111. // UpdateParseStatus 更新解析状态
  112. func (a *DatasetFile) UpdateParseStatus(ctx context.Context, recordID string, status int) error {
  113. result := entity.GetDatasetFileDB(ctx, a.db).Where("record_id = ?", recordID).Update("parse_status", status)
  114. if err := result.Error; err != nil {
  115. return errors.ErrDBServerInternalError
  116. }
  117. return nil
  118. }
  119. // UpdateEnabled 更新启用状态
  120. func (a *DatasetFile) UpdateEnabled(ctx context.Context, recordID string, status bool) error {
  121. result := entity.GetDatasetFileDB(ctx, a.db).Where("record_id=?", recordID).Update("enabled", status)
  122. if err := result.Error; err != nil {
  123. return errors.ErrDBServerInternalError
  124. }
  125. return nil
  126. }