peng 3 жил өмнө
parent
commit
f325092312

+ 17 - 12
AdminController/dataSystemManagement/ServiceDataController.py

@@ -75,7 +75,8 @@ class ServiceDataView(View):
             return response.json(444, {'error param': 'startTime or endTime or timeUnit or storeMealType'})
         try:
             order_qs = Order_Model.objects.filter(order_type=store_meal_type, status=1,
-                                                  addTime__range=(start_time, end_time)).filter(~Q(price='0.00'))
+                                                  addTime__range=(start_time, end_time)).filter(
+                ~Q(price='0.00') & ~Q(price='0'))
             count = order_qs.count()
             total = order_qs.aggregate(total=Sum('price'))['total']
             start_time = datetime.datetime.fromtimestamp(int(start_time))
@@ -122,17 +123,17 @@ class ServiceDataView(View):
                         uid_type_dict[device_temp_qs[0]['Type']] = []
                     uid_type_dict[device_temp_qs[0]['Type']].append(item['UID'])
             device_count = len(set(uid_list))
-            device_qs = Device_Info.objects.filter(UID__in=uid_list).values('Type').annotate(
-                count=Count('Type', distinct=True)).order_by('-count')
-            for item in device_qs:
-                type_name = DEVICE_TYPE.get(item['Type'], '未知类型')
+            # device_qs = Device_Info.objects.filter(UID__in=uid_list).values('Type').annotate(
+            #     count=Count('Type', distinct=True)).order_by('-count')
+            for k, v in uid_type_dict.items():
+                type_name = DEVICE_TYPE.get(k, '未知类型')
                 type_name = type_name if type_name != 'UNKOWN' else '未知类型'
-                type_rate = round(item['count'] / device_count * 100, 2)
-                temp_total = order_qs.filter(UID__in=uid_type_dict[item['Type']]).aggregate(total=Sum('price'))['total']
+                type_rate = round(len(v) / device_count * 100, 2)
+                temp_total = order_qs.filter(UID__in=v).aggregate(total=Sum('price'))['total']
                 total_rate = round(temp_total / total * 100, 2)
                 device_temp_qs = {
                     'typeName': type_name,
-                    'count': item['count'],
+                    'count': len(v),
                     'typeRate': type_rate,
                     'totalMoney': temp_total,
                     'totalRate': total_rate
@@ -182,7 +183,8 @@ class ServiceDataView(View):
             return response.json(444, {'error param': 'startTime or endTime or timeUnit or storeMealType'})
         try:
             order_qs = Order_Model.objects.filter(order_type=store_meal_type, status=1,
-                                                  addTime__range=(start_time, end_time)).filter(Q(price='0.00'))
+                                                  addTime__range=(start_time, end_time)).filter(
+                Q(price='0.00') | Q(price='0'))
             count = order_qs.count()
             start_time = datetime.datetime.fromtimestamp(int(start_time))
             end_time = datetime.datetime.fromtimestamp(int(end_time))
@@ -264,7 +266,8 @@ class ServiceDataView(View):
             return response.json(444, {'error param': 'startTime or endTime or timeUnit or storeMealType'})
         try:
             order_gte_start_time_qs = Order_Model.objects.filter(order_type=store_meal_type, status=1,
-                                                                 addTime__lte=start_time).filter(~Q(price='0.00'))
+                                                                 addTime__lte=start_time).filter(
+                ~Q(price='0.00') & ~Q(price='0'))
             uid_list = []
             for item in order_gte_start_time_qs:
                 uid_list.append(item.UID)
@@ -352,12 +355,14 @@ class ServiceDataView(View):
             return response.json(444, {'error param': 'startTime or endTime or timeUnit or storeMealType'})
         try:
             order_gte_start_time_qs = Order_Model.objects.filter(order_type=store_meal_type, status=1,
-                                                                 addTime__lte=start_time).filter(~Q(price='0.00'))
+                                                                 addTime__lte=start_time).filter(
+                ~Q(price='0.00') & ~Q(price='0'))
             uid_list = []
             for item in order_gte_start_time_qs:
                 uid_list.append(item.UID)
             order_qs = Order_Model.objects.filter(order_type=store_meal_type, status=1,
-                                                  addTime__range=(start_time, end_time)).filter(~Q(price='0.00'))
+                                                  addTime__range=(start_time, end_time)).filter(
+                ~Q(price='0.00') & ~Q(price='0'))
             total = order_qs.count()
 
             # 订单复购率

+ 0 - 2
AdminController/dataSystemManagement/UserDataController.py

@@ -310,7 +310,6 @@ class UserDataView(View):
         """
         查询全球用户地区分布
         @param request:请求
-        @param request_dict:请求参数
         @param response:响应对象
         @return:
         """
@@ -341,7 +340,6 @@ class UserDataView(View):
                     for item in user_list:
                         rate = round(item['count'] / user_count * 100, 2)
                         item['rate'] = rate
-
                 else:
                     return response.json(result['result_code'])
             res = {