|
@@ -0,0 +1,82 @@
|
|
|
|
+# -*- encoding: utf-8 -*-
|
|
|
|
+"""
|
|
|
|
+@File : GatewayFamilyMemberController.py
|
|
|
|
+@Time : 2022/5/25 10:21
|
|
|
|
+@Author : stephen
|
|
|
|
+@Email : zhangdongming@asj6.wecom.work
|
|
|
|
+@Software: PyCharm
|
|
|
|
+"""
|
|
|
|
+
|
|
|
|
+from django.views.generic.base import View
|
|
|
|
+
|
|
|
|
+from Model.models import FamilyMemberJoin
|
|
|
|
+from Object.ResponseObject import ResponseObject
|
|
|
|
+from Object.TokenObject import TokenObject
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+# 家庭房间管理
|
|
|
|
+class GatewayFamilyMemberView(View):
|
|
|
|
+
|
|
|
|
+ def get(self, request, *args, **kwargs):
|
|
|
|
+ request.encoding = 'utf-8'
|
|
|
|
+ operation = kwargs.get('operation')
|
|
|
|
+ return self.validation(request.GET, request, operation)
|
|
|
|
+
|
|
|
|
+ def post(self, request, *args, **kwargs):
|
|
|
|
+ request.encoding = 'utf-8'
|
|
|
|
+ operation = kwargs.get('operation')
|
|
|
|
+ return self.validation(request.POST, request, operation)
|
|
|
|
+
|
|
|
|
+ def validation(self, request_dict, request, operation):
|
|
|
|
+ token = request.META.get('HTTP_AUTHORIZATION')
|
|
|
|
+ token = TokenObject(token)
|
|
|
|
+ lang = request_dict.get('lang', None)
|
|
|
|
+ response = ResponseObject(lang) if lang else ResponseObject(token.lang)
|
|
|
|
+ if token.code != 0:
|
|
|
|
+ return response.json(token.code)
|
|
|
|
+ app_user_id = token.userID
|
|
|
|
+ # 添加设备关联房间
|
|
|
|
+ if operation == 'join':
|
|
|
|
+ return self.member_join(app_user_id, request_dict, response)
|
|
|
|
+ elif operation == 'join/page':
|
|
|
|
+ return self.member_join_page(request_dict, response)
|
|
|
|
+
|
|
|
|
+ @classmethod
|
|
|
|
+ def member_join(cls, app_user_id, request_dict, response):
|
|
|
|
+ pass
|
|
|
|
+
|
|
|
|
+ @classmethod
|
|
|
|
+ def member_join_page(cls, request_dict, response):
|
|
|
|
+ """
|
|
|
|
+ 家庭成员邀请记录
|
|
|
|
+ @param request_dict:
|
|
|
|
+ @param response:
|
|
|
|
+ @return:
|
|
|
|
+ """
|
|
|
|
+ page_no = request_dict.get('pageNo', None)
|
|
|
|
+ page_size = request_dict.get('pageSize', None)
|
|
|
|
+ family_id = request_dict.get('familyId', None)
|
|
|
|
+ if not all([page_no, page_size, family_id]):
|
|
|
|
+ return response.json(444)
|
|
|
|
+ member_join = FamilyMemberJoin.objects.filter(family_id=family_id).values('status', 'user__username',
|
|
|
|
+ 'user__userIconUrl', 'user__phone',
|
|
|
|
+ 'user__userEmail', 'updated_time',
|
|
|
|
+ 'created_time')
|
|
|
|
+
|
|
|
|
+ page_no = int(page_no)
|
|
|
|
+ page_size = int(page_size)
|
|
|
|
+ member_join = member_join.order_by('-created_time')[(page_no - 1) * page_size: page_no * page_size]
|
|
|
|
+ if not member_join.exists():
|
|
|
|
+ return response.json(0, [])
|
|
|
|
+ result = []
|
|
|
|
+ for item in member_join:
|
|
|
|
+ result.append({
|
|
|
|
+ 'status': item['status'],
|
|
|
|
+ 'userName': item['user__username'],
|
|
|
|
+ 'userIconUrl': item['user__userIconUrl'],
|
|
|
|
+ 'phone': item['user__phone'],
|
|
|
|
+ 'userEmail': item['user__userEmail'],
|
|
|
|
+ 'updatedTime': item['updated_time'],
|
|
|
|
+ 'createdTime': item['created_time']
|
|
|
|
+ })
|
|
|
|
+ return response.json(0, result)
|