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

订单类型销售额占比

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

+ 6 - 2
AdminController/dataSystemManagement/ServiceDataController.py

@@ -159,13 +159,13 @@ class ServiceDataView(View):
                 store_meal_qs = order_qs.values('unify_combo_id').annotate(count=Count('unify_combo_id')).order_by(
                     '-count')
             for item in store_meal_qs:
-                store_meal_total = store_meal_qs.aggregate(total=Sum('price'))['total']
                 if store_meal_type == 0:
                     store_meal_id = item['rank']
                     store_meal_content_qs = store_meal_qs.filter(rank=store_meal_id, rank__lang__lang='cn').values(
                         'rank__lang__content')
                     store_meal_name = store_meal_content_qs[0][
                         'rank__lang__content'] if store_meal_content_qs.exists() else '未知套餐'
+                    store_meal_total = order_qs.filter(rank=store_meal_id).aggregate(total=Sum('price'))['total']
                 elif store_meal_type == 1:
                     store_meal_id = item['ai_rank']
                     store_meal_content_qs = store_meal_qs.filter(ai_rank=store_meal_id,
@@ -173,17 +173,21 @@ class ServiceDataView(View):
                         'ai_rank__lang__content')
                     store_meal_name = store_meal_content_qs[0][
                         'ai_rank__lang__content'] if store_meal_content_qs.exists() else '未知套餐'
+                    store_meal_total = order_qs.filter(ai_rank=store_meal_id).aggregate(total=Sum('price'))[
+                        'total']
                 else:
                     store_meal_id = item['unify_combo_id']
                     store_meal_content_qs = UnicomCombo.objects.filter(id=store_meal_id).values(
                         'combo_name')
                     store_meal_name = store_meal_content_qs[0][
                         'combo_name'] if store_meal_content_qs.exists() else '未知套餐'
+                    store_meal_total = order_qs.filter(unify_combo_id=store_meal_id).aggregate(total=Sum('price'))[
+                        'total']
+                total_rate = round(store_meal_total / total * 100, 2)
                 if count:
                     rate = round(item['count'] / count * 100, 2)
                 else:
                     rate = 0
-                total_rate = round(store_meal_total / total * 100, 2)
                 store_meal_dict = {
                     'storeMealId': store_meal_id,
                     'count': item['count'],