diff --git a/models/cloudbrain.go b/models/cloudbrain.go index 1f5068ca6..c75dca3bd 100755 --- a/models/cloudbrain.go +++ b/models/cloudbrain.go @@ -2325,12 +2325,19 @@ func CloudbrainAll(opts *CloudbrainsOptions) ([]*CloudbrainInfo, int64, error) { } if opts.WorkServerNumber > 0 { - cond = cond.And( - builder.Eq{"COALESCE(cloudbrain.work_server_number, 1)": opts.WorkServerNumber}, - ) + if opts.WorkServerNumber == 1 { + cond = cond.And(builder.Or( + builder.Eq{"cloudbrain.work_server_number": 0}, + builder.Eq{"cloudbrain.work_server_number": 1}, + builder.IsNull{"cloudbrain.work_server_number"}, + )) + } else { + cond = cond.And( + builder.Eq{"cloudbrain.work_server_number": opts.WorkServerNumber}, + ) + } } - // 如果opts中包含了cardtype,那么添加查询条件 if opts.AccCardType != "" { cond = cond.And(builder.Eq{"cloudbrain_spec.acc_card_type": opts.AccCardType}) } diff --git a/routers/api/v1/repo/cloudbrain_dashboard.go b/routers/api/v1/repo/cloudbrain_dashboard.go index e6b436a4b..8b13b38dc 100755 --- a/routers/api/v1/repo/cloudbrain_dashboard.go +++ b/routers/api/v1/repo/cloudbrain_dashboard.go @@ -711,7 +711,6 @@ func GetCloudbrainsDetailData(ctx *context.Context) { return } recordBeginTime := recordCloudbrain[0].Cloudbrain.CreatedUnix - endTime := time.Now() listType := ctx.Query("listType") jobType := ctx.Query("jobType") jobStatus := ctx.Query("jobStatus") @@ -722,7 +721,29 @@ func GetCloudbrainsDetailData(ctx *context.Context) { accCardType := ctx.Query("accCardType") accCardsNum := ctx.Query("accCardsNum") workServerNumber := ctx.QueryInt("workServerNumber") - workServerNumber = 0 + beginTimeStr := ctx.QueryTrim("beginTime") + endTimeStr := ctx.QueryTrim("endTime") + var beginTimeUnix int64 + var endTimeUnix int64 + if beginTimeStr == "" || endTimeStr == "" { + beginTimeUnix = int64(recordBeginTime) + endTimeUnix = time.Now().Unix() + } else { + beginTime, err := time.ParseInLocation("2006-01-02", beginTimeStr, time.Local) + if err != nil { + log.Error("Can not ParseInLocation.", err) + ctx.Error(http.StatusBadRequest, ctx.Tr("ParseInLocation_get_error")) + return + } + beginTimeUnix = beginTime.Unix() + endTime, err := time.ParseInLocation("2006-01-02", endTimeStr, time.Local) + if err != nil { + log.Error("Can not ParseInLocation.", err) + ctx.Error(http.StatusBadRequest, ctx.Tr("ParseInLocation_get_error")) + return + } + endTimeUnix = endTime.Unix() + } if cloudBrainType == models.TypeCloudBrainOne && aiCenter == models.AICenterOfCloudBrainOne { aiCenter = "" @@ -790,8 +811,8 @@ func GetCloudbrainsDetailData(ctx *context.Context) { JobStatus: jobStatuses, JobTypes: jobTypes, NeedRepoInfo: true, - BeginTimeUnix: int64(recordBeginTime), - EndTimeUnix: endTime.Unix(), + BeginTimeUnix: beginTimeUnix, + EndTimeUnix: endTimeUnix, AiCenter: aiCenter, NeedDeleteInfo: needDeleteInfo, AccCardType: accCardType,