chenjunkai 6 年之前
父节点
当前提交
09d73b44c2
共有 3 个文件被更改,包括 22 次插入17 次删除
  1. 2 1
      Ansjer/urls.py
  2. 19 15
      Controller/EquipmentInfo.py
  3. 1 1
      Model/models.py

+ 2 - 1
Ansjer/urls.py

@@ -114,7 +114,8 @@ urlpatterns = [
 
     # url(r'^uid/(?P<operation>.*)$', UidController.UidControllerView.as_view()),
 
-    url(r'^detet/add$', EquipmentInfo.AddDetectionView.as_view()),
+    url(r'^detect/add$', EquipmentInfo.AddDetectionView.as_view()),
+    url(r'^detect/status$', EquipmentInfo.DetectStatusView.as_view()),
 # http://192.168.136.45:8077/detet/add?UID=2N1K3LE78TYJ38CE111A&Channel=0&eventType=1&eventTime=1234567890&operation=add&alarm=21342134&receiveTime=1234567891234567
     # 新的设备接口
 

+ 19 - 15
Controller/EquipmentInfo.py

@@ -8,7 +8,7 @@ import traceback
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from django.views.generic import TemplateView
-from Ansjer.config import UID_TOKEN_KEY,SERVER_DOMAIN
+from Ansjer.config import UID_TOKEN_KEY, SERVER_DOMAIN
 import jwt
 
 '''
@@ -229,6 +229,7 @@ class EquipmentInfo(View):
             return response.json(404)
 
 
+# http://192.168.136.40:8077/detect/add?UID=FTSLL8HM437Z38WU111A&Channel=0&eventType=1&eventTime=1234567890
 # 设备推送信息添加接口
 class AddDetectionView(TemplateView):
     @method_decorator(csrf_exempt)
@@ -246,17 +247,18 @@ class AddDetectionView(TemplateView):
     def validation(self, request_dict, *args, **kwargs):
         response = ResponseObject()
         # 设备添加token
-        UID = request_dict.get('UID', None)
+        uidToken = request_dict.get('uidToken', None)
         Channel = request_dict.get('Channel', None)
         eventType = request_dict.get('eventType', None)
         eventTime = request_dict.get('eventTime', None)
-
+        res = jwt.decode(uidToken, UID_TOKEN_KEY, algorithms='HS256')
+        UID = res.get('uid',None)
         if not UID or not Channel or not eventType or not eventTime:
             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")
+        dv_qs = Device_Info.objects.filter(UID=UID, iSNotification=True).values("userID_id", "NickName")
         if not dv_qs.exists():
-            return response.json(10,'device not detect')
+            return response.json(10, 'device not detect')
         qs_list = []
         for dv in dv_qs:
             print(dv)
@@ -277,7 +279,8 @@ class AddDetectionView(TemplateView):
             return response.json(0)
 
 
-#设备推送开关
+# http://192.168.136.40:8077/detect/status?token=local&id=138001380001543918745881545&iSNotification=0
+# 设备推送开关
 class DetectStatusView(View):
     @method_decorator(csrf_exempt)
     def dispatch(self, *args, **kwargs):
@@ -294,7 +297,7 @@ class DetectStatusView(View):
     def validation(self, request_dict, *args, **kwargs):
         token = request_dict.get('token', None)
         id = request_dict.get('id', None)
-        status = request_dict.get('status', None)
+        iSNotification = request_dict.get('iSNotification', None)
         response = ResponseObject()
         if token is None:
             return response.json(309)
@@ -304,14 +307,15 @@ class DetectStatusView(View):
         if tko.code != 0:
             return response.json(tko.code)
         userID = tko.userID
-        return self.do_update(userID,id,status,response)
-
+        return self.do_update(userID, id, iSNotification, response)
 
-    def do_update(self, userID,id,status,response):
-        qs = Device_Info.objects.filter(id=id,userID_id=userID)
+    def do_update(self, userID, id, iSNotification, response):
+        qs = Device_Info.objects.filter(id=id, userID_id=userID)
         if qs.exists():
-            qs.update(status)
-            uid_token = jwt.encode(id,UID_TOKEN_KEY,algorithm='HS256').decode('utf-8')
-            return response.json(0,{'uid_token':uid_token,'push_url':'{SERVER_DOMAIN}detet/add'.format(SERVER_DOMAIN=SERVER_DOMAIN)})
+            qs.update(iSNotification=iSNotification)
+            data = {'id': 'id', 'uid': qs[0].UID}
+            uid_token = jwt.encode(data, UID_TOKEN_KEY, algorithm='HS256').decode('utf-8')
+            return response.json(0, {'uid_token': uid_token,
+                                     'push_url': '{SERVER_DOMAIN}detet/add'.format(SERVER_DOMAIN=SERVER_DOMAIN)})
         else:
-            return response.json(13)
+            return response.json(13)

+ 1 - 1
Model/models.py

@@ -318,7 +318,7 @@ class Device_Info(models.Model):
     primaryUserID = models.CharField(blank=True, verbose_name='主用户',
                                      help_text=u'该设备的主用户', max_length=32, default='')
     data_joined = models.DateTimeField(blank=True, verbose_name=u'设备添加时间', auto_now_add=True)
-    update_time = models.DateTimeField(blank=True, verbose_name=u'更新时间', auto_now=True)
+    update_time = models.DateTimeField(blank=True, verbose_name=u'更新时间', auto_now=True,null=True)
 
     ip = models.CharField(blank=True, max_length=20, default='', verbose_name=u'设备区域ip')
     area = models.CharField(blank=True, max_length=100, default='', verbose_name=u'设备区域area')