chenjunkai пре 5 година
родитељ
комит
dfaa2f2dd9
1 измењених фајлова са 30 додато и 109 уклоњено
  1. 30 109
      Controller/DetectController.py

+ 30 - 109
Controller/DetectController.py

@@ -47,83 +47,6 @@ class NotificationView(View):
         # operation = kwargs.get('operation')
         return self.validation(request.POST)
 
-    def validation11(self, request_dict):
-        response = ResponseObject()
-        uidToken = request_dict.get('uidToken', None)
-        channel = request_dict.get('channel', '1')
-        n_time = request_dict.get('n_time', None)
-        event_type = request_dict.get('event_type', None)
-        is_st = request_dict.get('is_st', None)
-        if not all([uidToken, channel, n_time]):
-            return JsonResponse(status=200, data={
-                'code': 444,
-                'msg': 'param is wrong'})
-            # return response.json(444)
-        utko = UidTokenObject(uidToken)
-        uid = utko.UID
-        redisObj = RedisObject(db=6)
-        # pkey = '{uid}_{channel}_ptl'.format(uid=uid, channel=channel)
-        pkey = '{uid}_ptl'.format(uid=uid)
-        if redisObj.get_data(key=pkey):
-            res_data = {'code': 0, 'msg': 'success,!'}
-            return JsonResponse(status=200, data=res_data)
-        else:
-            # 设置推送间隔60秒一次
-            redisObj.set_data(key=pkey, val=1, expire=60)
-        uid_set_qs = UidSetModel.objects.filter(uid=uid, detect_status=1)
-        if uid_set_qs.exists():
-            uid_set_id = uid_set_qs[0].id
-            nickname = uid_set_qs[0].nickname
-            if not nickname:
-                nickname = uid
-            uid_push_qs = UidPushModel.objects.filter(uid_set__id=uid_set_id). \
-                values('token_val', 'app_type', 'appBundleId', 'push_type', 'userID_id', 'userID__NickName', 'lang',
-                       'tz')
-            if uid_push_qs.exists():
-                auth = oss2.Auth(OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET)
-                bucket = oss2.Bucket(auth, 'oss-cn-shenzhen.aliyuncs.com', 'apg')
-                for up in uid_push_qs:
-                    push_type = up['push_type']
-                    # ios apns
-                    print(push_type)
-                    if push_type == 0:
-                        self.do_apns(request_dict, up, response, uid, channel, nickname)
-                    # android gcm
-                    elif push_type == 1:
-                        self.do_fcm(request_dict, up, response, uid, channel, nickname)
-                        # self.do_gmc(request_dict, up, response, uid, channel,nickname)
-                    # android jpush
-                    elif push_type == 2:
-                        self.do_jpush(request_dict, up, response, uid, channel, nickname)
-                    # self.do_save_equipment_info(ua, n_time, channel, event_type, is_st)
-                # 需求不一样,所以这么做的
-                self.do_bulk_create_info(uid_push_qs, n_time, channel, event_type, is_st, uid)
-                if is_st == '0' or is_st == '2':
-                    return JsonResponse(status=200, data={'code': 0, 'msg': 'success'})
-                elif is_st == '1':
-                    # Endpoint以杭州为例,其它Region请按实际情况填写。
-                    obj = '{uid}/{channel}/{filename}.jpeg'.format(uid=uid, channel=channel, filename=n_time)
-                    # 设置此签名URL在60秒内有效。
-                    url = bucket.sign_url('PUT', obj, 7200)
-                    res_data = {'code': 0, 'img_push': url, 'msg': 'success'}
-                    return JsonResponse(status=200, data=res_data)
-                elif is_st == '3':
-                    # 人形检测带动图
-                    # Endpoint以杭州为例,其它Region请按实际情况填写。
-                    img_url_list = []
-                    for i in range(int(is_st)):
-                        obj = '{uid}/{channel}/{filename}_{st}.jpeg'. \
-                            format(uid=uid, channel=channel, filename=n_time, st=i)
-                        # 设置此签名URL在60秒内有效。
-                        url = bucket.sign_url('PUT', obj, 7200)
-                        img_url_list.append(url)
-                    res_data = {'code': 0, 'img_url_list': img_url_list, 'msg': 'success'}
-                    return JsonResponse(status=200, data=res_data)
-            else:
-                return JsonResponse(status=200, data={'code': 404, 'msg': 'data is not exist'})
-        else:
-            return JsonResponse(status=200, data={'code': 404, 'msg': 'data is not exist'})
-
     def validation(self, request_dict):
         response = ResponseObject()
         uidToken = request_dict.get('uidToken', None)
@@ -149,7 +72,7 @@ class NotificationView(View):
             redisObj.set_data(key=pkey, val=1, expire=60)
         # uid_set_id = uid_set_qs[0].id
 
-        uid_push_qs = UidPushModel.objects.filter(uid_set__uid=uid). \
+        uid_push_qs = UidPushModel.objects.filter(uid_set__uid=uid,uid_set__detect_status=1). \
             values('token_val', 'app_type', 'appBundleId',
                    'push_type', 'userID_id', 'userID__NickName',
                    'lang', 'tz','uid_set__nickname')
@@ -393,39 +316,34 @@ class PushNotificationView(View):
                 return JsonResponse(status=200, data=res_data)
             else:
                 redisObj.set_data(key=pkey, val=1, expire=60)
-            uid_set_qs = UidSetModel.objects.filter(uid=uid, detect_status=1)
-            if uid_set_qs.exists():
-                uid_set_id = uid_set_qs[0].id
-                uid_push_qs = UidPushModel.objects.filter(uid_set__id=uid_set_id). \
-                    values('token_val', 'app_type', 'appBundleId', 'push_type',
-                           'userID_id', 'userID__NickName', 'lang', 'tz')
-                if uid_set_qs.exists():
-                    auth = oss2.Auth(OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET)
-                    bucket = oss2.Bucket(auth, 'oss-cn-shenzhen.aliyuncs.com', 'apg')
-                    self.do_bulk_create_info(uid_push_qs, n_time, channel, event_type, is_st, uid)
-                    if is_st == '0' or is_st == '2':
-                        return JsonResponse(status=200, data={'code': 0, 'msg': 'success'})
-                    elif is_st == '1':
-                        # Endpoint以杭州为例,其它Region请按实际情况填写。
-                        obj = '{uid}/{channel}/{filename}.jpeg'.format(uid=uid, channel=channel, filename=n_time)
+            uid_push_qs = UidPushModel.objects.filter(uid_set__uid=uid,uid_set__detect_status=1). \
+                values('token_val', 'app_type', 'appBundleId', 'push_type',
+                       'userID_id', 'userID__NickName', 'lang', 'tz','uid_set__nickname')
+            if uid_push_qs.exists():
+                auth = oss2.Auth(OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET)
+                bucket = oss2.Bucket(auth, 'oss-cn-shenzhen.aliyuncs.com', 'apg')
+                self.do_bulk_create_info(uid_push_qs, n_time, channel, event_type, is_st, uid)
+                if is_st == '0' or is_st == '2':
+                    return JsonResponse(status=200, data={'code': 0, 'msg': 'success'})
+                elif is_st == '1':
+                    # Endpoint以杭州为例,其它Region请按实际情况填写。
+                    obj = '{uid}/{channel}/{filename}.jpeg'.format(uid=uid, channel=channel, filename=n_time)
+                    # 设置此签名URL在60秒内有效。
+                    url = bucket.sign_url('PUT', obj, 7200)
+                    res_data = {'code': 0, 'img_push': url, 'msg': 'success'}
+                    return JsonResponse(status=200, data=res_data)
+                elif is_st == '3':
+                    # 人形检测带动图
+                    img_url_list = []
+                    for i in range(int(is_st)):
+                        obj = '{uid}/{channel}/{filename}_{st}.jpeg'. \
+                            format(uid=uid, channel=channel, filename=n_time, st=i)
                         # 设置此签名URL在60秒内有效。
                         url = bucket.sign_url('PUT', obj, 7200)
-                        res_data = {'code': 0, 'img_push': url, 'msg': 'success'}
-                        return JsonResponse(status=200, data=res_data)
-                    elif is_st == '3':
-                        # 人形检测带动图
-                        img_url_list = []
-                        for i in range(int(is_st)):
-                            obj = '{uid}/{channel}/{filename}_{st}.jpeg'. \
-                                format(uid=uid, channel=channel, filename=n_time, st=i)
-                            # 设置此签名URL在60秒内有效。
-                            url = bucket.sign_url('PUT', obj, 7200)
-                            img_url_list.append(url)
-                        res_data = {'code': 0, 'img_url_list': img_url_list, 'msg': 'success'}
-                        return JsonResponse(status=200, data=res_data)
+                        img_url_list.append(url)
+                    res_data = {'code': 0, 'img_url_list': img_url_list, 'msg': 'success'}
+                    return JsonResponse(status=200, data=res_data)
 
-                else:
-                    return JsonResponse(status=200, data={'code': 404, 'msg': 'data is not exist'})
             else:
                 return JsonResponse(status=200, data={'code': 404, 'msg': 'data is not exist'})
         else:
@@ -440,12 +358,15 @@ class PushNotificationView(View):
         for dv in uaqs:
             userID_id = dv["userID_id"]
             if userID_id not in userID_ids:
+                uid_nickname = dv['uid_set__nickname']
+                if not uid_nickname:
+                    uid_nickname = uid
                 add_data = {
                     'userID_id': dv["userID_id"],
                     'eventTime': n_time,
                     'eventType': event_type,
                     'devUid': uid,
-                    'devNickName': uid,
+                    'devNickName': uid_nickname,
                     'Channel': channel,
                     'alarm': 'Motion \tChannel:{channel}'.format(channel=channel),
                     'is_st': int(is_st),