Sfoglia il codice sorgente

修改获取用户分享权限接口返回值

peng 2 anni fa
parent
commit
d4610921f3
1 ha cambiato i file con 20 aggiunte e 10 eliminazioni
  1. 20 10
      Controller/UserDevice/UserDeviceShareController.py

+ 20 - 10
Controller/UserDevice/UserDeviceShareController.py

@@ -55,8 +55,10 @@ class UserDeviceShareView(View):
         try:
             uid = request_dict.get('uid', None)
             user_id = request_dict.get('userId', None)
-            if not all([user_id, uid]):
-                return response(444, 'uid and userId is required')
+            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():
@@ -66,15 +68,23 @@ class UserDeviceShareView(View):
                 .values('permission_id', 'channel_user_id')
             if not channel_permission_qs.exists():
                 return response.json(0, {})
-            data = {'channels': [int(val) for val in user_permission_qs[0]['channels'].split(',')]}
+            share_channel_list = user_permission_qs[0]['channels'].split(',')
+            c_list = []
+            for channel in channel_list:
+                is_select = 1 if str(channel) in share_channel_list else 0
+                c_list.append({'channelIndex': channel, 'isSelect': is_select})
             p_list = []
-            for item in channel_permission_qs:
-                permission_qs = DeviceSharePermission.objects.filter(id=item['permission_id']) \
-                    .values('code')
-                if not permission_qs.exists():
-                    continue
-                p_list.append({'permissionId': item['permission_id'], 'code': permission_qs[0]['code']})
-            data['permissions'] = 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})
+            data = {'channels': c_list, 'permissions': p_list}
             return response.json(0, data)
         except Exception as e:
             LOGGER.info('异常详情,errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))