Browse Source

feature:
1,增加主用户生成签名二维码
2,用户扫码进行添加

chenjunkai 6 years ago
parent
commit
036937e746
2 changed files with 30 additions and 9 deletions
  1. 29 8
      Controller/DeviceShare.py
  2. 1 1
      Model/models.py

+ 29 - 8
Controller/DeviceShare.py

@@ -14,13 +14,12 @@
 
 from django.views.generic.base import View
 
-from Model.models import Device_Info
-from Object.RedisObject import RedisObject
+from Model.models import Device_Info,Device_User
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
-import time
 from Ansjer.config import SERVER_DOMAIN
 import jwt
+from Service.CommonService import CommonService
 
 
 class DeviceShareView(View):
@@ -41,8 +40,11 @@ class DeviceShareView(View):
         if token:
             tko = TokenObject(token)
             if tko.code == 0:
+                userID = tko.userID
                 if operation == 'generateTokenUrl':
-                    return self.do_generate_token_url(tko.userID, request_dict, response)
+                    return self.do_generate_token_url(userID, request_dict, response)
+                elif operation == 'confirm':
+                    return self.do_confirm(userID,request_dict,response)
                 else:
                     return response.json(414)
             else:
@@ -66,15 +68,34 @@ class DeviceShareView(View):
         shareToken = request_dict.get('shareToken', None)
         if shareToken is not None:
             data = jwt.decode(shareToken, 'jwt.#^^&', algorithms='HS256')
+            # 分享者userID
             sharer = data.get('sharer', None)
+            # 分享的uid
             UID = data.get('UID', None)
             dval = Device_Info.objects.filter(userID_id=userID, UID=UID)
             if not dval.exists():
-                sharerDvqs = Device_Info.objects.filter(userID_id=sharer, UID=UID)
-                if sharerDvqs.exists():
-                    pass
+                try:
+                    sharerUser = Device_User.objects.get(userID=userID)
+                    sharerDvqs = Device_Info.objects.get(userID_id=sharer, UID=UID)
+                except Exception as e:
+                    return response.json(10, repr(e))
                 else:
-                    return response.json(173)
+                    sharerDvqs.id = CommonService.getUserID(getUser=False)
+                    sharerDvqs.userID_id = userID
+                    sharerDvqs.isShare = True
+                    sharerDvqs.primaryUserID = sharer
+                    if sharerUser.username:
+                        primaryMaster = sharerUser.username
+                    elif sharerUser.userEmail:
+                        primaryMaster = sharerUser.userEmail
+                    elif sharerUser.phone:
+                        primaryMaster = sharerUser.phone
+                    else:
+                        return response.json(178)
+                    sharerDvqs.primaryMaster = primaryMaster
+                    sharerDvqs.data_joined = None
+                    sharerDvqs.save()
+                    return response.json(0)
             else:
                 return response.json(174)
         else:

+ 1 - 1
Model/models.py

@@ -243,7 +243,7 @@ class Device_Info(models.Model):
     RecordType = models.IntegerField(blank=True, default=0, verbose_name=u'录像模式(0:关闭,1:全是录像,3:报警录像)')
     TimeZone = models.CharField(blank=True, max_length=50, default='', verbose_name=u'时区')
     isVod = models.SmallIntegerField(blank=True, default=0, verbose_name='是否支持云存')  # 是否支持云存设备
-    isExist = models.SmallIntegerField(blank=True, default=1, verbose_name='是否被删除')  # 是否被删除了(需主用户交互)
+    isExist = models.SmallIntegerField(blank=True, default=1, verbose_name='是否被删除')  # 是否被删除了(需主用户交互) 1存在,0不存在
     ###
     REQUIRED_FIELDS = []