Browse Source

推送信息接口

chenjunkai 6 years ago
parent
commit
14b2473551

+ 9 - 5
Ansjer/test/oss.py

@@ -19,8 +19,9 @@ import urllib
 
 ###########
 host = "oss-cn-shenzhen.aliyuncs.com"  # just for example
-accessid = 'LTAIpezLGJWqmrwR'
-accesskey = 'S6vx8nZQw8pwoX07qMMnLdA61TMvX5'
+
+accessid = 'LTAIyMkGfEdogyL9'
+accesskey = '71uIjpsqVOmF7DAITRyRuc259jHOjO'
 bucket_name = "cloudvod1"
 channel_name = "vod"
 auth = Auth(accessid, accesskey)
@@ -28,11 +29,14 @@ bucket = Bucket(auth, host, bucket_name)
 ######################
 # 生成oss签名url
 url = bucket.sign_url('GET', 'vod/1543561927/1543561927.m3u8', 60 * 60, params={'x-oss-process': 'hls/sign'})
-# url = bucket.sign_url('GET', 'vod/playlist.m3u8', 60 * 60,params={'x-oss-process': 'hls/sign'})
 
-url = urllib.parse.unquote(url, encoding='utf-8', errors='replace')
-print(url)
+# url = bucket.sign_url('GET', 'vod/1543561897/1543561897.m3u8', 60 * 60, params={'x-oss-process': 'hls/sign'})
+# url = bucket.sign_url('GET', 'vod/1543561865/1543561865.m3u8', 60 * 60, params={'x-oss-process': 'hls/sign'})
 
+# url = urllib.parse.unquote(url, encoding='utf-8', errors='replace')
+
+# url=urllib.parse.unquote(url)
+print(url)
 exit()
 # 播放m3u8
 # m3list = bucket.post_vod_playlist(channel_name=channel_name, playlist_name='test.m3u8', start_time=1537336020119,

+ 3 - 0
Ansjer/urls.py

@@ -110,6 +110,9 @@ urlpatterns = [
     url(r'^v2/account/forgetCode$', UserController.v2forgetPwdCodeView.as_view()),
     url(r'^v2/account/resetPwdByCode$', UserController.v2resetPwdByCodeView.as_view()),
 
+    url(r'^detet/add$', EquipmentInfo.AddDetectionView.as_view()),
+# http://192.168.136.45:8077/detet/add?UID=2N1K3LE78TYJ38CE111A&Channel=0&eventType=1&eventTime=1234567890&operation=add&alarm=21342134&receiveTime=1234567891234567
+
     # 测试专用api
     path('Test', Test.Test.as_view()),
     # 路由加参数参考

+ 55 - 0
Controller/EquipmentInfo.py

@@ -7,6 +7,7 @@ from Model.models import Equipment_Info, Device_Info, Device_User
 import traceback
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
+from django.views.generic import TemplateView
 
 '''
 http://192.168.136.45:8077/equipment/info?token=test&devUid=2N1K3LE78TYJ38CE111A&Channel=0&eventType=1&eventTime=1234567890&operation=add&alarm=21342134&receiveTime=1234567891234567
@@ -224,3 +225,57 @@ class EquipmentInfo(View):
                 return response.json(0, {'delete_count': is_delete[0]})
         else:
             return response.json(404)
+
+
+# 设备推送信息添加接口
+class AddDetectionView(TemplateView):
+    @method_decorator(csrf_exempt)
+    def dispatch(self, *args, **kwargs):
+        return super(AddDetectionView, self).dispatch(*args, **kwargs)
+
+    def get(self, request, *args, **kwargs):
+        request.encoding = 'utf-8'
+        return self.validation(request_dict=request.GET)
+
+    def post(self, request, *args, **kwargs):
+        request.encoding = 'utf-8'
+        return self.validation(request_dict=request.POST)
+
+    def validation(self, request_dict, *args, **kwargs):
+        response = ResponseObject()
+        # 设备添加token
+        UID = request_dict.get('UID', None)
+        Channel = request_dict.get('Channel', None)
+        eventType = request_dict.get('eventType', None)
+        eventTime = request_dict.get('eventTime', None)
+        receiveTime = request_dict.get('receiveTime', None)
+        alarm = request_dict.get('alarm', None)
+
+        if not UID or not Channel or not eventType or not eventTime or not alarm or not receiveTime:
+            return response.json(444, 'devUid, Channel, eventType, eventTime, alarm, receiveTime')
+        # dv_qs = Device_Info.objects.filter(UID=UID, isShare=False)
+        dv_qs = Device_Info.objects.filter(UID=UID,isDetector=True).values("userID_id","NickName")
+        if not dv_qs.exists():
+            return response.json(10,'device not detect')
+        qs_list = []
+        for dv in dv_qs:
+            print(dv)
+            add_data = {
+                # 'userID': Device_User.objects.get(userID=dv["userID_id"]),
+                'userID_id': dv["userID_id"],
+                'devUid': UID,
+                'Channel': Channel,
+                'eventType': eventType,
+                'receiveTime': receiveTime,
+                'eventTime': eventTime,
+                'devNickName': dv["NickName"],
+                'viewPwd': '',
+                'viewAccont': '',
+                'alarm': alarm
+            }
+            qs_list.append(Equipment_Info(**add_data))
+        if qs_list:
+            print(1)
+            Equipment_Info.objects.bulk_create(qs_list)
+            print(2)
+            return response.json(0)

+ 32 - 35
Controller/EquipmentOTA.py

@@ -106,42 +106,39 @@ class EquipmentOTA(View):
         page = int(request_dict.get('page', None))
         line = int(request_dict.get('line', None))
         content = request_dict.get('content', None)
-        param_flag = CommonService.get_param_flag(data=[page, line, content])
-        if param_flag is True:
-            own_permission = ModelService.check_permission(userID=userID, permID=250)
-            if own_permission is True:
-                content = json.loads(content)
-                search_kwargs = CommonService.get_kwargs(data=content)
-                equipment_version_queryset = Equipment_Version.objects.filter(**search_kwargs)
-                if equipment_version_queryset.exists():
-                    count = equipment_version_queryset.count()
-                    res = equipment_version_queryset[(page - 1) * line:page * line]
-                    send_json = CommonService.qs_to_dict(res)
-                    send_json['count'] = count
-                    return response.json(0, send_json)
-                else:
-                    return response.json(0)
-            else:
-                return response.json(404)
-        else:
+        if page is None or line is None or content is None:
             return response.json(444)
+        own_permission = ModelService.check_permission(userID=userID, permID=250)
+        if own_permission is not True:
+            return response.json(404)
+        content = json.loads(content)
+        search_kwargs = CommonService.get_kwargs(data=content)
+        qs = Equipment_Version.objects.filter(**search_kwargs)
+        if not qs.exists():
+            return response.json(0,[])
+        count = qs.count()
+        res = qs[(page - 1) * line:page * line]
+        send_json = CommonService.qs_to_dict(res)
+        send_json['count'] = count
+        return response.json(0, send_json)
+
 
     def update(self, request_dict, userID, response):
         eid = request_dict.get('eid', None)
-        param_flag = CommonService.get_param_flag(data=[eid])
-        if param_flag is True:
-            own_permission = ModelService.check_permission(userID=userID, permID=230)
-            if own_permission is True:
-                ev = Equipment_Version.objects.filter(eid=eid)
-                if ev.exists():
-                    status = request_dict.get('status', None)
-                    try:
-                        update_time = timezone.localtime(timezone.now())
-                        ev.update(status=status, update_time=update_time)
-                    except Exception as e:
-                        print(repr(e))
-                        pass
-                    return response.json(0, {'update_time': str(update_time)})
-            else:
-                return response.json(404)
-        return response.json(444)
+        if eid is None:
+            return response.json(444,'eid')
+        own_permission = ModelService.check_permission(userID=userID, permID=230)
+        if own_permission is not True:
+            return response.json(404)
+        ev = Equipment_Version.objects.filter(eid=eid)
+        if not ev.exists():
+            return response.json(10,'ev none')
+        status = request_dict.get('status', None)
+        try:
+            update_time = timezone.localtime(timezone.now())
+            ev.update(status=status, update_time=update_time)
+        except Exception as e:
+            print(repr(e))
+            pass
+        else:
+            return response.json(0, {'update_time': str(update_time)})

+ 2 - 2
Controller/Test.py

@@ -55,9 +55,9 @@ class Test(View):
     @ratelimit(key='ip', rate='1/m')
     def get(self, request, *args, **kwargs):
         # 阿里云oss测试
-        return self.ossCrd()
+        # return self.ossCrd()
         # 七牛测试
-        return self.qiniutokentest()
+        # return self.qiniutokentest()
         # paypal测试
         return self.paypaytest(request)
 

+ 2 - 9
Controller/shareUserPermission.py

@@ -333,14 +333,8 @@ class unsharedUserEquipmentView(View):
 
     def unsharedUserEquipmentSQL(self, MasterID, GuestID, unsharedAll, response, *args, **kwargs):
         if unsharedAll:
-            try:
-                equipmentCount = Device_Info.objects.filter(userID_id=GuestID, primaryUserID=MasterID).delete()
-            except Exception as e:
-                errorInfo = traceback.format_exc()
-                print('删除设备更新数据库错误: %s' % errorInfo)
-                return response.json(171, {"details": repr(e)})
-            else:
-                return response.json(0, {'removeCount': equipmentCount[0]})
+            ec = Device_Info.objects.filter(userID_id=GuestID, primaryUserID=MasterID).delete()
+            return response.json(0, {'removeCount': ec[0]})
         else:
             content = kwargs.get('content', None)
             if content != None:
@@ -366,7 +360,6 @@ class unsharedUserEquipmentView(View):
                         continue
                     else:
                         removeCount += equipmentCount[0]
-
                 if len(errorRemove) > 0:
                     return response.json(171, {'removeCount': removeCount,'error_UID': errorRemove})
                 else:

+ 0 - 2
Object/TokenObject.py

@@ -43,10 +43,8 @@ class TokenObject:
         except jwt.ExpiredSignatureError as e:
             print('过期')
             print(repr(e))
-            # self.code = 307
             self.code = 309
         except Exception as e:
-            # self.code = 305
             self.code = 309
         else:
             return res