GatewayFamilyMemberController.py 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. # -*- encoding: utf-8 -*-
  2. """
  3. @File : GatewayFamilyMemberController.py
  4. @Time : 2022/5/25 10:21
  5. @Author : stephen
  6. @Email : zhangdongming@asj6.wecom.work
  7. @Software: PyCharm
  8. """
  9. from django.views.generic.base import View
  10. from Model.models import FamilyMemberJoin
  11. from Object.ResponseObject import ResponseObject
  12. from Object.TokenObject import TokenObject
  13. # 家庭房间管理
  14. class GatewayFamilyMemberView(View):
  15. def get(self, request, *args, **kwargs):
  16. request.encoding = 'utf-8'
  17. operation = kwargs.get('operation')
  18. return self.validation(request.GET, request, operation)
  19. def post(self, request, *args, **kwargs):
  20. request.encoding = 'utf-8'
  21. operation = kwargs.get('operation')
  22. return self.validation(request.POST, request, operation)
  23. def validation(self, request_dict, request, operation):
  24. token = request.META.get('HTTP_AUTHORIZATION')
  25. token = TokenObject(token)
  26. lang = request_dict.get('lang', None)
  27. response = ResponseObject(lang) if lang else ResponseObject(token.lang)
  28. if token.code != 0:
  29. return response.json(token.code)
  30. app_user_id = token.userID
  31. # 添加设备关联房间
  32. if operation == 'join':
  33. return self.member_join(app_user_id, request_dict, response)
  34. elif operation == 'join/page':
  35. return self.member_join_page(request_dict, response)
  36. @classmethod
  37. def member_join(cls, app_user_id, request_dict, response):
  38. pass
  39. @classmethod
  40. def member_join_page(cls, request_dict, response):
  41. """
  42. 家庭成员邀请记录
  43. @param request_dict:
  44. @param response:
  45. @return:
  46. """
  47. page_no = request_dict.get('pageNo', None)
  48. page_size = request_dict.get('pageSize', None)
  49. family_id = request_dict.get('familyId', None)
  50. if not all([page_no, page_size, family_id]):
  51. return response.json(444)
  52. member_join = FamilyMemberJoin.objects.filter(family_id=family_id).values('status', 'user__username',
  53. 'user__userIconUrl', 'user__phone',
  54. 'user__userEmail', 'updated_time',
  55. 'created_time')
  56. page_no = int(page_no)
  57. page_size = int(page_size)
  58. member_join = member_join.order_by('-created_time')[(page_no - 1) * page_size: page_no * page_size]
  59. if not member_join.exists():
  60. return response.json(0, [])
  61. result = []
  62. for item in member_join:
  63. result.append({
  64. 'status': item['status'],
  65. 'userName': item['user__username'],
  66. 'userIconUrl': item['user__userIconUrl'],
  67. 'phone': item['user__phone'],
  68. 'userEmail': item['user__userEmail'],
  69. 'updatedTime': item['updated_time'],
  70. 'createdTime': item['created_time']
  71. })
  72. return response.json(0, result)