Browse Source

优化获取用户分享权限接口

peng 2 years ago
parent
commit
28050274d3
1 changed files with 4 additions and 9 deletions
  1. 4 9
      Controller/UserDevice/UserDeviceShareController.py

+ 4 - 9
Controller/UserDevice/UserDeviceShareController.py

@@ -58,7 +58,6 @@ class UserDeviceShareView(View):
             channel_count = request_dict.get('channelCount', None)
             if not all([user_id, uid, channel_count]):
                 return response(444, 'uid, userId and channelCount is required')
-            channel_list = list(range(1, int(channel_count)+1))
             user_permission_qs = DeviceChannelUserSet.objects.filter(user_id=user_id, uid=uid) \
                 .values('id', 'channels')
             if not user_permission_qs.exists():
@@ -68,6 +67,7 @@ class UserDeviceShareView(View):
                 .values('permission_id', 'channel_user_id')
             if not channel_permission_qs.exists():
                 return response.json(0, {})
+            channel_list = list(range(1, int(channel_count)+1))
             share_channel_list = user_permission_qs[0]['channels'].split(',')
             c_list = []
             for channel in channel_list:
@@ -75,15 +75,10 @@ class UserDeviceShareView(View):
                 c_list.append({'channelIndex': channel, 'isSelect': is_select})
             p_list = []
             permission_qs = DeviceSharePermission.objects.all()
-            permission_list = list(range(1, permission_qs.count()+1))
             share_permission_list = [item['permission_id'] for item in channel_permission_qs]
-            for permission_id in permission_list:
-                is_select = 0
-                if permission_id in share_permission_list:
-                    is_select = 1
-                permission_qs = DeviceSharePermission.objects.filter(id=permission_id).values('code')
-                permission_name = permission_qs[0]['code']
-                p_list.append({'permissionId': permission_id, 'code': permission_name, 'isSelect': is_select})
+            for item in permission_qs:
+                is_select = 1 if item.id in share_permission_list else 0
+                p_list.append({'permissionId': item.id, 'code': item.code, 'isSelect': is_select})
             data = {'channels': c_list, 'permissions': p_list}
             return response.json(0, data)
         except Exception as e: