Browse Source

fix-3144

fix-3144
liuzx 2 years ago
parent
commit
ccb09a76ce
2 changed files with 25 additions and 6 deletions
  1. +14
    -0
      models/cloudbrain_static.go
  2. +11
    -6
      routers/repo/cloudbrain_statistic.go

+ 14
- 0
models/cloudbrain_static.go View File

@@ -313,6 +313,20 @@ func InsertCloudbrainDurationStatistic(cloudbrainDurationStatistic *CloudbrainDu
return xStatistic.Insert(cloudbrainDurationStatistic) return xStatistic.Insert(cloudbrainDurationStatistic)
} }


func GetDurationStatisticByDate(date string, hour int, aiCenterCode string, accCardType string) (*CloudbrainDurationStatistic, error) {
cb := &CloudbrainDurationStatistic{DayTime: date, HourTime: hour, AiCenterCode: aiCenterCode, AccCardType: accCardType}
return getDurationStatistic(cb)
}
func getDurationStatistic(cb *CloudbrainDurationStatistic) (*CloudbrainDurationStatistic, error) {
has, err := x.Get(cb)
if err != nil {
return nil, err
} else if !has {
return nil, ErrJobNotExist{}
}
return cb, nil
}

func DeleteCloudbrainDurationStatisticHour(date string, hour int, aiCenterCode string, accCardType string) error { func DeleteCloudbrainDurationStatisticHour(date string, hour int, aiCenterCode string, accCardType string) error {
sess := xStatistic.NewSession() sess := xStatistic.NewSession()
defer sess.Close() defer sess.Close()


+ 11
- 6
routers/repo/cloudbrain_statistic.go View File

@@ -107,10 +107,13 @@ func summaryDurationStat(statisticTime time.Time) int64 {
for cardType, cardDuration := range CardTypes { for cardType, cardDuration := range CardTypes {
cloudbrainTable := cloudbrainMap[centerCode+"/"+cardType] cloudbrainTable := cloudbrainMap[centerCode+"/"+cardType]
if cloudbrainTable != nil { if cloudbrainTable != nil {
if err := models.DeleteCloudbrainDurationStatisticHour(dayTime, hourTime, centerCode, cardType); err != nil {
log.Error("DeleteCloudbrainDurationStatisticHour failed: %v", err.Error())
return 0
if _, err := models.GetDurationStatisticByDate(dayTime, hourTime, centerCode, cardType); err == nil {
if err := models.DeleteCloudbrainDurationStatisticHour(dayTime, hourTime, centerCode, cardType); err != nil {
log.Error("DeleteCloudbrainDurationStatisticHour failed: %v", err.Error())
return 0
}
} }

if _, ok := cardsTotalDurationMap[cloudbrainTable.Cluster+"/"+centerCode+"/"+cardType]; !ok { if _, ok := cardsTotalDurationMap[cloudbrainTable.Cluster+"/"+centerCode+"/"+cardType]; !ok {
cardsTotalDurationMap[cloudbrainTable.Cluster+"/"+centerCode+"/"+cardType] = 0 cardsTotalDurationMap[cloudbrainTable.Cluster+"/"+centerCode+"/"+cardType] = 0
} }
@@ -136,9 +139,11 @@ func summaryDurationStat(statisticTime time.Time) int64 {
} }


for key, cardsTotalDuration := range cardsTotalDurationMap { for key, cardsTotalDuration := range cardsTotalDurationMap {
if err := models.DeleteCloudbrainDurationStatisticHour(dayTime, hourTime, strings.Split(key, "/")[1], strings.Split(key, "/")[2]); err != nil {
log.Error("DeleteCloudbrainDurationStatisticHour failed: %v", err.Error())
return 0
if _, err := models.GetDurationStatisticByDate(dayTime, hourTime, strings.Split(key, "/")[1], strings.Split(key, "/")[2]); err == nil {
if err := models.DeleteCloudbrainDurationStatisticHour(dayTime, hourTime, strings.Split(key, "/")[1], strings.Split(key, "/")[2]); err != nil {
log.Error("DeleteCloudbrainDurationStatisticHour failed: %v", err.Error())
return 0
}
} }
cloudbrainDurationStat := models.CloudbrainDurationStatistic{ cloudbrainDurationStat := models.CloudbrainDurationStatistic{
DateTime: dateTime, DateTime: dateTime,


Loading…
Cancel
Save