|
@@ -1,11 +1,15 @@
|
|
|
# @Author : Rocky
|
|
|
# @File : InitController.py
|
|
|
# @Time : 2023/4/11 17:26
|
|
|
+import logging
|
|
|
+
|
|
|
from django.contrib.auth.hashers import check_password
|
|
|
-from django.http import HttpResponse
|
|
|
+from django.db import transaction
|
|
|
from django.views import View
|
|
|
|
|
|
-from Model.models import Device_User, Device_Info, Order_Model, UID_Bucket, Unused_Uid_Meal
|
|
|
+from Model.models import Device_User, Device_Info, Order_Model, \
|
|
|
+ UidPushModel, UserExModel, UserOauth2Model, UidUserModel, GrantCodeModel, UserAppFrequencyModel, \
|
|
|
+ AppLogModel, UserFamily, FamilyMember, FamilyMemberJoin, SmartScene, DeviceSuperPassword
|
|
|
from Object.ResponseObject import ResponseObject
|
|
|
|
|
|
|
|
@@ -22,9 +26,9 @@ class InitView(View):
|
|
|
return self.validation(request.POST, operation)
|
|
|
|
|
|
def validation(self, request_dict, operation):
|
|
|
- if operation == 'health-check': # 负载均衡器健康检测接口
|
|
|
+ if operation == 'health-check': # 负载均衡器健康检测接口
|
|
|
return self.health_check(request_dict)
|
|
|
- elif operation == 'delete-account': # 网页删除账号
|
|
|
+ elif operation == 'delete-account': # 网页删除账号
|
|
|
return self.delete_account(request_dict)
|
|
|
|
|
|
@staticmethod
|
|
@@ -34,10 +38,17 @@ class InitView(View):
|
|
|
|
|
|
@staticmethod
|
|
|
def delete_account(request_dict):
|
|
|
+ """
|
|
|
+ 网页删除账号
|
|
|
+ @param request_dict:输入
|
|
|
+ @request_dict username:用户名
|
|
|
+ @request_dict password:用户密码
|
|
|
+ @return 输出
|
|
|
+ """
|
|
|
+ LOGGER = logging.getLogger('info')
|
|
|
username = request_dict.get('username', None)
|
|
|
password = request_dict.get('password', None)
|
|
|
response = ResponseObject()
|
|
|
-
|
|
|
device_user_qs = Device_User.objects.filter(username=username).values('password', 'userID')
|
|
|
if not device_user_qs.exists():
|
|
|
return response.json(104)
|
|
@@ -45,18 +56,67 @@ class InitView(View):
|
|
|
cipher_password, user_id = device_user_qs[0]['password'], device_user_qs[0]['userID']
|
|
|
if not check_password(password, cipher_password):
|
|
|
return response.json(111)
|
|
|
-
|
|
|
- device_info_qs = Device_Info.objects.filter(userID=user_id)
|
|
|
- if device_info_qs.exists():
|
|
|
- return response.json(10047)
|
|
|
-
|
|
|
- uid_list = Order_Model.objects.filter(userID=user_id, status=1).values_list('UID').distinct().order_by('UID')
|
|
|
- uid_bucket_qs = UID_Bucket.objects.filter(uid__in=uid_list, use_status=1)
|
|
|
- if uid_bucket_qs.exists():
|
|
|
- return response.json(10046)
|
|
|
-
|
|
|
- unused_uid_meal_qs = Unused_Uid_Meal.objects.filter(uid__in=uid_list)
|
|
|
- if unused_uid_meal_qs.exists():
|
|
|
- return response.json(10046)
|
|
|
- device_user_qs.delete()
|
|
|
- return response.json(0)
|
|
|
+ try:
|
|
|
+ with transaction.atomic():
|
|
|
+ # 解绑用户与设备
|
|
|
+ uid_push_qs = UidPushModel.objects.filter(userID=user_id)
|
|
|
+ if uid_push_qs.exists():
|
|
|
+ uid_push_qs.delete()
|
|
|
+ # 删除用户扩展信息
|
|
|
+ user_ex_qs = UserExModel.objects.filter(userID=user_id)
|
|
|
+ if user_ex_qs.exists():
|
|
|
+ user_ex_qs.delete()
|
|
|
+ # 用户oauth2信息
|
|
|
+ user_oauth2_qs = UserOauth2Model.objects.filter(userID=user_id)
|
|
|
+ if user_oauth2_qs.exists():
|
|
|
+ user_oauth2_qs.delete()
|
|
|
+ # 删除用户设备ap
|
|
|
+ uid_user_qs = UidUserModel.objects.filter(userID=user_id)
|
|
|
+ if uid_user_qs.exists():
|
|
|
+ uid_user_qs.delete()
|
|
|
+ # 删除用户授权码
|
|
|
+ grant_code_qs = GrantCodeModel.objects.filter(userID=user_id)
|
|
|
+ if grant_code_qs.exists():
|
|
|
+ grant_code_qs.delete()
|
|
|
+ # 删除用户使用APP频率
|
|
|
+ user_app_Frequency_qs = UserAppFrequencyModel.objects.filter(user_id=user_id)
|
|
|
+ if user_app_Frequency_qs.exists():
|
|
|
+ user_app_Frequency_qs.delete()
|
|
|
+ # 删除APP(设备)日志表
|
|
|
+ app_log_qs = AppLogModel.objects.filter(user_id=user_id)
|
|
|
+ if app_log_qs.exists():
|
|
|
+ app_log_qs.delete()
|
|
|
+ # 删除家庭成员
|
|
|
+ family_qs = FamilyMember.objects.filter(user_id=user_id)
|
|
|
+ if family_qs.exists():
|
|
|
+ family_qs.delete()
|
|
|
+ # 删除家庭成员加入
|
|
|
+ family_join_qs = FamilyMemberJoin.objects.filter(user_id=user_id)
|
|
|
+ if family_join_qs.exists():
|
|
|
+ family_join_qs.delete()
|
|
|
+ # 删除用户家庭
|
|
|
+ user_family_qs = UserFamily.objects.filter(user_id=user_id)
|
|
|
+ if user_family_qs.exists():
|
|
|
+ user_family_qs.delete()
|
|
|
+ # 删除智能场景
|
|
|
+ smart_scene_qs = SmartScene.objects.filter(user_id=user_id)
|
|
|
+ if smart_scene_qs.exists():
|
|
|
+ smart_scene_qs.delete()
|
|
|
+ # 删除超级密码请求信息
|
|
|
+ device_super_qs = DeviceSuperPassword.objects.filter(userID=user_id)
|
|
|
+ if device_super_qs.exists():
|
|
|
+ device_super_qs.delete()
|
|
|
+ # 删除设备信息
|
|
|
+ device_info_qs = Device_Info.objects.filter(userID=user_id)
|
|
|
+ if device_info_qs.exists():
|
|
|
+ device_info_qs.delete()
|
|
|
+ # 删除用户订单信息
|
|
|
+ order_uid_qs = Order_Model.objects.filter(userID=user_id)
|
|
|
+ if order_uid_qs.exists():
|
|
|
+ order_uid_qs.delete()
|
|
|
+ Device_User.objects.filter(userID=user_id).delete()
|
|
|
+ LOGGER.info('{}已注销'.format(username))
|
|
|
+ return response.json(0)
|
|
|
+ except Exception as e:
|
|
|
+ print(e)
|
|
|
+ return response.json(500)
|