Просмотр исходного кода

数据系统订单统计增加云盘订单统计

peng 2 лет назад
Родитель
Сommit
240c28ca1b

+ 8 - 3
AdminController/IcloudManagementController.py

@@ -165,7 +165,8 @@ class IcloudServeView(View):
         if not all([page, line]):
             return response.json(444)
         icloud_meal_qs = ICloudStoreMeal.objects.all()
-
+        page = int(page)
+        line = int(line)
         if is_select:
             icloud_meal_qs = icloud_meal_qs.values('id', 'lang__title')
         else:
@@ -224,12 +225,16 @@ class IcloudServeView(View):
         if not all([page, line]):
             return response.json(444)
         now_time = int(time.time())
+        page = int(page)
+        line = int(line)
         try:
             icloud_user_qs = IcloudUseDetails.objects.all()
             if user_id:
                 icloud_user_qs = icloud_user_qs.filter(user_id=user_id)
             icloud_user_qs = icloud_user_qs.values('use_size', 'user_id', 'detect_status', 'bucket_id',
                                                    'id')
+            total = icloud_user_qs.count()
+            icloud_user_qs = icloud_user_qs[(page - 1) * line:page * line]
             for item in icloud_user_qs:
                 use_details_id = item['id']
                 user_id = item['user_id']
@@ -243,7 +248,7 @@ class IcloudServeView(View):
                     'size').aggregate(total_size=Sum('size'))['total_size']
                 item['all_size'] = float(all_size * 1024) if all_size else 0  # 转换单位为MB
 
-            return response.json(0, list(icloud_user_qs))
+            return response.json(0, {'list': list(icloud_user_qs), 'total': total})
         except Exception as e:
             return response.json(500)
 
@@ -255,7 +260,7 @@ class IcloudServeView(View):
         try:
             icloud_use_qs = IcloudUseDetails.objects.filter(id=use_details_id).values('user_id')
             user_id = icloud_use_qs[0]['user_id']
-            icloud_record = IcloudStorageRecord.objects.filter(user_id=user_id).values('bucket_id',)
+            icloud_record = IcloudStorageRecord.objects.filter(user_id=user_id).values('bucket_id', )
             bucket_id = icloud_record[0]['bucket_id']
             bucket_qs = VodBucketModel.objects.filter(id=bucket_id).values('bucket', 'region', 'mold')
             if not bucket_qs.exists():

+ 16 - 10
AdminController/dataSystemManagement/ServiceDataController.py

@@ -71,10 +71,12 @@ class ServiceDataView(View):
         if not all([start_time, end_time, time_unit, store_meal_type]):
             return response.json(444, {'error param': 'startTime or endTime or timeUnit or storeMealType'})
         try:
-            store_meal_type = int(store_meal_type)
+            store_meal_type = store_meal_type.split(',')
             order_qs = OrdersSummary.objects.filter(time__gte=start_time, time__lt=end_time, query_type=0,
-                                                    service_type=store_meal_type).values('count', 'country', 'total',
-                                                                                         'device_type', 'store_meal')
+                                                    service_type__in=store_meal_type).values('count', 'country',
+                                                                                             'total',
+                                                                                             'device_type',
+                                                                                             'store_meal')
             all_order_qs = OrdersSummary.objects.filter(time__gte=start_time, time__lt=end_time).filter(
                 Q(query_type=0) | Q(query_type=1)).values('total', 'count')
             all_order_count = 0
@@ -226,10 +228,10 @@ class ServiceDataView(View):
         if not all([start_time, end_time, time_unit, store_meal_type]):
             return response.json(444, {'error param': 'startTime or endTime or timeUnit or storeMealType'})
         try:
-            store_meal_type = int(store_meal_type)
+            store_meal_type = store_meal_type.split(',')
             order_qs = OrdersSummary.objects.filter(time__gte=start_time, time__lt=end_time, query_type=1,
-                                                    service_type=store_meal_type).values('count', 'country',
-                                                                                         'device_type')
+                                                    service_type__in=store_meal_type).values('count', 'country',
+                                                                                             'device_type')
             free_order_count = order_qs.aggregate(count=Sum('count'))['count']
             free_order_count = free_order_count if free_order_count else 0  # 免费订单数量
             all_order_qs = OrdersSummary.objects.filter(time__gte=start_time, time__lt=end_time).filter(
@@ -335,9 +337,11 @@ class ServiceDataView(View):
         if not all([start_time, end_time, time_unit, store_meal_type]):
             return response.json(444, {'error param': 'startTime or endTime or timeUnit or storeMealType'})
         try:
+            store_meal_type = store_meal_type.split(',')
             order_qs = OrdersSummary.objects.filter(time__gte=start_time, time__lt=end_time, query_type=2,
-                                                    service_type=store_meal_type).values('count', 'country', 'total',
-                                                                                         'device_type')
+                                                    service_type__in=store_meal_type).values('count', 'country',
+                                                                                             'total',
+                                                                                             'device_type')
             all_order_qs = OrdersSummary.objects.filter(time__gte=start_time, time__lt=end_time).filter(
                 Q(query_type=0) | Q(query_type=1)).values('total', 'count')
             all_order_count = 0
@@ -462,9 +466,11 @@ class ServiceDataView(View):
         if not all([start_time, end_time, time_unit, store_meal_type]):
             return response.json(444, {'error param': 'startTime or endTime or timeUnit or storeMealType'})
         try:
+            store_meal_type = store_meal_type.split(',')
             order_qs = OrdersSummary.objects.filter(time__gte=start_time, time__lt=end_time, query_type=3,
-                                                    service_type=store_meal_type).values('count', 'country', 'total',
-                                                                                         'device_type')
+                                                    service_type__in=store_meal_type).values('count', 'country',
+                                                                                             'total',
+                                                                                             'device_type')
             repeat_pay_order_count = order_qs.aggregate(count=Sum('count'))['count']
             repeat_pay_order_count = repeat_pay_order_count if repeat_pay_order_count else 0
             all_order_qs = OrdersSummary.objects.filter(time__gte=start_time, time__lt=end_time).filter(