|
@@ -2642,25 +2642,45 @@ class serveManagement(View):
|
|
"us": "https://www.dvema.com/serveManagement/todayCloudPackageQueryNum"
|
|
"us": "https://www.dvema.com/serveManagement/todayCloudPackageQueryNum"
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ # 用于存储日期数据
|
|
|
|
+ region_dates = defaultdict(dict)
|
|
|
|
+ all_dates = set() # 用于收集所有的日期
|
|
|
|
+
|
|
for region in servers:
|
|
for region in servers:
|
|
res = requests.get(servers[region], timeout=10)
|
|
res = requests.get(servers[region], timeout=10)
|
|
result = json.loads(res.text)
|
|
result = json.loads(res.text)
|
|
region_data = result['data']
|
|
region_data = result['data']
|
|
|
|
|
|
- # 数据格式化
|
|
|
|
for date, value in region_data.items():
|
|
for date, value in region_data.items():
|
|
|
|
+ region_dates[region][date] = int(value)
|
|
|
|
+ all_dates.add(date)
|
|
|
|
+
|
|
|
|
+ # 从返回的数据中获取最小和最大日期
|
|
|
|
+ min_date = min(all_dates, key=lambda x: datetime.datetime.strptime(x, "%Y-%m-%d"))
|
|
|
|
+ max_date = max(all_dates, key=lambda x: datetime.datetime.strptime(x, "%Y-%m-%d"))
|
|
|
|
+
|
|
|
|
+ # 生成日期范围列表
|
|
|
|
+ date_list = []
|
|
|
|
+ current_date = datetime.datetime.strptime(min_date, "%Y-%m-%d")
|
|
|
|
+ while current_date <= datetime.datetime.strptime(max_date, "%Y-%m-%d"):
|
|
|
|
+ date_list.append(current_date.strftime("%Y-%m-%d"))
|
|
|
|
+ current_date += datetime.timedelta(days=1)
|
|
|
|
+
|
|
|
|
+ # 格式化所有数据
|
|
|
|
+ for date in date_list:
|
|
|
|
+ for region in servers:
|
|
|
|
+ value = region_dates[region].get(date, 0)
|
|
all_data.append({
|
|
all_data.append({
|
|
"date": date,
|
|
"date": date,
|
|
"region": region,
|
|
"region": region,
|
|
- "value": int(value)
|
|
|
|
|
|
+ "value": value
|
|
})
|
|
})
|
|
|
|
|
|
# 计算总和 "all" 部分
|
|
# 计算总和 "all" 部分
|
|
merged = defaultdict(int)
|
|
merged = defaultdict(int)
|
|
-
|
|
|
|
for record in all_data:
|
|
for record in all_data:
|
|
date = record["date"]
|
|
date = record["date"]
|
|
- merged[date] += record["value"] # 累加相同日期的值
|
|
|
|
|
|
+ merged[date] += record["value"]
|
|
|
|
|
|
# 将"all"总和添加到all_data
|
|
# 将"all"总和添加到all_data
|
|
for date, value in merged.items():
|
|
for date, value in merged.items():
|