repo_object.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package repositories
  2. import (
  3. "fmt"
  4. "time"
  5. "xorm.io/xorm"
  6. "xps/datamodels"
  7. "xps/viewmodels"
  8. )
  9. type RepoObjectRepo struct {
  10. engine *xorm.Engine
  11. }
  12. func NewRepoObjectRepo(engine *xorm.Engine) *RepoObjectRepo {
  13. return &RepoObjectRepo{
  14. engine: engine,
  15. }
  16. }
  17. func (d *RepoObjectRepo) GetListById(repoId int64) ([]viewmodels.RepoObjectInfo, error) {
  18. sqlSelect := ` SELECT A.* `
  19. sqlFrom := ` FROM repo_object AS A `
  20. sqlWhere := ` WHERE A.deleted_flag = 0 `
  21. sqlWhere += fmt.Sprintf(" AND A.repo_id = %d ", repoId)
  22. sqlOrderBy := " ORDER BY A.model_id, A.object_id ASC "
  23. datalist := make([]viewmodels.RepoObjectInfo, 0)
  24. err := d.engine.SQL(sqlSelect + sqlFrom + sqlWhere + sqlOrderBy).Find(&datalist)
  25. if err != nil {
  26. return nil, err
  27. } else {
  28. return datalist, nil
  29. }
  30. }
  31. func (d *RepoObjectRepo) Create(data *datamodels.RepoObject) error {
  32. data.CreatedAt = time.Now()
  33. _, err := d.engine.Insert(data)
  34. return err
  35. }
  36. func (d *RepoObjectRepo) Delete(repoId, modelId, objectId int64) error {
  37. data := &datamodels.RepoObject{}
  38. _, err := d.engine.
  39. Where("repo_id = ?", repoId).
  40. Where("model_id = ?", modelId).
  41. Where("object_id = ?", objectId).
  42. Delete(data)
  43. return err
  44. }