87 lines
2.4 KiB
Go
87 lines
2.4 KiB
Go
package statistics
|
|
|
|
import (
|
|
"encoding/json"
|
|
"nCovTrack-Backend/global"
|
|
"nCovTrack-Backend/models"
|
|
"strings"
|
|
)
|
|
|
|
func GetAllProvinceData(sort string) []interface{} {
|
|
checkCache()
|
|
if sort == SORT_TODAY_CONFIRM {
|
|
return getEntireRedisList(rds_PROVINCE_LEVEL_TODAY_CONFIRM_KEY)
|
|
}
|
|
if sort == SORT_TOTAL_CONFIRM {
|
|
return getEntireRedisList(rds_PROVINCE_LEVEL_TOTAL_CONFIRM_KEY)
|
|
}
|
|
if sort == SORT_NOW_CONFIRM {
|
|
return getEntireRedisList(rds_PROVINCE_LEVEL_NOW_CONFIRM_KEY)
|
|
}
|
|
return getEntireRedisList(rds_PROVINCE_LEVEL_CHILD_KEY)
|
|
}
|
|
|
|
func GetAllCityData(sort string) []interface{} {
|
|
checkCache()
|
|
if sort == SORT_TODAY_CONFIRM {
|
|
return getEntireRedisList(rds_CITY_LEVEL_TODAY_CONFIRM_KEY)
|
|
}
|
|
if sort == SORT_TOTAL_CONFIRM {
|
|
return getEntireRedisList(rds_CITY_LEVEL_TOTAL_CONFIRM_KEY)
|
|
}
|
|
if sort == SORT_NOW_CONFIRM {
|
|
return getEntireRedisList(rds_CITY_LEVEL_NOW_CONFIRM_KEY)
|
|
}
|
|
return getEntireRedisList(rds_CITY_LEVEL_CHILD_KEY)
|
|
}
|
|
|
|
func GetCountryData(child bool) []interface{} {
|
|
checkCache()
|
|
if child {
|
|
return getEntireRedisList(rds_COUNTRY_LEVEL_CHILD_KEY)
|
|
}
|
|
return getEntireRedisList(rds_COUNTRY_LEVEL_KEY)
|
|
}
|
|
|
|
func GetChinaNCovStatistic() models.ChinaData {
|
|
checkCache()
|
|
data := models.ChinaData{}
|
|
json.Unmarshal([]byte(global.Redis.Get(rds_CHINA_ADD_KEY).Val()), &data.ChinaAdd)
|
|
json.Unmarshal([]byte(global.Redis.Get(rds_CHINA_TOTAL_KEY).Val()), &data.ChinaTotal)
|
|
return data
|
|
}
|
|
|
|
func GetChinaDayAdd() []models.ChinaDayAdd {
|
|
chinaDayAddStr := global.Redis.Get(rds_CHINA_DAY_ADD_LIST_KEY).Val()
|
|
if chinaDayAddStr == "" {
|
|
CacheNCovTrend()
|
|
chinaDayAddStr = global.Redis.Get(rds_CHINA_DAY_ADD_LIST_KEY).Val()
|
|
}
|
|
var chinaDayAddList []models.ChinaDayAdd
|
|
json.Unmarshal([]byte(chinaDayAddStr), &chinaDayAddList)
|
|
return chinaDayAddList
|
|
}
|
|
|
|
func GetChinaDay() []models.ChinaDay {
|
|
chinaDayStr := global.Redis.Get(rds_CHINA_DAY_LIST_KEY).Val()
|
|
if chinaDayStr == "" {
|
|
CacheNCovTrend()
|
|
chinaDayStr = global.Redis.Get(rds_CHINA_DAY_LIST_KEY).Val()
|
|
}
|
|
var chinaDayList []models.ChinaDay
|
|
json.Unmarshal([]byte(chinaDayStr), &chinaDayList)
|
|
return chinaDayList
|
|
}
|
|
|
|
func GetChinaTrend() models.ChinaTrend {
|
|
return models.ChinaTrend{ChinaDayAddList: GetChinaDayAdd(), ChinaDayList: GetChinaDay()}
|
|
}
|
|
|
|
func getEntireRedisList(key string) []interface{} {
|
|
var data []interface{}
|
|
dataStrArr := global.Redis.LRange(key, 0, -1).Val()
|
|
dataStr := "[" + strings.Join(dataStrArr[:], ",") + "]"
|
|
json.Unmarshal([]byte(dataStr), &data)
|
|
return data
|
|
}
|