Sfoglia il codice sorgente

修改获取客流统计增加通道号

zhangdongming 1 anno fa
parent
commit
2958c09b2b
1 ha cambiato i file con 22 aggiunte e 9 eliminazioni
  1. 22 9
      Controller/AlgorithmShop/AlgorithmShopController.py

+ 22 - 9
Controller/AlgorithmShop/AlgorithmShopController.py

@@ -11,6 +11,7 @@ import logging
 import math
 import time
 from datetime import datetime, timedelta
+from urllib.parse import urlparse
 
 from django.db.models import F, Value, CharField, Sum
 from django.views.generic.base import View
@@ -24,6 +25,7 @@ from Object.RedisObject import RedisObject
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Object.utils import LocalDateTimeUtil
+from Ansjer.config import DETECT_PUSH_DOMAINS
 
 LOGGER = logging.getLogger('info')
 
@@ -61,6 +63,8 @@ class AlgorithmShopView(View):
             return self.get_scenario_algorithm_list(request_dict, response)
         elif operation == 'getPassengerFlowList':  # 获取客流统计列表
             return self.get_passenger_flow_list(request_dict, response)
+        elif operation == 'getNotifyDomain':
+            return self.get_notify_domain(response)
         else:
             return response.json(0)
 
@@ -461,6 +465,7 @@ class AlgorithmShopView(View):
             now_time = request_dict.get('nowTime')
             flow_type = request_dict.get('flowType')
             query_type = request_dict.get('queryType')
+            channel = int(request_dict.get('channel', '1'))
             if not all([now_time, flow_type, query_type]):
                 return response.json(444)
             query_type = int(query_type)
@@ -473,11 +478,11 @@ class AlgorithmShopView(View):
             if passenger_flow_json:
                 return response.json(0, json.loads(passenger_flow_json))
             if query_type == 1:
-                passenger_flow_list = cls.get_passenger_flow_by_day(uid, int(now_time), flow_type)
+                passenger_flow_list = cls.get_passenger_flow_by_day(uid, int(now_time), flow_type, channel)
             elif query_type == 2:
-                passenger_flow_list = cls.get_passenger_flow_by_month(uid, int(now_time), flow_type)
+                passenger_flow_list = cls.get_passenger_flow_by_month(uid, int(now_time), flow_type, channel)
             elif query_type == 3:
-                passenger_flow_list = cls.get_passenger_flow_by_year(uid, int(now_time), flow_type)
+                passenger_flow_list = cls.get_passenger_flow_by_year(uid, int(now_time), flow_type, channel)
             else:
                 return response.json(0, passenger_flow_list)
             if passenger_flow_list:
@@ -489,7 +494,7 @@ class AlgorithmShopView(View):
             return response.json(500, repr(e))
 
     @staticmethod
-    def get_passenger_flow_by_day(uid, now_time, flow_type):
+    def get_passenger_flow_by_day(uid, now_time, flow_type, channel):
         """
         按天获取客流统计
         """
@@ -501,7 +506,8 @@ class AlgorithmShopView(View):
             device_time__gte=t_list[23],
             device_time__lte=t_list[0] + 60,
             type=int(flow_type),
-            uid=uid
+            uid=uid,
+            channel=channel
         ).order_by('device_time')
         if not pf_qs.exists():
             return passenger_flow_list
@@ -535,7 +541,7 @@ class AlgorithmShopView(View):
         return passenger_flow_list
 
     @staticmethod
-    def get_passenger_flow_by_month(uid, now_time, flow_type):
+    def get_passenger_flow_by_month(uid, now_time, flow_type, channel):
         """
         按月获取客流统计
         """
@@ -549,7 +555,8 @@ class AlgorithmShopView(View):
         pf_qs = DeviceAlgorithmPassengerFlow.objects.filter(
             device_time__range=(s_time, now_time),
             type=int(flow_type),
-            uid=uid
+            uid=uid,
+            channel=channel
         ).order_by('device_time')
 
         passenger_flow_list = []
@@ -588,7 +595,7 @@ class AlgorithmShopView(View):
         return passenger_flow_list
 
     @staticmethod
-    def get_passenger_flow_by_year(uid, now_time, flow_type):
+    def get_passenger_flow_by_year(uid, now_time, flow_type, channel):
         """
         按年获取客流统计
         """
@@ -597,7 +604,7 @@ class AlgorithmShopView(View):
         for i in range(12):
             if i == 0:
                 month_time = LocalDateTimeUtil.get_current_month_first_day(now_time)
-            df_qs = DeviceAlgorithmPassengerFlow.objects.filter(type=flow_type, uid=uid)
+            df_qs = DeviceAlgorithmPassengerFlow.objects.filter(type=flow_type, uid=uid, channel=channel)
             if i == 0:
                 df_qs = df_qs.filter(device_time__range=(month_time, now_time))
                 data_qs = df_qs.first()
@@ -615,3 +622,9 @@ class AlgorithmShopView(View):
                 'time': month_time
             })
         return passenger_flow_list
+
+    @staticmethod
+    def get_notify_domain(response):
+        parsed_url = urlparse(DETECT_PUSH_DOMAINS)
+        domain = parsed_url.netloc
+        return response.json(0, {'domain': domain})