You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

resource_queue.go 3.8 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. package models
  2. import (
  3. "code.gitea.io/gitea/modules/timeutil"
  4. "xorm.io/builder"
  5. )
  6. type ResourceQueue struct {
  7. ID int64 `xorm:"pk autoincr"`
  8. QueueCode string
  9. Cluster string `xorm:"notnull"`
  10. AiCenterCode string
  11. ComputeResource string
  12. AccCardType string
  13. CardsTotalNum int
  14. IsAutomaticSync bool
  15. Remark string
  16. CreatedTime timeutil.TimeStamp `xorm:"created"`
  17. CreatedBy int64
  18. UpdatedTime timeutil.TimeStamp `xorm:"updated"`
  19. UpdatedBy int64
  20. }
  21. func (r ResourceQueue) ConvertToRes() *ResourceQueueRes {
  22. return &ResourceQueueRes{
  23. ID: r.ID,
  24. QueueCode: r.QueueCode,
  25. Cluster: r.Cluster,
  26. AiCenterCode: r.AiCenterCode,
  27. ComputeResource: r.ComputeResource,
  28. AccCardType: r.AccCardType,
  29. CardsTotalNum: r.CardsTotalNum,
  30. UpdatedTime: r.UpdatedTime,
  31. Remark: r.Remark,
  32. }
  33. }
  34. type ResourceQueueReq struct {
  35. QueueCode string
  36. Cluster string `binding:"Required"`
  37. AiCenterCode string
  38. ComputeResource string `binding:"Required"`
  39. AccCardType string `binding:"Required"`
  40. CardsTotalNum int
  41. CreatorId int64
  42. IsAutomaticSync bool
  43. Remark string
  44. }
  45. func (r ResourceQueueReq) ToDTO() ResourceQueue {
  46. return ResourceQueue{
  47. QueueCode: r.QueueCode,
  48. Cluster: r.Cluster,
  49. AiCenterCode: r.AiCenterCode,
  50. ComputeResource: r.ComputeResource,
  51. AccCardType: r.AccCardType,
  52. CardsTotalNum: r.CardsTotalNum,
  53. IsAutomaticSync: r.IsAutomaticSync,
  54. Remark: r.Remark,
  55. CreatedBy: r.CreatorId,
  56. UpdatedBy: r.CreatorId,
  57. }
  58. }
  59. type SearchResourceQueueOptions struct {
  60. ListOptions
  61. Cluster string
  62. AiCenterCode string
  63. ComputeResource string
  64. AccCardType string
  65. }
  66. type ResourceQueueListRes struct {
  67. TotalSize int64
  68. List []*ResourceQueueRes
  69. }
  70. type ResourceQueueCodesRes struct {
  71. ID int64
  72. QueueCode string
  73. }
  74. func NewResourceQueueListRes(totalSize int64, list []ResourceQueue) *ResourceQueueListRes {
  75. resList := make([]*ResourceQueueRes, len(list))
  76. for i, v := range list {
  77. resList[i] = v.ConvertToRes()
  78. }
  79. return &ResourceQueueListRes{
  80. TotalSize: totalSize,
  81. List: resList,
  82. }
  83. }
  84. type ResourceQueueRes struct {
  85. ID int64
  86. QueueCode string
  87. Cluster string
  88. AiCenterCode string
  89. ComputeResource string
  90. AccCardType string
  91. CardsTotalNum int
  92. UpdatedTime timeutil.TimeStamp
  93. Remark string
  94. }
  95. func InsertResourceQueue(queue ResourceQueue) (int64, error) {
  96. return x.Insert(&queue)
  97. }
  98. func UpdateResourceQueueById(queueId int64, queue ResourceQueue) (int64, error) {
  99. return x.ID(queueId).Update(&queue)
  100. }
  101. func SearchResourceQueue(opts SearchResourceQueueOptions) (int64, []ResourceQueue, error) {
  102. var cond = builder.NewCond()
  103. if opts.Page <= 0 {
  104. opts.Page = 1
  105. }
  106. if opts.Cluster != "" {
  107. cond = cond.And(builder.Eq{"cluster": opts.Cluster})
  108. }
  109. if opts.AiCenterCode != "" {
  110. cond = cond.And(builder.Eq{"ai_center_code": opts.AiCenterCode})
  111. }
  112. if opts.ComputeResource != "" {
  113. cond = cond.And(builder.Eq{"compute_resource": opts.ComputeResource})
  114. }
  115. if opts.AccCardType != "" {
  116. cond = cond.And(builder.Eq{"acc_card_type": opts.AccCardType})
  117. }
  118. n, err := x.Where(cond).Count(&ResourceQueue{})
  119. if err != nil {
  120. return 0, nil, err
  121. }
  122. r := make([]ResourceQueue, 0)
  123. err = x.Where(cond).Desc("id").Limit(opts.PageSize, (opts.Page-1)*opts.PageSize).Find(&r)
  124. if err != nil {
  125. return 0, nil, err
  126. }
  127. return n, r, nil
  128. }
  129. func GetResourceQueueCodes() ([]*ResourceQueueCodesRes, error) {
  130. r := make([]*ResourceQueueCodesRes, 0)
  131. err := x.Table("resource_queue").Where("queue_code is not null AND queue_code != '' ").Find(&r)
  132. if err != nil {
  133. return nil, err
  134. }
  135. return r, nil
  136. }