|
@@ -12,7 +12,7 @@ import time
|
|
|
import oss2
|
|
|
from django.db import connection
|
|
|
from django.db import transaction
|
|
|
-from django.db.models import Q
|
|
|
+from django.db.models import Q, Count
|
|
|
from django.views.generic.base import View
|
|
|
|
|
|
from Ansjer.config import OSS_STS_ACCESS_SECRET, OSS_STS_ACCESS_KEY
|
|
@@ -274,7 +274,7 @@ class EquipmentFamilyView(View):
|
|
|
sql += ' AND l.room_id != %s '
|
|
|
elif room_id:
|
|
|
sql += ' AND l.room_id = %s '
|
|
|
- sql += ' order by d.data_joined DESC,d.id DESC LIMIT %s,%s '
|
|
|
+ sql += ' GROUP BY d.id order by d.data_joined DESC,d.id DESC LIMIT %s,%s '
|
|
|
if family_id and room_id:
|
|
|
cursor.execute(sql, [user_id, 2, int(family_id), int(room_id), ((page_no - 1) * page_size),
|
|
|
page_size, ])
|
|
@@ -687,22 +687,19 @@ class EquipmentFamilyView(View):
|
|
|
family_id = request_dict.get('familyId', None)
|
|
|
if not family_id:
|
|
|
return response.json(444)
|
|
|
- page_no = request_dict.get('pageNo', None)
|
|
|
- page_size = request_dict.get('pageSize', None)
|
|
|
- if not all([page_no, page_size]):
|
|
|
- return response.json(444)
|
|
|
- page_no = int(page_no)
|
|
|
- page_size = int(page_size)
|
|
|
+ count = FamilyRoomDevice.objects.filter(family_id=family_id).values('device_id').annotate(
|
|
|
+ count=Count('device_id')).count()
|
|
|
+
|
|
|
room_qs = FamilyRoom.objects.filter(family_id=family_id).order_by('sort')
|
|
|
total = room_qs.count()
|
|
|
- room_qs = room_qs.values('id', 'name', 'sort')[(page_no - 1) * page_size: page_no * page_size]
|
|
|
+ room_qs = room_qs.values('id', 'name', 'sort')
|
|
|
room_list = []
|
|
|
if not room_qs.exists():
|
|
|
return response.json(0, room_list)
|
|
|
for item in room_qs:
|
|
|
item['deviceCount'] = FamilyRoomDevice.objects.filter(family_id=family_id, room_id=item['id']).count()
|
|
|
room_list.append(item)
|
|
|
- return response.json(0, {'total': total, 'data': room_list})
|
|
|
+ return response.json(0, {'total': total, 'data': room_list, 'deviceTotal': count})
|
|
|
|
|
|
@classmethod
|
|
|
def room_save(cls, request_dict, response):
|