|
|
|
@@ -16,8 +16,9 @@ import ( |
|
|
|
) |
|
|
|
|
|
|
|
type TimeCloudbrainsNum struct { |
|
|
|
TimeCloudbrainNum []DateCloudbrainNum `json:"dateCloudbrainNum"` |
|
|
|
TotalCount int `json:"totalCount"` |
|
|
|
TimeCloudbrainNum []DateCloudbrainNum `json:"dateCloudbrainNum"` |
|
|
|
TotalCount int `json:"totalCount"` |
|
|
|
TimeCloudbrainInfo []DateCloudbrainInfo `json:"timeCloudbrainInfo"` |
|
|
|
} |
|
|
|
type DateCloudbrainNum struct { |
|
|
|
Date string `json:"date"` |
|
|
|
@@ -27,6 +28,11 @@ type DateCloudbrainNum struct { |
|
|
|
CloudBrainPeriodNum map[int]int `json:"cloudBrainPeriodNum"` |
|
|
|
CloudBrainComputeResource map[string]int `json:"cloudBrainComputeResource"` |
|
|
|
} |
|
|
|
type DateCloudbrainInfo struct { |
|
|
|
Date string `json:"date"` |
|
|
|
CloudBrainPeriodNum map[int]int `json:"cloudBrainPeriodNum"` |
|
|
|
CloudBrainComputeResource map[string]int `json:"cloudBrainComputeResource"` |
|
|
|
} |
|
|
|
|
|
|
|
func GetAllCloudbrainsOverview(ctx *context.Context) { |
|
|
|
// recordBeginTime, err := getBrainRecordBeginTime() |
|
|
|
@@ -153,33 +159,33 @@ func GetAllCloudbrainsTrend(ctx *context.Context) { |
|
|
|
beginTime = brainRecordBeginTime |
|
|
|
endTime = now |
|
|
|
endTimeTemp = beginTime.AddDate(0, 1, 0) |
|
|
|
dateCloudbrainNum, err = getYearCloudbrainNum(beginTime, endTimeTemp, endTime) |
|
|
|
dateCloudbrainNum, err = getMonthCloudbrainNum(beginTime, endTimeTemp, endTime) |
|
|
|
if err != nil { |
|
|
|
log.Error("Can not query getYearCloudbrainNum.", err) |
|
|
|
ctx.Error(http.StatusBadRequest, ctx.Tr("getYearCloudbrainNum_get_error")) |
|
|
|
log.Error("Can not query getMonthCloudbrainNum.", err) |
|
|
|
ctx.Error(http.StatusBadRequest, ctx.Tr("getMonthCloudbrainNum_get_error")) |
|
|
|
return |
|
|
|
} |
|
|
|
} else if queryType == "today" { |
|
|
|
beginTime = now.AddDate(0, 0, 0) |
|
|
|
beginTime = time.Date(beginTime.Year(), beginTime.Month(), beginTime.Day(), 0, 0, 0, 0, now.Location()) |
|
|
|
endTimeTemp = beginTime.Add(time.Hour) |
|
|
|
endTimeTemp = now |
|
|
|
endTime = now |
|
|
|
dateCloudbrainNum, err = getHourCloudbrainNum(beginTime, endTimeTemp, endTime) |
|
|
|
dateCloudbrainNum, err = getDayCloudbrainNum(beginTime, endTimeTemp, endTime) |
|
|
|
if err != nil { |
|
|
|
log.Error("Can not query getHourCloudbrainNum.", err) |
|
|
|
ctx.Error(http.StatusBadRequest, ctx.Tr("getYearCloudbrainNum_get_error")) |
|
|
|
log.Error("Can not query getDayCloudbrainNum.", err) |
|
|
|
ctx.Error(http.StatusBadRequest, ctx.Tr("getDayCloudbrainNum_get_error")) |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
} else if queryType == "yesterday" { |
|
|
|
beginTime = now.AddDate(0, 0, -1) |
|
|
|
beginTime = time.Date(beginTime.Year(), beginTime.Month(), beginTime.Day(), 0, 0, 0, 0, now.Location()) |
|
|
|
endTimeTemp = beginTime.Add(time.Hour) |
|
|
|
endTimeTemp = beginTime.AddDate(0, 0, 1) |
|
|
|
endTime = time.Date(now.Year(), now.Month(), now.Day(), 0, 0, 0, 0, now.Location()) |
|
|
|
dateCloudbrainNum, err = getHourCloudbrainNum(beginTime, endTimeTemp, endTime) |
|
|
|
dateCloudbrainNum, err = getDayCloudbrainNum(beginTime, endTimeTemp, endTime) |
|
|
|
if err != nil { |
|
|
|
log.Error("Can not query getHourCloudbrainNum.", err) |
|
|
|
ctx.Error(http.StatusBadRequest, ctx.Tr("getYearCloudbrainNum_get_error")) |
|
|
|
log.Error("Can not query getDayCloudbrainNum.", err) |
|
|
|
ctx.Error(http.StatusBadRequest, ctx.Tr("getDayCloudbrainNum_get_error")) |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
@@ -188,6 +194,7 @@ func GetAllCloudbrainsTrend(ctx *context.Context) { |
|
|
|
beginTime = time.Date(beginTime.Year(), beginTime.Month(), beginTime.Day(), 0, 0, 0, 0, now.Location()) |
|
|
|
endTime = now |
|
|
|
endTimeTemp = beginTime.AddDate(0, 0, 1) |
|
|
|
endTimeTemp = time.Date(endTimeTemp.Year(), endTimeTemp.Month(), endTimeTemp.Day(), 0, 0, 0, 0, now.Location()) |
|
|
|
dateCloudbrainNum, err = getDayCloudbrainNum(beginTime, endTimeTemp, endTime) |
|
|
|
if err != nil { |
|
|
|
log.Error("Can not query getDayCloudbrainNum.", err) |
|
|
|
@@ -232,10 +239,10 @@ func GetAllCloudbrainsTrend(ctx *context.Context) { |
|
|
|
endTime = now |
|
|
|
beginTime = time.Date(endTime.Year(), 1, 1, 0, 0, 0, 0, now.Location()) |
|
|
|
endTimeTemp = beginTime.AddDate(0, 1, 0) |
|
|
|
dateCloudbrainNum, err = getYearCloudbrainNum(beginTime, endTimeTemp, endTime) |
|
|
|
dateCloudbrainNum, err = getMonthCloudbrainNum(beginTime, endTimeTemp, endTime) |
|
|
|
if err != nil { |
|
|
|
log.Error("Can not query getDayCloudbrainNum.", err) |
|
|
|
ctx.Error(http.StatusBadRequest, ctx.Tr("getYearCloudbrainNum_get_error")) |
|
|
|
log.Error("Can not query getMonthCloudbrainNum.", err) |
|
|
|
ctx.Error(http.StatusBadRequest, ctx.Tr("getMonthCloudbrainNum_get_error")) |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
@@ -260,10 +267,10 @@ func GetAllCloudbrainsTrend(ctx *context.Context) { |
|
|
|
beginTime = brainRecordBeginTime |
|
|
|
endTime = now |
|
|
|
endTimeTemp = beginTime.AddDate(0, 1, 0) |
|
|
|
dateCloudbrainNum, err = getYearCloudbrainNum(beginTime, endTimeTemp, endTime) |
|
|
|
dateCloudbrainNum, err = getMonthCloudbrainNum(beginTime, endTimeTemp, endTime) |
|
|
|
if err != nil { |
|
|
|
log.Error("Can not query getDayCloudbrainNum.", err) |
|
|
|
ctx.Error(http.StatusBadRequest, ctx.Tr("getYearCloudbrainNum_get_error")) |
|
|
|
log.Error("Can not query getMonthCloudbrainNum.", err) |
|
|
|
ctx.Error(http.StatusBadRequest, ctx.Tr("getMonthCloudbrainNum_get_error")) |
|
|
|
return |
|
|
|
} |
|
|
|
} else { |
|
|
|
@@ -279,49 +286,21 @@ func GetAllCloudbrainsTrend(ctx *context.Context) { |
|
|
|
ctx.Error(http.StatusBadRequest, ctx.Tr("ParseInLocation_get_error")) |
|
|
|
return |
|
|
|
} |
|
|
|
days := (endTime.Unix() - beginTime.Unix()) / 3600 / 24 |
|
|
|
if 1 < days { |
|
|
|
endTimeTemp = beginTime.AddDate(0, 0, 1) |
|
|
|
endTime = endTime.AddDate(0, 0, 2) |
|
|
|
dateCloudbrainNum, err = getDayCloudbrainNum(beginTime, endTimeTemp, endTime) |
|
|
|
if err != nil { |
|
|
|
log.Error("Can not query getDayCloudbrainNum.", err) |
|
|
|
ctx.Error(http.StatusBadRequest, ctx.Tr("getDayCloudbrainNum_get_error")) |
|
|
|
return |
|
|
|
} |
|
|
|
} else if 0 < days || days <= 1 { |
|
|
|
endTimeTemp = beginTime.Add(time.Hour) |
|
|
|
dateCloudbrainNum, err = getHourCloudbrainNum(beginTime, endTimeTemp, endTime) |
|
|
|
if err != nil { |
|
|
|
log.Error("Can not query getHourCloudbrainNum.", err) |
|
|
|
ctx.Error(http.StatusBadRequest, ctx.Tr("getHourCloudbrainNum_get_error")) |
|
|
|
return |
|
|
|
} |
|
|
|
} else { |
|
|
|
endTimeTemp = beginTime.AddDate(0, 0, 1) |
|
|
|
log.Info("beginTimeee", beginTime) |
|
|
|
log.Info("endTimeTemp", endTimeTemp) |
|
|
|
log.Info("endTime", endTime) |
|
|
|
dateCloudbrainNum, err = getDayCloudbrainNum(beginTime, endTimeTemp, endTime) |
|
|
|
if err != nil { |
|
|
|
log.Error("Can not query getDayCloudbrainNum.", err) |
|
|
|
ctx.Error(http.StatusBadRequest, ctx.Tr("getDayCloudbrainNum_get_error")) |
|
|
|
return |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
cloudbrainsPeriodData := TimeCloudbrainsNum{ |
|
|
|
TimeCloudbrainNum: dateCloudbrainNum, |
|
|
|
} |
|
|
|
|
|
|
|
ctx.JSON(http.StatusOK, cloudbrainsPeriodData) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
func GetAllCloudbrainsTrendDetail(ctx *context.Context) { |
|
|
|
now := time.Now() |
|
|
|
var beginTime time.Time |
|
|
|
var endTime time.Time |
|
|
|
var endTimeTemp time.Time |
|
|
|
|
|
|
|
beginTime = now.AddDate(0, 0, -30) |
|
|
|
beginTime = time.Date(beginTime.Year(), beginTime.Month(), beginTime.Day(), 0, 0, 0, 0, now.Location()) |
|
|
|
endTime = now |
|
|
|
endTimeTemp = endTime.AddDate(0, 0, -1) |
|
|
|
dayCloudbrainInfo, err := getDayCloudbrainInfo(beginTime, endTimeTemp, endTime) |
|
|
|
dayCloudbrainInfo, count, err := getDayCloudbrainInfo(beginTime, endTime) |
|
|
|
if err != nil { |
|
|
|
log.Error("Can not query getDayCloudbrainInfo.", err) |
|
|
|
ctx.Error(http.StatusBadRequest, ctx.Tr("getDayCloudbrainInfo_get_error")) |
|
|
|
@@ -336,27 +315,64 @@ func GetAllCloudbrainsTrendDetail(ctx *context.Context) { |
|
|
|
if pagesize <= 0 { |
|
|
|
pagesize = 5 |
|
|
|
} |
|
|
|
pageDateCloudbrainNum := getPageDateCloudbrainNum(dayCloudbrainInfo, page, pagesize) |
|
|
|
pageDateCloudbrainInfo := getPageDateCloudbrainInfo(dayCloudbrainInfo, page, pagesize) |
|
|
|
|
|
|
|
cloudbrainsPeriodData := TimeCloudbrainsNum{ |
|
|
|
TotalCount: 30, |
|
|
|
TimeCloudbrainNum: pageDateCloudbrainNum, |
|
|
|
TimeCloudbrainNum: dateCloudbrainNum, |
|
|
|
TotalCount: count, |
|
|
|
TimeCloudbrainInfo: pageDateCloudbrainInfo, |
|
|
|
} |
|
|
|
|
|
|
|
ctx.JSON(http.StatusOK, cloudbrainsPeriodData) |
|
|
|
|
|
|
|
} |
|
|
|
func getPageDateCloudbrainNum(dateCloudbrainNums []DateCloudbrainNum, page int, pagesize int) []DateCloudbrainNum { |
|
|
|
|
|
|
|
// func GetAllCloudbrainsTrendDetail(ctx *context.Context) { |
|
|
|
// now := time.Now() |
|
|
|
// var beginTime time.Time |
|
|
|
// var endTime time.Time |
|
|
|
// var endTimeTemp time.Time |
|
|
|
|
|
|
|
// beginTime = now.AddDate(0, 0, -30) |
|
|
|
// beginTime = time.Date(beginTime.Year(), beginTime.Month(), beginTime.Day(), 0, 0, 0, 0, now.Location()) |
|
|
|
// endTime = now |
|
|
|
// endTimeTemp = endTime.AddDate(0, 0, -1) |
|
|
|
// dayCloudbrainInfo, err := getDayCloudbrainInfo(beginTime, endTimeTemp, endTime) |
|
|
|
// if err != nil { |
|
|
|
// log.Error("Can not query getDayCloudbrainInfo.", err) |
|
|
|
// ctx.Error(http.StatusBadRequest, ctx.Tr("getDayCloudbrainInfo_get_error")) |
|
|
|
// return |
|
|
|
// } |
|
|
|
|
|
|
|
// page := ctx.QueryInt("page") |
|
|
|
// if page <= 0 { |
|
|
|
// page = 1 |
|
|
|
// } |
|
|
|
// pagesize := ctx.QueryInt("pagesize") |
|
|
|
// if pagesize <= 0 { |
|
|
|
// pagesize = 5 |
|
|
|
// } |
|
|
|
// pageDateCloudbrainNum := getPageDateCloudbrainNum(dayCloudbrainInfo, page, pagesize) |
|
|
|
|
|
|
|
// cloudbrainsPeriodData := TimeCloudbrainsNum{ |
|
|
|
// TotalCount: 30, |
|
|
|
// TimeCloudbrainNum: pageDateCloudbrainNum, |
|
|
|
// } |
|
|
|
|
|
|
|
// ctx.JSON(http.StatusOK, cloudbrainsPeriodData) |
|
|
|
|
|
|
|
// } |
|
|
|
func getPageDateCloudbrainInfo(dateCloudbrainInfo []DateCloudbrainInfo, page int, pagesize int) []DateCloudbrainInfo { |
|
|
|
begin := (page - 1) * pagesize |
|
|
|
end := (page) * pagesize |
|
|
|
|
|
|
|
if begin > len(dateCloudbrainNums)-1 { |
|
|
|
if begin > len(dateCloudbrainInfo)-1 { |
|
|
|
return nil |
|
|
|
} |
|
|
|
if end > len(dateCloudbrainNums)-1 { |
|
|
|
return dateCloudbrainNums[begin:] |
|
|
|
if end > len(dateCloudbrainInfo)-1 { |
|
|
|
return dateCloudbrainInfo[begin:] |
|
|
|
} else { |
|
|
|
return dateCloudbrainNums[begin:end] |
|
|
|
return dateCloudbrainInfo[begin:end] |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
@@ -862,7 +878,7 @@ func getDayCloudbrainNum(beginTime time.Time, endTimeTemp time.Time, endTime tim |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
dayCloudbrainNum := make([]DateCloudbrainNum, 0) |
|
|
|
for endTimeTemp.Before(endTime) { |
|
|
|
for endTimeTemp.Before(endTime) || endTimeTemp.Equal(endTime) { |
|
|
|
cloudOneJobTypeRes, cloudTwoJobTypeRes, intelligentNetJobTypeRes, cloudBrainPeriodNum, cloudBrainComputeResource := getCloudbrainCount(beginTime, endTimeTemp, cloudbrains) |
|
|
|
dayCloudbrainNum = append(dayCloudbrainNum, DateCloudbrainNum{ |
|
|
|
Date: beginTime.Format("2006/01/02"), |
|
|
|
@@ -872,21 +888,26 @@ func getDayCloudbrainNum(beginTime time.Time, endTimeTemp time.Time, endTime tim |
|
|
|
CloudBrainPeriodNum: cloudBrainPeriodNum, |
|
|
|
CloudBrainComputeResource: cloudBrainComputeResource, |
|
|
|
}) |
|
|
|
beginTime = endTimeTemp |
|
|
|
endTimeTemp = beginTime.AddDate(0, 0, 1) |
|
|
|
if endTime.Before(endTimeTemp.AddDate(0, 0, 1)) && endTimeTemp.Before(endTime) { |
|
|
|
beginTime = endTimeTemp |
|
|
|
endTimeTemp = endTime |
|
|
|
} else { |
|
|
|
beginTime = endTimeTemp |
|
|
|
endTimeTemp = beginTime.AddDate(0, 0, 1) |
|
|
|
} |
|
|
|
} |
|
|
|
return dayCloudbrainNum, nil |
|
|
|
} |
|
|
|
func getYearCloudbrainNum(beginTime time.Time, endTimeTemp time.Time, endTime time.Time) ([]DateCloudbrainNum, error) { |
|
|
|
yearCloudbrainNum := make([]DateCloudbrainNum, 0) |
|
|
|
func getMonthCloudbrainNum(beginTime time.Time, endTimeTemp time.Time, endTime time.Time) ([]DateCloudbrainNum, error) { |
|
|
|
monthCloudbrainNum := make([]DateCloudbrainNum, 0) |
|
|
|
cloudbrains, err := models.GetAllCloudBrain() |
|
|
|
if err != nil { |
|
|
|
log.Error("Getcloudbrains failed:%v", err) |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
for endTimeTemp.Before(endTime) { |
|
|
|
for endTimeTemp.Before(endTime) || endTimeTemp.Equal(endTime) { |
|
|
|
cloudOneJobTypeRes, cloudTwoJobTypeRes, intelligentNetJobTypeRes, cloudBrainPeriodNum, cloudBrainComputeResource := getCloudbrainCount(beginTime, endTimeTemp, cloudbrains) |
|
|
|
yearCloudbrainNum = append(yearCloudbrainNum, DateCloudbrainNum{ |
|
|
|
monthCloudbrainNum = append(monthCloudbrainNum, DateCloudbrainNum{ |
|
|
|
Date: beginTime.Format("2006/01"), |
|
|
|
CloudOneJobTypeRes: cloudOneJobTypeRes, |
|
|
|
CloudTwoJobTypeRes: cloudTwoJobTypeRes, |
|
|
|
@@ -894,35 +915,42 @@ func getYearCloudbrainNum(beginTime time.Time, endTimeTemp time.Time, endTime ti |
|
|
|
CloudBrainPeriodNum: cloudBrainPeriodNum, |
|
|
|
CloudBrainComputeResource: cloudBrainComputeResource, |
|
|
|
}) |
|
|
|
beginTime = endTimeTemp |
|
|
|
endTimeTemp = beginTime.AddDate(0, 1, 0) |
|
|
|
if endTime.Before(endTimeTemp.AddDate(0, 1, 0)) && endTimeTemp.Before(endTime) { |
|
|
|
beginTime = endTimeTemp |
|
|
|
endTimeTemp = endTime |
|
|
|
} else { |
|
|
|
beginTime = endTimeTemp |
|
|
|
endTimeTemp = beginTime.AddDate(0, 1, 0) |
|
|
|
} |
|
|
|
} |
|
|
|
return yearCloudbrainNum, nil |
|
|
|
return monthCloudbrainNum, nil |
|
|
|
} |
|
|
|
|
|
|
|
func getDayCloudbrainInfo(beginTime time.Time, endTimeTemp time.Time, endTime time.Time) ([]DateCloudbrainNum, error) { |
|
|
|
func getDayCloudbrainInfo(beginTime time.Time, endTime time.Time) ([]DateCloudbrainInfo, int, error) { |
|
|
|
now := time.Now() |
|
|
|
endTimeTemp := time.Date(endTime.Year(), endTime.Month(), endTime.Day(), 0, 0, 0, 0, now.Location()) |
|
|
|
if endTimeTemp.Equal(endTime) { |
|
|
|
endTimeTemp = endTimeTemp.AddDate(0, 0, -1) |
|
|
|
} |
|
|
|
cloudbrains, err := models.GetAllCloudBrain() |
|
|
|
if err != nil { |
|
|
|
log.Error("Getcloudbrains failed:%v", err) |
|
|
|
return nil, err |
|
|
|
return nil, 0, err |
|
|
|
} |
|
|
|
dayCloudbrainNum := make([]DateCloudbrainNum, 0) |
|
|
|
for beginTime.Before(endTimeTemp) { |
|
|
|
cloudOneJobTypeRes, cloudTwoJobTypeRes, intelligentNetJobTypeRes, cloudBrainPeriodNum, cloudBrainComputeResource := getCloudbrainCount(endTimeTemp, endTime, cloudbrains) |
|
|
|
dayCloudbrainNum = append(dayCloudbrainNum, DateCloudbrainNum{ |
|
|
|
Date: endTime.Format("2006/01/02"), |
|
|
|
CloudOneJobTypeRes: cloudOneJobTypeRes, |
|
|
|
CloudTwoJobTypeRes: cloudTwoJobTypeRes, |
|
|
|
IntelligentNetJobTypeRes: intelligentNetJobTypeRes, |
|
|
|
dayCloudbrainInfo := make([]DateCloudbrainInfo, 0) |
|
|
|
count := 0 |
|
|
|
for beginTime.Before(endTimeTemp) || beginTime.Equal(endTimeTemp) { |
|
|
|
_, _, _, cloudBrainPeriodNum, cloudBrainComputeResource := getCloudbrainCount(endTimeTemp, endTime, cloudbrains) |
|
|
|
dayCloudbrainInfo = append(dayCloudbrainInfo, DateCloudbrainInfo{ |
|
|
|
Date: endTimeTemp.Format("2006/01/02"), |
|
|
|
CloudBrainPeriodNum: cloudBrainPeriodNum, |
|
|
|
CloudBrainComputeResource: cloudBrainComputeResource, |
|
|
|
}) |
|
|
|
if beginTime.Before(endTimeTemp) { |
|
|
|
endTime = endTimeTemp |
|
|
|
endTimeTemp = endTimeTemp.AddDate(0, 0, -1) |
|
|
|
} |
|
|
|
endTime = endTimeTemp |
|
|
|
endTimeTemp = endTimeTemp.AddDate(0, 0, -1) |
|
|
|
count += 1 |
|
|
|
} |
|
|
|
return dayCloudbrainNum, nil |
|
|
|
return dayCloudbrainInfo, count, nil |
|
|
|
} |
|
|
|
func getBrainRecordBeginTime() (time.Time, error) { |
|
|
|
return time.ParseInLocation(DATE_FORMAT, setting.BrainRecordBeginTime, time.Local) |
|
|
|
|