From f8b6553ebccfa8559c0a12cfbe91d5e46e01e8b7 Mon Sep 17 00:00:00 2001 From: zouap Date: Mon, 13 Dec 2021 17:20:00 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E9=80=89=E6=8B=A9=E6=8E=92=E5=BA=8F?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zouap --- models/cloudbrain.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/models/cloudbrain.go b/models/cloudbrain.go index ceb552811..f54bbfbf9 100755 --- a/models/cloudbrain.go +++ b/models/cloudbrain.go @@ -962,12 +962,13 @@ func QueryModelTrainJobList(repoId int64) ([]*CloudbrainInfo, int, error) { cond = cond.And( builder.Eq{"Status": "COMPLETED"}, ) - sess.OrderBy("job_id DESC") + cloudbrains := make([]*CloudbrainInfo, 0) - if err := sess.Distinct("job_id,job_name").Table(&Cloudbrain{}).Where(cond). + if err := sess.Select("job_id,job_name").Table(&Cloudbrain{}).Where("job_id in (?)", sess.Distinct("job_id").Table(&Cloudbrain{}).Where(cond)).OrderBy("created_unix DESC"). Find(&cloudbrains); err != nil { return nil, 0, fmt.Errorf("Find: %v", err) } + return cloudbrains, int(len(cloudbrains)), nil } From 3d59d2307004e54ea6bd996b0d56304a0811fe42 Mon Sep 17 00:00:00 2001 From: zouap Date: Mon, 13 Dec 2021 17:30:05 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=EF=BC=8C=E8=A7=A3=E5=86=B3=E5=AF=BC=E5=85=A5=E6=96=B0=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=E6=97=B6=E9=80=89=E6=8B=A9=E7=9A=84=E9=A1=BA=E5=BA=8F?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zouap --- models/cloudbrain.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/models/cloudbrain.go b/models/cloudbrain.go index f54bbfbf9..5a817bbca 100755 --- a/models/cloudbrain.go +++ b/models/cloudbrain.go @@ -964,12 +964,21 @@ func QueryModelTrainJobList(repoId int64) ([]*CloudbrainInfo, int, error) { ) cloudbrains := make([]*CloudbrainInfo, 0) - if err := sess.Select("job_id,job_name").Table(&Cloudbrain{}).Where("job_id in (?)", sess.Distinct("job_id").Table(&Cloudbrain{}).Where(cond)).OrderBy("created_unix DESC"). + if err := sess.Select("job_id,job_name").Table(&Cloudbrain{}).Where(cond).OrderBy("created_unix DESC"). Find(&cloudbrains); err != nil { return nil, 0, fmt.Errorf("Find: %v", err) } - return cloudbrains, int(len(cloudbrains)), nil + keys := make(map[string]string) + uniqueElements := make([]*CloudbrainInfo, 0) + for _, entry := range cloudbrains { + if _, value := keys[entry.JobID]; !value { + keys[entry.JobID] = entry.JobName + uniqueElements = append(uniqueElements, entry) + } + } + + return uniqueElements, int(len(uniqueElements)), nil } func CloudbrainsVersionList(opts *CloudbrainsOptions) ([]*CloudbrainInfo, int, error) {