|
@@ -55,9 +55,9 @@ class EquipmentFamilyView(View):
|
|
|
# 手机端添加设备,查询,修改
|
|
|
if operation == 'add':
|
|
|
return self.do_save(user_id, request_dict, response, request)
|
|
|
- # 分页获取设备
|
|
|
- if operation == 'page':
|
|
|
- return self.do_device_page(user_id, request_dict, response)
|
|
|
+ # 分页获取未添加房间设备
|
|
|
+ if operation == 'family-device-query':
|
|
|
+ return self.get_device_not_in_room(user_id, request_dict, response)
|
|
|
# 条件查询设备列表
|
|
|
if operation == 'query':
|
|
|
return self.do_device_query(user_id, request_dict, response)
|
|
@@ -67,16 +67,24 @@ class EquipmentFamilyView(View):
|
|
|
# 家庭保存
|
|
|
if operation == 'family-save':
|
|
|
return self.family_save(user_id, request_dict, response)
|
|
|
+ # 家庭设置
|
|
|
+ if operation == 'family-setting':
|
|
|
+ return self.get_family_setting(user_id, request_dict, response)
|
|
|
+ # 家庭成员删除
|
|
|
+ if operation == 'member-del':
|
|
|
+ return self.family_member_del(user_id, request_dict, response)
|
|
|
# 获取房间列表
|
|
|
if operation == 'room-list':
|
|
|
return self.get_family_room_list(request_dict, response)
|
|
|
# 房间保存
|
|
|
if operation == 'room-save':
|
|
|
return self.room_save(request_dict, response)
|
|
|
- if operation == 'room-sort':
|
|
|
- return self.room_sort_save(request_dict, response)
|
|
|
+ # 权限列表
|
|
|
if operation == 'permission-list':
|
|
|
return self.get_member_permission_list(user_id, request_dict, response)
|
|
|
+ # 成员权限修改
|
|
|
+ if operation == 'permission-update':
|
|
|
+ return self.changes_member_permission(user_id, request_dict, response)
|
|
|
else:
|
|
|
return response.json(414)
|
|
|
|
|
@@ -140,39 +148,23 @@ class EquipmentFamilyView(View):
|
|
|
return response.json(177, repr(e))
|
|
|
|
|
|
@classmethod
|
|
|
- def do_device_page(cls, user_id, request_dict, response):
|
|
|
+ def get_device_not_in_room(cls, user_id, request_dict, response):
|
|
|
"""
|
|
|
- 查询设备列表
|
|
|
- @param user_id:
|
|
|
+ 获取不在房间的设备
|
|
|
+ @param user_id: 用户id
|
|
|
@param request_dict:
|
|
|
@param response:
|
|
|
@return:
|
|
|
"""
|
|
|
page_no = request_dict.get('pageNo', None)
|
|
|
page_size = request_dict.get('pageSize', None)
|
|
|
- if not all([page_no, page_size]):
|
|
|
+ family_id = request_dict.get('familyId', None)
|
|
|
+ if not all([page_no, page_size, family_id]):
|
|
|
return response.json(444)
|
|
|
-
|
|
|
- page = int(page_no)
|
|
|
- line = int(page_size)
|
|
|
- device_info_qs = Device_Info.objects.filter(userID=user_id)
|
|
|
- device_info_qs = device_info_qs.filter(~Q(isExist=0))
|
|
|
- total = device_info_qs.count()
|
|
|
- device_info_qs = device_info_qs.values("id", "userID_id", "NickName", "Type", "serial_number",
|
|
|
- "data_joined",
|
|
|
- "update_time")[(page - 1) * line: page * line]
|
|
|
- data = []
|
|
|
- for item in device_info_qs:
|
|
|
- data.append({
|
|
|
- 'id': item['id'],
|
|
|
- 'userId': item['userID_id'],
|
|
|
- 'nickName': item['NickName'],
|
|
|
- 'type': item['Type'],
|
|
|
- 'serialNumber': item['serial_number'],
|
|
|
- 'dataJoined': item['data_joined'].strftime("%Y-%m-%d %H:%M:%S"),
|
|
|
- 'updateTime': item['update_time'].strftime("%Y-%m-%d %H:%M:%S")
|
|
|
- })
|
|
|
- return response.json(0, {'list': data, 'total': total})
|
|
|
+ page_no = int(page_no)
|
|
|
+ page_size = int(page_size)
|
|
|
+ device_list = cls.get_family_device_list(user_id, page_no, page_size, family_id, 0)
|
|
|
+ return response.json(0, device_list)
|
|
|
|
|
|
@classmethod
|
|
|
def do_device_query(cls, user_id, request_dict, response):
|
|
@@ -487,7 +479,7 @@ class EquipmentFamilyView(View):
|
|
|
@classmethod
|
|
|
def get_family_list(cls, user_id, request_dict, response):
|
|
|
"""
|
|
|
- 查询家庭列表
|
|
|
+ 查询我的家庭列表
|
|
|
@param user_id: 用户id
|
|
|
@param request_dict: 请求
|
|
|
@param response: 响应
|
|
@@ -530,9 +522,50 @@ class EquipmentFamilyView(View):
|
|
|
data['userName'] = item['user__username']
|
|
|
data['userIconUrl'] = item['user__userIconUrl']
|
|
|
items.append(data)
|
|
|
+ data = {}
|
|
|
return response.json(0, items)
|
|
|
return response.json(309)
|
|
|
|
|
|
+ @classmethod
|
|
|
+ def get_family_setting(cls, user_id, request_dict, response):
|
|
|
+ """
|
|
|
+ 家庭设置
|
|
|
+ @param user_id: 用户id
|
|
|
+ @param request_dict: 请求
|
|
|
+ @param response: 响应
|
|
|
+ @return: 家庭列表items
|
|
|
+ """
|
|
|
+ family_id = request_dict.get('familyId', None)
|
|
|
+ if not family_id:
|
|
|
+ return response.json(444)
|
|
|
+ user_family_qs = UserFamily.objects.filter(id=family_id, user_id=user_id).values('id', 'name', 'location')
|
|
|
+ if not user_family_qs.exists():
|
|
|
+ return response.json(404)
|
|
|
+ family_dict = user_family_qs.first()
|
|
|
+ family_dict['roomCount'] = FamilyRoom.objects.filter(family_id=family_id).count()
|
|
|
+
|
|
|
+ family_member_qs = FamilyMember.objects.filter(family_id=family_id)
|
|
|
+ family_member_qs = family_member_qs.values('identity', 'family_id',
|
|
|
+ 'permission_id',
|
|
|
+ 'permission__no',
|
|
|
+ 'user__username',
|
|
|
+ 'user_id',
|
|
|
+ 'user__userIconUrl')
|
|
|
+ family_member_qs = family_member_qs.order_by('-identity').order_by('sort')
|
|
|
+ items = []
|
|
|
+ data = {}
|
|
|
+ for item in family_member_qs:
|
|
|
+ data['userName'] = item['user__username']
|
|
|
+ data['userIconUrl'] = item['user__userIconUrl']
|
|
|
+ data['userId'] = item['user_id']
|
|
|
+ data['identity'] = item['identity']
|
|
|
+ data['permissionId'] = item['permission_id']
|
|
|
+ data['permissionNo'] = item['permission__no']
|
|
|
+ items.append(data)
|
|
|
+ data = {}
|
|
|
+ family_dict['members'] = items
|
|
|
+ return response.json(0, family_dict)
|
|
|
+
|
|
|
@classmethod
|
|
|
def family_save(cls, user_id, request_dict, response):
|
|
|
"""
|
|
@@ -683,32 +716,61 @@ class EquipmentFamilyView(View):
|
|
|
return response.json(0)
|
|
|
|
|
|
@classmethod
|
|
|
- def room_sort_save(cls, request_dict, response):
|
|
|
+ def changes_member_permission(cls, app_user_id, request_dict, response):
|
|
|
"""
|
|
|
- 房间排序
|
|
|
+ 更新家庭成员权限
|
|
|
+ @param app_user_id: 当前app登录用户
|
|
|
@param request_dict: 请求参数
|
|
|
- @param response: 响应参数
|
|
|
+ @param response: 响应实体
|
|
|
+ @return:
|
|
|
+ """
|
|
|
+ family_id = request_dict.get('familyId', None)
|
|
|
+ user_id = request_dict.get('userId', None)
|
|
|
+ no = request_dict.get('no', None)
|
|
|
+ if not all([family_id, user_id, no]):
|
|
|
+ return response.json(444)
|
|
|
+ owner = cls.get_family_owner(app_user_id, family_id)
|
|
|
+ if not owner:
|
|
|
+ return response.json(404)
|
|
|
+ permission_qs = FamilyMemberPermission.objects.filter(no=no).values()
|
|
|
+ if permission_qs.exists():
|
|
|
+ permission_qs = permission_qs.first()
|
|
|
+ p_id = permission_qs['id']
|
|
|
+ FamilyMember.objects.filter(family_id=family_id, user_id=user_id).update(permission_id=p_id)
|
|
|
+ return response.json(0)
|
|
|
+
|
|
|
+ @classmethod
|
|
|
+ def family_member_del(cls, app_user_id, request_dict, response):
|
|
|
+ """
|
|
|
+ 家庭成员删除
|
|
|
+ @param app_user_id: 当前app登录用户
|
|
|
+ @param request_dict: 请求参数
|
|
|
+ @param response: 响应实体
|
|
|
@return:
|
|
|
"""
|
|
|
- ids = request_dict.getlist('ids', None)
|
|
|
- if not ids:
|
|
|
+ family_id = request_dict.get('familyId', None)
|
|
|
+ user_id = request_dict.get('userId', None)
|
|
|
+ if not all([family_id, user_id]):
|
|
|
return response.json(444)
|
|
|
- for i, item in ids:
|
|
|
- id_sort = item[i]
|
|
|
- print(id_sort)
|
|
|
+ owner = cls.get_family_owner(app_user_id, family_id)
|
|
|
+ if not owner:
|
|
|
+ return response.json(404)
|
|
|
+ family_member_qs = FamilyMember.objects.filter(family_id=family_id, user_id=user_id)
|
|
|
+ if family_member_qs.exists():
|
|
|
+ family_member_qs.delete()
|
|
|
return response.json(0)
|
|
|
|
|
|
@classmethod
|
|
|
- def get_member_permission_list(cls, user_id, request_dict, response):
|
|
|
+ def get_member_permission_list(cls, app_user_id, request_dict, response):
|
|
|
"""
|
|
|
获取用户权限列表
|
|
|
- @param user_id:
|
|
|
+ @param app_user_id: 当前app登录用户
|
|
|
@param request_dict:
|
|
|
@param response:
|
|
|
@return:
|
|
|
"""
|
|
|
- family_id = request_dict.get('familyId')
|
|
|
- user_id = request_dict.get('userId', user_id)
|
|
|
+ family_id = request_dict.get('familyId', None)
|
|
|
+ user_id = request_dict.get('userId', app_user_id)
|
|
|
if not family_id:
|
|
|
return response.json(404)
|
|
|
result = cls.get_member_permission_by_family_id(user_id, family_id)
|
|
@@ -742,6 +804,12 @@ class EquipmentFamilyView(View):
|
|
|
|
|
|
@classmethod
|
|
|
def get_member_permission_details(cls, user_id, family_id):
|
|
|
+ """
|
|
|
+ 根据用户id获取家庭设备权限
|
|
|
+ @param user_id:
|
|
|
+ @param family_id:
|
|
|
+ @return: 权限编号 001:所有权限,002:查看设备,003:暂无权限
|
|
|
+ """
|
|
|
member_qs = FamilyMember.objects.filter(family_id=family_id, user_id=user_id).values()
|
|
|
if member_qs.exists():
|
|
|
member_qs = member_qs.first()
|
|
@@ -749,3 +817,16 @@ class EquipmentFamilyView(View):
|
|
|
permission_qs = FamilyMemberPermission.objects.filter(id=permission_id).values('no')
|
|
|
return permission_qs.first()['no']
|
|
|
return ''
|
|
|
+
|
|
|
+ @classmethod
|
|
|
+ def get_family_owner(cls, user_id, family_id):
|
|
|
+ """
|
|
|
+ 判断是否是家庭主用户
|
|
|
+ @param user_id:
|
|
|
+ @param family_id:
|
|
|
+ @return:
|
|
|
+ """
|
|
|
+ user_family_qs = UserFamily.objects.filter(id=family_id, user_id=user_id)
|
|
|
+ if user_family_qs.exists():
|
|
|
+ return True
|
|
|
+ return False
|