Переглянути джерело

设备分享限制5个亲友

zhangdongming 1 рік тому
батько
коміт
1723393acd
1 змінених файлів з 28 додано та 2 видалено
  1. 28 2
      Controller/DeviceShare.py

+ 28 - 2
Controller/DeviceShare.py

@@ -43,9 +43,10 @@ class DeviceShareView(View):
     def validation(self, request_dict, operation):
         response = ResponseObject()
         token = request_dict.get('token', None)
+        lang = request_dict.get('lang', None)
         if token:
             tko = TokenObject(token)
-            response.lang = tko.lang
+            response.lang = lang if lang else tko.lang
             if tko.code == 0:
                 userID = tko.userID
                 if operation == 'generateTokenUrl':
@@ -60,6 +61,8 @@ class DeviceShareView(View):
                     return self.do_delete_user(userID, request_dict, response)
                 elif operation == 'deleteUserV2':
                     return self.do_delete_userV2(userID, request_dict, response)
+                elif operation == 'getDeviceShareCount':
+                    return self.get_device_share_count(request_dict, response)
                 else:
                     return response.json(414)
             else:
@@ -67,7 +70,27 @@ class DeviceShareView(View):
         else:
             return response.json(444, {'param': 'token'})
 
+    @classmethod
+    def get_device_share_count(cls, request_dict, response):
+        """
+        获取设备分享总数
+        """
+        try:
+            uid = request_dict.get('uid', None)
+            if not uid:
+                return response.json(444)
+            d_share_user_qs = Device_Info.objects.filter(UID=uid, isShare=True)
+            if d_share_user_qs.count() >= 5:
+                return response.json(10070)
+            return response.json(0, {'total': d_share_user_qs.count()})
+        except Exception as e:
+            print(e)
+            return response.json(503)
+
     def do_generate_token_url(self, userID, request_dict, response):
+        """
+        APP主用户通过二维码分享设备
+        """
         UID = request_dict.get('UID', None)
         dvqs = Device_Info.objects.filter(UID=UID, userID_id=userID, isShare=False).values('NickName')
         userqs = Device_User.objects.filter(userID=userID).values('username', 'userEmail', 'phone', 'userIconPath')
@@ -162,6 +185,9 @@ class DeviceShareView(View):
             sharer = data.get('sharer', None)
             # 分享的uid
             UID = data.get('UID', None)
+            d_share_user_qs = Device_Info.objects.filter(UID=UID, isShare=True)
+            if d_share_user_qs.count() >= 5:
+                return response.json(10070)
             dval = Device_Info.objects.filter(userID_id=userID, UID=UID)
             if not dval.exists():
                 try:
@@ -207,7 +233,7 @@ class DeviceShareView(View):
             else:
                 return response.json(174)
         except Exception as e:
-            return response.json(500, repr(e))
+            return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
 
     # 1,这个用户的分享出去的设备
     # 2,获得上面个的设备拥有者