GatewayFamilyMemberController.py 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  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. import json
  10. import time
  11. from django.views.generic.base import View
  12. from Model.models import FamilyMemberJoin, UserFamily, Device_Info, Device_User
  13. from Object.RedisObject import RedisObject
  14. from Object.ResponseObject import ResponseObject
  15. from Object.TokenObject import TokenObject
  16. from Controller.SensorGateway.EquipmentFamilyController import EquipmentFamilyView
  17. from Service.CommonService import CommonService
  18. # 家庭房间管理
  19. class GatewayFamilyMemberView(View):
  20. def get(self, request, *args, **kwargs):
  21. request.encoding = 'utf-8'
  22. operation = kwargs.get('operation')
  23. return self.validation(request.GET, request, operation)
  24. def post(self, request, *args, **kwargs):
  25. request.encoding = 'utf-8'
  26. operation = kwargs.get('operation')
  27. return self.validation(request.POST, request, operation)
  28. def validation(self, request_dict, request, operation):
  29. token = request.META.get('HTTP_AUTHORIZATION')
  30. token = TokenObject(token)
  31. lang = request_dict.get('lang', None)
  32. response = ResponseObject(lang) if lang else ResponseObject(token.lang)
  33. if token.code != 0:
  34. return response.json(token.code)
  35. app_user_id = token.userID
  36. # 添加设备关联房间
  37. if operation == 'join':
  38. return self.member_join(app_user_id, request_dict, response)
  39. elif operation == 'join/page':
  40. return self.member_join_page(request_dict, response)
  41. @classmethod
  42. def member_join(cls, app_user_id, request_dict, response):
  43. pass
  44. @classmethod
  45. def member_join_page(cls, request_dict, response):
  46. """
  47. 家庭成员邀请记录
  48. @param request_dict:
  49. @param response:
  50. @return:
  51. """
  52. page_no = request_dict.get('pageNo', None)
  53. page_size = request_dict.get('pageSize', None)
  54. family_id = request_dict.get('familyId', None)
  55. if not all([page_no, page_size, family_id]):
  56. return response.json(444)
  57. member_join = FamilyMemberJoin.objects.filter(family_id=family_id).values('status', 'user__username',
  58. 'user__userIconUrl', 'user__phone',
  59. 'user__userEmail', 'updated_time',
  60. 'created_time')
  61. page_no = int(page_no)
  62. page_size = int(page_size)
  63. member_join = member_join.order_by('-created_time')[(page_no - 1) * page_size: page_no * page_size]
  64. if not member_join.exists():
  65. return response.json(0, [])
  66. result = []
  67. for item in member_join:
  68. result.append({
  69. 'status': item['status'],
  70. 'userName': item['user__username'],
  71. 'userIconUrl': item['user__userIconUrl'],
  72. 'phone': item['user__phone'],
  73. 'userEmail': item['user__userEmail'],
  74. 'updatedTime': item['updated_time'],
  75. 'createdTime': item['created_time']
  76. })
  77. return response.json(0, result)
  78. @classmethod
  79. def family_qrcode(cls, user_id, request_dict, response):
  80. """
  81. 获取邀请码信息
  82. @param user_id:
  83. @param request_dict:
  84. @param response:
  85. @return:
  86. """
  87. family_id = request_dict.get('familyId', None)
  88. if not family_id:
  89. return response.json(444)
  90. is_owner = EquipmentFamilyView.get_family_owner(user_id, family_id)
  91. if not is_owner:
  92. return response.json(404)
  93. try:
  94. UserFamily.objects.get(id=family_id)
  95. except Exception as e:
  96. print(e)
  97. return response.json(173, repr(e))
  98. pass