InitController.py 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. # @Author : Rocky
  2. # @File : InitController.py
  3. # @Time : 2023/4/11 17:26
  4. import logging
  5. from django.contrib.auth.hashers import check_password
  6. from django.db import transaction
  7. from django.views import View
  8. from Model.models import Device_User, Device_Info, Order_Model, \
  9. UidPushModel, UserExModel, UserOauth2Model, UidUserModel, GrantCodeModel, UserAppFrequencyModel, \
  10. AppLogModel, UserFamily, FamilyMember, FamilyMemberJoin, SmartScene, DeviceSuperPassword
  11. from Object.ResponseObject import ResponseObject
  12. class InitView(View):
  13. def get(self, request, *args, **kwargs):
  14. request.encoding = 'utf-8'
  15. operation = kwargs.get('operation')
  16. return self.validation(request.GET, operation)
  17. def post(self, request, *args, **kwargs):
  18. request.encoding = 'utf-8'
  19. operation = kwargs.get('operation')
  20. return self.validation(request.POST, operation)
  21. def validation(self, request_dict, operation):
  22. if operation == 'health-check': # 负载均衡器健康检测接口
  23. return self.health_check(request_dict)
  24. elif operation == 'delete-account': # 网页删除账号
  25. return self.delete_account(request_dict)
  26. @staticmethod
  27. def health_check(request_dict):
  28. response = ResponseObject()
  29. return response.json(0)
  30. @staticmethod
  31. def delete_account(request_dict):
  32. """
  33. 网页删除账号
  34. @param request_dict:输入
  35. @request_dict username:用户名
  36. @request_dict password:用户密码
  37. @return 输出
  38. """
  39. LOGGER = logging.getLogger('info')
  40. username = request_dict.get('username', None)
  41. password = request_dict.get('password', None)
  42. response = ResponseObject()
  43. device_user_qs = Device_User.objects.filter(username=username).values('password', 'userID')
  44. if not device_user_qs.exists():
  45. return response.json(104)
  46. cipher_password, user_id = device_user_qs[0]['password'], device_user_qs[0]['userID']
  47. if not check_password(password, cipher_password):
  48. return response.json(111)
  49. try:
  50. with transaction.atomic():
  51. # 解绑用户与设备
  52. uid_push_qs = UidPushModel.objects.filter(userID=user_id)
  53. if uid_push_qs.exists():
  54. uid_push_qs.delete()
  55. # 删除用户扩展信息
  56. user_ex_qs = UserExModel.objects.filter(userID=user_id)
  57. if user_ex_qs.exists():
  58. user_ex_qs.delete()
  59. # 用户oauth2信息
  60. user_oauth2_qs = UserOauth2Model.objects.filter(userID=user_id)
  61. if user_oauth2_qs.exists():
  62. user_oauth2_qs.delete()
  63. # 删除用户设备ap
  64. uid_user_qs = UidUserModel.objects.filter(userID=user_id)
  65. if uid_user_qs.exists():
  66. uid_user_qs.delete()
  67. # 删除用户授权码
  68. grant_code_qs = GrantCodeModel.objects.filter(userID=user_id)
  69. if grant_code_qs.exists():
  70. grant_code_qs.delete()
  71. # 删除用户使用APP频率
  72. user_app_Frequency_qs = UserAppFrequencyModel.objects.filter(user_id=user_id)
  73. if user_app_Frequency_qs.exists():
  74. user_app_Frequency_qs.delete()
  75. # 删除APP(设备)日志表
  76. app_log_qs = AppLogModel.objects.filter(user_id=user_id)
  77. if app_log_qs.exists():
  78. app_log_qs.delete()
  79. # 删除家庭成员
  80. family_qs = FamilyMember.objects.filter(user_id=user_id)
  81. if family_qs.exists():
  82. family_qs.delete()
  83. # 删除家庭成员加入
  84. family_join_qs = FamilyMemberJoin.objects.filter(user_id=user_id)
  85. if family_join_qs.exists():
  86. family_join_qs.delete()
  87. # 删除用户家庭
  88. user_family_qs = UserFamily.objects.filter(user_id=user_id)
  89. if user_family_qs.exists():
  90. user_family_qs.delete()
  91. # 删除智能场景
  92. smart_scene_qs = SmartScene.objects.filter(user_id=user_id)
  93. if smart_scene_qs.exists():
  94. smart_scene_qs.delete()
  95. # 删除超级密码请求信息
  96. device_super_qs = DeviceSuperPassword.objects.filter(userID=user_id)
  97. if device_super_qs.exists():
  98. device_super_qs.delete()
  99. # 删除设备信息
  100. device_info_qs = Device_Info.objects.filter(userID=user_id)
  101. if device_info_qs.exists():
  102. device_info_qs.delete()
  103. # 删除用户订单信息
  104. order_uid_qs = Order_Model.objects.filter(userID=user_id)
  105. if order_uid_qs.exists():
  106. order_uid_qs.delete()
  107. Device_User.objects.filter(userID=user_id).delete()
  108. LOGGER.info('{}已注销'.format(username))
  109. return response.json(0)
  110. except Exception as e:
  111. print(e)
  112. return response.json(500)