Browse Source

Merge branch 'pzb' of http://192.168.136.45:3000/SERVER/AnsjerServer into pzb

pzb 6 years ago
parent
commit
869dfa4021
5 changed files with 80 additions and 49 deletions
  1. 3 1
      Ansjer/urls.py
  2. 12 8
      Controller/DetectController.py
  3. 54 5
      Controller/EquipmentManager.py
  4. 8 13
      Controller/UserController.py
  5. 3 22
      Model/models.py

+ 3 - 1
Ansjer/urls.py

@@ -43,7 +43,7 @@ urlpatterns = [
     url(r'^equipment/admin_modify', EquipmentManager.admin_modifyInterface),
 
     url(r'^equipment/query', EquipmentManager.queryInterface),
-    url(r'^equipment/flow', EquipmentManager.uid_status),
+    url(r'^equipment/flow$', EquipmentManager.uid_status),
 
     url(r'^OTA/uploads$', OTAEquipment.getUploadFiletoDirView.as_view()),
     url(r'^OTA/download$', OTAEquipment.downloadUpdataFileUrl),
@@ -139,6 +139,8 @@ urlpatterns = [
     url(r'^uidpreview/(?P<operation>.*)$', UIDPreview.UIDPreview.as_view()),
     url(r'^sysmsg/(?P<operation>.*)$', SysMsg.SysMsgView.as_view()),
 
+    url(r'^equipment/flowUpdate', EquipmentManager.update_uid_set),
+
     # 新的设备接口
     path('Test', Test.Test.as_view()),
     # 路由加参数参考

+ 12 - 8
Controller/DetectController.py

@@ -65,6 +65,7 @@ class DetectControllerView(View):
             # 查询推送信息
             elif operation == 'queryInfo':
                 return self.do_query(request_dict, response, userID)
+            # 更新推送延迟
             elif operation == 'updateInterval':
                 return self.do_update_interval(userID, request_dict, response)
             else:
@@ -182,9 +183,6 @@ class DetectControllerView(View):
                     }
                     # 添加设备配置
                     uid_set_qs = UidSetModel.objects.create(**uid_set_create_dict)
-                    # from var_dump import var_dump
-                    # var_dump(uid_set_qs)
-                    # print(uid_set_qs)
                     uid_set_id = uid_set_qs.id
                 else:
                     uid_set_id = uid_set_qs[0].id
@@ -212,12 +210,18 @@ class DetectControllerView(View):
     def do_update_interval(self, userID, request_dict, response):
         uid = request_dict.get('uid', None)
         interval = request_dict.get('interval', None)
-        uid_set_qs = UidSetModel.objects. \
-            filter(uid=uid, uidpushmodel__userID_id=userID)
-        if uid_set_qs.exists():
-            uid_set_qs.update(interval=int(interval))
+        dvqs = Device_Info.objects.filter(userID_id=userID, UID=uid)
+        if dvqs.exists():
+            uid_set_qs = UidSetModel.objects. \
+                filter(uid=uid, uidpushmodel__userID_id=userID)
+            if uid_set_qs.exists():
+                uid_set_qs.update(interval=int(interval))
+            else:
+                return response.json(173)
         else:
-            return response.json(173)
+            return response.json(0)
+
+
 
 
 # http://192.168.136.40:8077/notify/push?uidToken=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1aWQiOiJUTjdNUEUzMjExVUU3NkFQMTExQSJ9.k501567VdnhFpn_ygzGRDat3Kqlz5CsEA9jAC2dDk_g&obj=12341234&n_time=1234561234

+ 54 - 5
Controller/EquipmentManager.py

@@ -629,17 +629,66 @@ def uid_status(request):
     response.lang = tko.lang
     if tko.code != 0:
         return response.json(tko.code)
-    qs = UidSetModel.objects.filter(uid=uid).values('uid', 'detect_status', 'detect_interval')
+    qs = UidSetModel.objects.filter(uid=uid).values('uid', 'detect_status', 'detect_interval', 'version', 'ucode')
+    # 判断uid配置表信息是否存在
     if qs.exists():
         data = {
-            'push_status': qs[0]['detect_status'],
-            'push_interval': qs[0]['detect_interval']  # 推送间隔
+            'push_status': qs[0]['detect_status'],  # 推送状态
+            'push_interval': qs[0]['detect_interval'],  # 推送间隔
+            'ucode': qs[0]['ucode'],
+            'version': qs[0]['version'],
         }
+        # 查询云存储相关信息
         ubqs = UID_Bucket.objects.filter(uid=uid). \
             values('bucket__content', 'status', 'channel', 'endTime', 'uid')
         nowTime = int(time.time())
-        if ubqs[0]['endTime'] > nowTime:
-            data['vod'] = list(ubqs)
+        if ubqs.exists():
+            if ubqs[0]['endTime'] > nowTime:
+                data['vod'] = list(ubqs)
         return response.json(0, data)
     else:
         return response.json(0)
+
+
+def update_uid_set(request):
+    request.encoding = 'utf-8'
+    response = ResponseObject()
+    if request.method == 'POST':
+        request_dict = request.POST
+    elif request.method == 'GET':
+        request_dict = request.GET
+    else:
+        return response.json(444)
+    token = request_dict.get('token', None)
+    uid = request_dict.get('uid', None)
+    version = request_dict.get('version', '')
+    ucode = request_dict.get('ucode', '')
+    tko = TokenObject(token)
+    response.lang = tko.lang
+    if tko.code == 0:
+        userID = tko.userID
+        nowTime = int(time.time())
+        dvqs = Device_Info.objects.filter(userID_id=userID)
+        if dvqs.exists():
+            us_qs = UidSetModel.objects.filter(uid=uid)
+            if us_qs.exists():
+                uid_set_update_dict = {
+                    'updTime': nowTime,
+                    'version': version,
+                    'ucode': ucode,
+                }
+                us_qs.update(**uid_set_update_dict)
+            else:
+                uid_set_create_dict = {
+                    'uid': uid,
+                    'addTime': nowTime,
+                    'updTime': nowTime,
+                    'version': version,
+                    'ucode': ucode,
+                }
+                UidSetModel.objects.create(**uid_set_create_dict)
+            return response.json(0)
+        else:
+            return response.json(14)
+    else:
+        return response.json(tko.code)

+ 8 - 13
Controller/UserController.py

@@ -26,7 +26,7 @@ from ratelimit.decorators import ratelimit
 
 from Ansjer.config import AuthCode_Expire, SERVER_DOMAIN
 from Controller.CheckUserData import DataValid, date_handler, RandomStr
-from Model.models import Device_User, Role,  SysMsgModel
+from Model.models import Device_User, Role, SysMsgModel, UidPushModel
 from Object.AWS.SesClassObject import SesClassObject
 from Object.AliSmsObject import AliSmsObject
 from Object.RedisObject import RedisObject
@@ -302,11 +302,12 @@ class LogoutView(TemplateView):
             m_code = request_dict.get('m_code', None)
             if m_code:
                 userID = tko.userID
-                #
-                # uid_app = UID_App.objects.filter(userID_id=userID, m_code=m_code, status=1)
-                # print(uid_app)
-                # if uid_app.exists():
-                #     uid_app.update(status=2)
+                try:
+                    UidPushModel.objects.filter(userID_id=userID).delete()
+                except Exception as e:
+                    pass
+                else:
+                    pass
             return response.json(0)
         else:
             return response.json(tko.code)
@@ -1138,14 +1139,8 @@ class InitInfoView(View):
     def init_uid(self, request_dict, userID, response):
         token_val = request_dict.get('token_val', None)
         m_code = request_dict.get('m_code', None)
-        # uid_app = UID_App.objects.filter(userID_id=userID, token_val=token_val, status=2, m_code=m_code)
-        #
-        # if uid_app.exists():
-        #     uid_app.update(status=1)
-        # else:
-        #     pass
         sm_count = SysMsgModel.objects.filter(userID_id=userID, status=0).count()
         res = {
             'usmsg': sm_count
         }
-        return response.json(0,res)
+        return response.json(0, res)

+ 3 - 22
Model/models.py

@@ -613,28 +613,6 @@ class UID_Bucket(models.Model):
         ordering = ('id',)
 
 
-# 推送uid绑定 app —— token_id
-# class UID_App(models.Model):
-#     id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
-#     userID = models.ForeignKey(Device_User, to_field='userID', on_delete=models.CASCADE)
-#     uid = models.CharField(max_length=20, verbose_name='设备UID')
-#     appBundleId = models.CharField(blank=True, max_length=32, verbose_name=u'appID')
-#     app_type = models.IntegerField(default=0, verbose_name=u'app类型 1:ios,2:安卓')
-#     push_type = models.IntegerField(default=0, verbose_name=u'推送类型')  # 0,apns 1,安卓gcm 2,极光
-#     token_val = models.CharField(default='', max_length=160, verbose_name=u'设备验证令牌')
-#     status = models.SmallIntegerField(default=0, verbose_name='状态[0:关闭,1:开启,2:用户解绑]')
-#     m_code = models.CharField(default='', max_length=64, verbose_name='手机唯一标识')
-#     interval = models.IntegerField(verbose_name='推送间隔', default=0)  # 秒
-#     addTime = models.IntegerField(verbose_name='添加时间', default=0)
-#     updTime = models.IntegerField(verbose_name='更新时间', default=0)
-#
-#     class Meta:
-#         db_table = 'uid_app'
-#         verbose_name = u'设备关联APP表'
-#         verbose_name_plural = verbose_name
-#         ordering = ('id',)
-
-
 class UID_Preview(models.Model):
     id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
     uid = models.CharField(default='', max_length=20, verbose_name='设备UID')
@@ -674,6 +652,9 @@ class UidSetModel(models.Model):
     detect_interval = models.IntegerField(verbose_name='推送间隔', default=0)  # 秒
     addTime = models.IntegerField(verbose_name='添加时间', default=0)
     updTime = models.IntegerField(verbose_name='更新时间', default=0)
+    # addTime 2019年 05月 27日 星期一 16:52:55 CST
+    ucode = models.CharField(max_length=32, verbose_name='设备产品码', default='')
+    version = models.CharField(max_length=32, verbose_name='设备版本', default='')
 
     class Meta:
         db_table = 'uid_set'