|
- package models
-
- import (
- "code.gitea.io/gitea/modules/timeutil"
- "xorm.io/builder"
- )
-
- type ResourceQueue struct {
- ID int64 `xorm:"pk autoincr"`
- QueueCode string
- Cluster string `xorm:"notnull"`
- AiCenterCode string
- ComputeResource string
- AccCardType string
- CardsTotalNum int
- IsAutomaticSync bool
- Remark string
- CreatedTime timeutil.TimeStamp `xorm:"created"`
- CreatedBy int64
- UpdatedTime timeutil.TimeStamp `xorm:"updated"`
- UpdatedBy int64
- }
-
- func (r ResourceQueue) ConvertToRes() *ResourceQueueRes {
- return &ResourceQueueRes{
- ID: r.ID,
- QueueCode: r.QueueCode,
- Cluster: r.Cluster,
- AiCenterCode: r.AiCenterCode,
- ComputeResource: r.ComputeResource,
- AccCardType: r.AccCardType,
- CardsTotalNum: r.CardsTotalNum,
- UpdatedTime: r.UpdatedTime,
- Remark: r.Remark,
- }
- }
-
- type ResourceQueueReq struct {
- QueueCode string
- Cluster string `binding:"Required"`
- AiCenterCode string
- ComputeResource string `binding:"Required"`
- AccCardType string `binding:"Required"`
- CardsTotalNum int
- CreatorId int64
- IsAutomaticSync bool
- Remark string
- }
-
- func (r ResourceQueueReq) ToDTO() ResourceQueue {
- return ResourceQueue{
- QueueCode: r.QueueCode,
- Cluster: r.Cluster,
- AiCenterCode: r.AiCenterCode,
- ComputeResource: r.ComputeResource,
- AccCardType: r.AccCardType,
- CardsTotalNum: r.CardsTotalNum,
- IsAutomaticSync: r.IsAutomaticSync,
- Remark: r.Remark,
- CreatedBy: r.CreatorId,
- UpdatedBy: r.CreatorId,
- }
- }
-
- type SearchResourceQueueOptions struct {
- ListOptions
- Cluster string
- AiCenterCode string
- ComputeResource string
- AccCardType string
- }
-
- type ResourceQueueListRes struct {
- TotalSize int64
- List []*ResourceQueueRes
- }
-
- type ResourceQueueCodesRes struct {
- ID int64
- QueueCode string
- }
-
- func NewResourceQueueListRes(totalSize int64, list []ResourceQueue) *ResourceQueueListRes {
- resList := make([]*ResourceQueueRes, len(list))
- for i, v := range list {
- resList[i] = v.ConvertToRes()
- }
- return &ResourceQueueListRes{
- TotalSize: totalSize,
- List: resList,
- }
- }
-
- type ResourceQueueRes struct {
- ID int64
- QueueCode string
- Cluster string
- AiCenterCode string
- ComputeResource string
- AccCardType string
- CardsTotalNum int
- UpdatedTime timeutil.TimeStamp
- Remark string
- }
-
- func InsertResourceQueue(queue ResourceQueue) (int64, error) {
- return x.Insert(&queue)
- }
-
- func UpdateResourceQueueById(queueId int64, queue ResourceQueue) (int64, error) {
- return x.ID(queueId).Update(&queue)
- }
-
- func SearchResourceQueue(opts SearchResourceQueueOptions) (int64, []ResourceQueue, error) {
- var cond = builder.NewCond()
- if opts.Page <= 0 {
- opts.Page = 1
- }
- if opts.Cluster != "" {
- cond = cond.And(builder.Eq{"cluster": opts.Cluster})
- }
- if opts.AiCenterCode != "" {
- cond = cond.And(builder.Eq{"ai_center_code": opts.AiCenterCode})
- }
- if opts.ComputeResource != "" {
- cond = cond.And(builder.Eq{"compute_resource": opts.ComputeResource})
- }
- if opts.AccCardType != "" {
- cond = cond.And(builder.Eq{"acc_card_type": opts.AccCardType})
- }
- n, err := x.Where(cond).Count(&ResourceQueue{})
- if err != nil {
- return 0, nil, err
- }
-
- r := make([]ResourceQueue, 0)
- err = x.Where(cond).Desc("id").Limit(opts.PageSize, (opts.Page-1)*opts.PageSize).Find(&r)
- if err != nil {
- return 0, nil, err
- }
- return n, r, nil
- }
-
- func GetResourceQueueCodes() ([]*ResourceQueueCodesRes, error) {
- r := make([]*ResourceQueueCodesRes, 0)
- err := x.Table("resource_queue").Where("queue_code is not null AND queue_code != '' ").Find(&r)
- if err != nil {
- return nil, err
- }
- return r, nil
- }
|