Browse Source

后台每日云存列表界面访问次数优化

linhaohong 6 tháng trước cách đây
mục cha
commit
0dc30e4555
1 tập tin đã thay đổi với 24 bổ sung4 xóa
  1. 24 4
      AdminController/ServeManagementController.py

+ 24 - 4
AdminController/ServeManagementController.py

@@ -2642,25 +2642,45 @@ class serveManagement(View):
                 "us": "https://www.dvema.com/serveManagement/todayCloudPackageQueryNum"
             }
 
+            # 用于存储日期数据
+            region_dates = defaultdict(dict)
+            all_dates = set()  # 用于收集所有的日期
+
             for region in servers:
                 res = requests.get(servers[region], timeout=10)
                 result = json.loads(res.text)
                 region_data = result['data']
 
-                # 数据格式化
                 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({
                         "date": date,
                         "region": region,
-                        "value": int(value)
+                        "value": value
                     })
 
             # 计算总和 "all" 部分
             merged = defaultdict(int)
-
             for record in all_data:
                 date = record["date"]
-                merged[date] += record["value"]  # 累加相同日期的值
+                merged[date] += record["value"]
 
             # 将"all"总和添加到all_data
             for date, value in merged.items():