Browse Source

update

tags/v1.22.6.1^2
liuzx 3 years ago
parent
commit
f01435fdeb
2 changed files with 153 additions and 69 deletions
  1. +1
    -0
      routers/api/v1/api.go
  2. +152
    -69
      routers/api/v1/repo/cloudbrain_dashboard.go

+ 1
- 0
routers/api/v1/api.go View File

@@ -577,6 +577,7 @@ func RegisterRoutes(m *macaron.Macaron) {
m.Get("/overview", repo.GetAllCloudbrainsOverview)
m.Get("/distribution", repo.GetAllCloudbrainsPeriodDistribution)
m.Get("/trend", repo.GetAllCloudbrainsTrend)
m.Get("/trend_detail_data", repo.GetAllCloudbrainsTrendDetail)
m.Get("/status_analysis", repo.GetCloudbrainsStatusAnalysis)
m.Get("/detail_data", repo.GetCloudbrainsDetailData)
m.Get("/hours_data", repo.GetCloudbrainsCreateHoursData)


+ 152
- 69
routers/api/v1/repo/cloudbrain_dashboard.go View File

@@ -14,11 +14,6 @@ import (
"code.gitea.io/gitea/modules/setting"
)

type TimeCloudbrainsNum struct {
TimeCloudbrainNum []DateCloudbrainNum `json:"dateCloudbrainNum"`
TotalCount int `json:"totalCount"`
TimeCloudbrainInfo []DateCloudbrainInfo `json:"timeCloudbrainInfo"`
}
type DateCloudbrainNum struct {
Date string `json:"date"`
CloudOneJobTypeRes map[string]int `json:"cloudOneJobTypeRes"`
@@ -144,8 +139,6 @@ func GetAllCloudbrainsTrend(ctx *context.Context) {
var endTime time.Time
var endTimeTemp time.Time
dateCloudbrainNum := make([]DateCloudbrainNum, 0)
dayCloudbrainInfo := make([]DateCloudbrainInfo, 0)
var count int
if queryType != "" {
if queryType == "all" {
beginTime = brainRecordBeginTime
@@ -158,12 +151,6 @@ func GetAllCloudbrainsTrend(ctx *context.Context) {
ctx.Error(http.StatusBadRequest, ctx.Tr("getMonthCloudbrainNum_get_error"))
return
}
dayCloudbrainInfo, count, err = getMonthCloudbrainInfo(beginTime, endTime)
if err != nil {
log.Error("Can not query getDayCloudbrainInfo.", err)
ctx.Error(http.StatusBadRequest, ctx.Tr("getDayCloudbrainInfo_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())
@@ -175,6 +162,153 @@ func GetAllCloudbrainsTrend(ctx *context.Context) {
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.AddDate(0, 0, 1)
endTime = time.Date(now.Year(), now.Month(), now.Day(), 0, 0, 0, 0, now.Location())
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 queryType == "last_7day" {
beginTime = now.AddDate(0, 0, -6) //begin from monday
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)
ctx.Error(http.StatusBadRequest, ctx.Tr("getDayCloudbrainNum_get_error"))
return
}
} else if queryType == "last_30day" {
beginTime = now.AddDate(0, 0, -29) //begin from monday
beginTime = time.Date(beginTime.Year(), beginTime.Month(), beginTime.Day(), 0, 0, 0, 0, now.Location())
endTime = now
endTimeTemp = beginTime.AddDate(0, 0, 1)
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 queryType == "current_month" {
endTime = now
beginTime = time.Date(endTime.Year(), endTime.Month(), 1, 0, 0, 0, 0, now.Location())
endTimeTemp = beginTime.AddDate(0, 0, 1)
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 queryType == "current_year" {
endTime = now
beginTime = time.Date(endTime.Year(), 1, 1, 0, 0, 0, 0, now.Location())
endTimeTemp = beginTime.AddDate(0, 1, 0)
dateCloudbrainNum, err = getMonthCloudbrainNum(beginTime, endTimeTemp, endTime)
if err != nil {
log.Error("Can not query getMonthCloudbrainNum.", err)
ctx.Error(http.StatusBadRequest, ctx.Tr("getMonthCloudbrainNum_get_error"))
return
}
} else if queryType == "last_month" {

lastMonthTime := now.AddDate(0, -1, 0)
beginTime = time.Date(lastMonthTime.Year(), lastMonthTime.Month(), 1, 0, 0, 0, 0, now.Location())
endTime = time.Date(now.Year(), now.Month(), 1, 0, 0, 0, 0, now.Location())
endTimeTemp = beginTime.AddDate(0, 0, 1)
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 beginTimeStr == "" || endTimeStr == "" {
//如果查询类型和开始时间结束时间都未设置,按queryType=all处理
beginTime = brainRecordBeginTime
endTime = now
endTimeTemp = beginTime.AddDate(0, 1, 0)
endTimeTemp := time.Date(endTimeTemp.Year(), endTimeTemp.Month(), 1, 0, 0, 0, 0, now.Location())
dateCloudbrainNum, err = getMonthCloudbrainNum(beginTime, endTimeTemp, endTime)
if err != nil {
log.Error("Can not query getMonthCloudbrainNum.", err)
ctx.Error(http.StatusBadRequest, ctx.Tr("getMonthCloudbrainNum_get_error"))
return
}
} 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
}
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
}
if endTime.After(time.Now()) {
endTime = time.Now()
}
endTimeTemp = beginTime.AddDate(0, 0, 1)
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
}
}

}
ctx.JSON(http.StatusOK, map[string]interface{}{
"timeCloudbrainNum": dateCloudbrainNum,
})

}
func GetAllCloudbrainsTrendDetail(ctx *context.Context) {
recordCloudbrain, err := models.GetRecordBeginTime()
if err != nil {
log.Error("Can not get recordCloudbrain", err)
ctx.Error(http.StatusBadRequest, ctx.Tr("repo.record_begintime_get_err"))
return
}
brainRecordBeginTime := recordCloudbrain[0].Cloudbrain.CreatedUnix.AsTime()

queryType := ctx.QueryTrim("type")
now := time.Now()

beginTimeStr := ctx.QueryTrim("beginTime")
endTimeStr := ctx.QueryTrim("endTime")
var beginTime time.Time
var endTime time.Time
var endTimeTemp time.Time
dayCloudbrainInfo := make([]DateCloudbrainInfo, 0)
var count int
if queryType != "" {
if queryType == "all" {
beginTime = brainRecordBeginTime
endTime = now
endTimeTemp = beginTime.AddDate(0, 1, 0)
dayCloudbrainInfo, count, err = getMonthCloudbrainInfo(beginTime, endTime)
if err != nil {
log.Error("Can not query getDayCloudbrainInfo.", err)
ctx.Error(http.StatusBadRequest, ctx.Tr("getDayCloudbrainInfo_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 = now
endTime = now
dayCloudbrainInfo, count, err = getDayCloudbrainInfo(beginTime, endTime)
if err != nil {
log.Error("Can not query getDayCloudbrainInfo.", err)
@@ -187,12 +321,6 @@ func GetAllCloudbrainsTrend(ctx *context.Context) {
beginTime = time.Date(beginTime.Year(), beginTime.Month(), beginTime.Day(), 0, 0, 0, 0, now.Location())
endTimeTemp = beginTime.AddDate(0, 0, 1)
endTime = time.Date(now.Year(), now.Month(), now.Day(), 0, 0, 0, 0, now.Location())
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
}
dayCloudbrainInfo, count, err = getDayCloudbrainInfo(beginTime, endTime)
if err != nil {
log.Error("Can not query getDayCloudbrainInfo.", err)
@@ -206,12 +334,6 @@ func GetAllCloudbrainsTrend(ctx *context.Context) {
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)
ctx.Error(http.StatusBadRequest, ctx.Tr("getDayCloudbrainNum_get_error"))
return
}
dayCloudbrainInfo, count, err = getDayCloudbrainInfo(beginTime, endTime)
if err != nil {
log.Error("Can not query getDayCloudbrainInfo.", err)
@@ -223,12 +345,6 @@ 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)
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
}
dayCloudbrainInfo, count, err = getDayCloudbrainInfo(beginTime, endTime)
if err != nil {
log.Error("Can not query getDayCloudbrainInfo.", err)
@@ -239,12 +355,6 @@ func GetAllCloudbrainsTrend(ctx *context.Context) {
endTime = now
beginTime = time.Date(endTime.Year(), endTime.Month(), 1, 0, 0, 0, 0, now.Location())
endTimeTemp = beginTime.AddDate(0, 0, 1)
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
}
dayCloudbrainInfo, count, err = getDayCloudbrainInfo(beginTime, endTime)
if err != nil {
log.Error("Can not query getDayCloudbrainInfo.", err)
@@ -256,12 +366,6 @@ 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 = getMonthCloudbrainNum(beginTime, endTimeTemp, endTime)
if err != nil {
log.Error("Can not query getMonthCloudbrainNum.", err)
ctx.Error(http.StatusBadRequest, ctx.Tr("getMonthCloudbrainNum_get_error"))
return
}
dayCloudbrainInfo, count, err = getMonthCloudbrainInfo(beginTime, endTime)
if err != nil {
log.Error("Can not query getDayCloudbrainInfo.", err)
@@ -275,12 +379,6 @@ func GetAllCloudbrainsTrend(ctx *context.Context) {
beginTime = time.Date(lastMonthTime.Year(), lastMonthTime.Month(), 1, 0, 0, 0, 0, now.Location())
endTime = time.Date(now.Year(), now.Month(), 1, 0, 0, 0, 0, now.Location())
endTimeTemp = beginTime.AddDate(0, 0, 1)
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
}
dayCloudbrainInfo, count, err = getDayCloudbrainInfo(beginTime, endTime)
if err != nil {
log.Error("Can not query getDayCloudbrainInfo.", err)
@@ -296,13 +394,7 @@ func GetAllCloudbrainsTrend(ctx *context.Context) {
beginTime = brainRecordBeginTime
endTime = now
endTimeTemp = beginTime.AddDate(0, 1, 0)
endTimeTemp := time.Date(endTimeTemp.Year(), endTimeTemp.Month(), 1, 0, 0, 0, 0, now.Location())
dateCloudbrainNum, err = getMonthCloudbrainNum(beginTime, endTimeTemp, endTime)
if err != nil {
log.Error("Can not query getMonthCloudbrainNum.", err)
ctx.Error(http.StatusBadRequest, ctx.Tr("getMonthCloudbrainNum_get_error"))
return
}
// endTimeTemp := time.Date(endTimeTemp.Year(), endTimeTemp.Month(), 1, 0, 0, 0, 0, now.Location())
dayCloudbrainInfo, count, err = getMonthCloudbrainInfo(beginTime, endTime)
if err != nil {
log.Error("Can not query getDayCloudbrainInfo.", err)
@@ -326,12 +418,6 @@ func GetAllCloudbrainsTrend(ctx *context.Context) {
endTime = time.Now()
}
endTimeTemp = beginTime.AddDate(0, 0, 1)
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
}
dayCloudbrainInfo, count, err = getDayCloudbrainInfo(beginTime, endTime)
if err != nil {
log.Error("Can not query getDayCloudbrainInfo.", err)
@@ -352,13 +438,10 @@ func GetAllCloudbrainsTrend(ctx *context.Context) {
}
pageDateCloudbrainInfo := getPageDateCloudbrainInfo(dayCloudbrainInfo, page, pagesize)

cloudbrainsPeriodData := TimeCloudbrainsNum{
TimeCloudbrainNum: dateCloudbrainNum,
TotalCount: count,
TimeCloudbrainInfo: pageDateCloudbrainInfo,
}

ctx.JSON(http.StatusOK, cloudbrainsPeriodData)
ctx.JSON(http.StatusOK, map[string]interface{}{
"totalCount": count,
"timeCloudbrainInfo": pageDateCloudbrainInfo,
})

}
func getPageDateCloudbrainInfo(dateCloudbrainInfo []DateCloudbrainInfo, page int, pagesize int) []DateCloudbrainInfo {


Loading…
Cancel
Save