|
@@ -42,15 +42,24 @@ class UserDeviceService:
|
|
|
dv_qs = dv_qs.values('id', 'userID', 'NickName', 'UID', 'View_Account', 'View_Password', 'ChannelIndex',
|
|
|
'Type', 'isShare', 'primaryUserID', 'primaryMaster', 'data_joined', 'vodPrimaryUserID',
|
|
|
'vodPrimaryMaster', 'userID__userEmail', 'version', 'isVod', 'isExist', 'NotificationMode',
|
|
|
- 'isCameraOpenCloud', 'serial_number')[(page - 1) * line:page * line]
|
|
|
+ 'isCameraOpenCloud', 'serial_number').order_by('-data_joined')
|
|
|
dv_list = CommonService.qs_to_list(dv_qs)
|
|
|
uid_list = []
|
|
|
+ seen = set()
|
|
|
+ unique_results = []
|
|
|
+ for item in dv_qs:
|
|
|
+ key = (item['userID'], item['UID']) # 根据 userID_id 和 UID 进行去重
|
|
|
+ if key not in seen:
|
|
|
+ seen.add(key)
|
|
|
+ unique_results.append(item)
|
|
|
+
|
|
|
+ # 分页操作
|
|
|
+ dv_list = unique_results[(page - 1) * line:page * line]
|
|
|
+ uid_list = [item['UID'] for item in dv_list]
|
|
|
+
|
|
|
+ # 处理 isPrimaryUser
|
|
|
for item in dv_list:
|
|
|
- if item['primaryUserID'] and item['id'] == item['primaryUserID']:
|
|
|
- item['isPrimaryUser'] = 1
|
|
|
- else:
|
|
|
- item['isPrimaryUser'] = 0
|
|
|
- uid_list.append(item['UID'])
|
|
|
+ item['isPrimaryUser'] = 1 if item['primaryUserID'] and item['id'] == item['primaryUserID'] else 0
|
|
|
return dv_list, uid_list
|
|
|
|
|
|
@classmethod
|