Эх сурвалжийг харах

优化免费订单转化率

peng 3 жил өмнө
parent
commit
66d5fcf4ba

+ 15 - 4
AdminController/dataSystemManagement/ServiceDataController.py

@@ -220,8 +220,8 @@ class ServiceDataView(View):
                 uidset_count = uidset_qs.filter(is_ai=1).count()
             else:
                 uidset_count = uidset_qs.filter(mobile_4g=1).count()
-            device_count = order_qs.values('UID').distinct().order_by('UID').count()
-            inversion_rate = round(device_count / uidset_count * 100, 2)
+            order_device_count = order_qs.values('UID').distinct().order_by('UID').count()
+            inversion_rate = round(order_device_count / uidset_count * 100, 2)
             # 订单数量统计
             order_list = []
             for item in time_list:
@@ -275,7 +275,9 @@ class ServiceDataView(View):
                 'orders': order_list,
                 'regions': region_list,
                 'deviceType': device_type_list,
-                'inversionRate': inversion_rate
+                'inversionRate': inversion_rate,
+                'newDeviceCount': uidset_count,
+                'orderDeviceCount': order_device_count
             }
             return response.json(0, res)
         except Exception as e:
@@ -587,6 +589,8 @@ class ServiceDataView(View):
             region_count = 0
             device_type_list = []
             device_type_count = 0
+            new_device_count = 0
+            order_device_count = 0
             for url in url_list:
                 url = url + request.path.replace('global/', '')
                 res = requests.get(url=url, params=request_dict, headers=headers)
@@ -632,12 +636,19 @@ class ServiceDataView(View):
                     for item in device_type_list:
                         type_rate = round(item['count'] / device_type_count * 100, 2)
                         item['typeRate'] = type_rate
+                    # 处理转化率
+                    new_device_count += int(result['result']['newDeviceCount'])
+                    order_device_count += int(result['result']['orderDeviceCount'])
                 else:
                     return response.json(result['result_code'])
+            inversion_rate = round(order_device_count / new_device_count * 100, 2)
             res = {
                 'orders': order_list,
                 'regions': CommonService.list_sort(region_list),
-                'deviceType': CommonService.list_sort(device_type_list)
+                'deviceType': CommonService.list_sort(device_type_list),
+                'newDeviceCount': new_device_count,
+                'orderDeviceCount': order_device_count,
+                'inversionRate': inversion_rate
             }
             return response.json(0, res)
         except Exception as e: