Ver Fonte

注销接口添加云存用户不能注销2

lang há 3 anos atrás
pai
commit
82b9b33bcf
2 ficheiros alterados com 18 adições e 3 exclusões
  1. 16 3
      Controller/UserController.py
  2. 2 0
      Object/ResponseObject.py

+ 16 - 3
Controller/UserController.py

@@ -32,7 +32,7 @@ from ratelimit.decorators import ratelimit
 from Ansjer.config import AuthCode_Expire, SERVER_DOMAIN, APNS_CONFIG, JPUSH_CONFIG, FCM_CONFIG, TUTK_PUSH_DOMAIN
 from Controller.CheckUserData import DataValid, date_handler, RandomStr
 from Model.models import Device_User, Role, UidPushModel, UserOauth2Model, UserExModel, Device_Info, UidSetModel, \
-    UserAppFrequencyModel, CountryIPModel, CountryModel, UidChannelSetModel, Order_Model
+    UserAppFrequencyModel, CountryIPModel, CountryModel, UidChannelSetModel, Order_Model, UID_Bucket, Unused_Uid_Meal
 from Object.AWS.SesClassObject import SesClassObject
 from Object.AliSmsObject import AliSmsObject
 from Object.RedisObject import RedisObject
@@ -3900,15 +3900,28 @@ def deleteAccount(request):
         userID = tko.userID
         if not userID:
             return response.json(309)
+
         delUser = Device_User.objects.filter(userID=userID)
         if not delUser.exists():
             return response.json(104)
+
         userPWD = delUser.values('password')[0]
         if not check_password(password, userPWD['password']):
             return response.json(111)
-        hasOrder = Order_Model.objects.filter(userID=userID,status=1)
-        if hasOrder.exists():
+
+        hasDevices = Device_Info.objects.filter(userID=userID)
+        if hasDevices.exists():
+            return response.json(10047)
+
+        orderUserIds = Order_Model.objects.filter(userID=userID,status=1).values_list('UID').distinct().order_by("UID")
+        hadUseSevice = UID_Bucket.objects.filter(uid__in=orderUserIds,use_status=1)
+        if hadUseSevice.exists():
+            return response.json(10046)
+
+        hadUnUseSevice = Unused_Uid_Meal.objects.filter(uid__in=orderUserIds)
+        if hadUnUseSevice.exists():
             return response.json(10046)
+        # return HttpResponse(list(hadUseSevice.values()))
         delUser.delete()
         return response.json(0)
 

+ 2 - 0
Object/ResponseObject.py

@@ -102,6 +102,7 @@ class ResponseObject(object):
             10044: 'Request to publish MQTT topic message failed',
             10045: 'Already the latest version',
             10046: 'Sorry, users who have activated cloud storage packages do not support logout at the moment, please contact customer service',
+            10047: 'Please delete all devices under your account first',
         }
         data_cn = {
             0: '成功',
@@ -197,6 +198,7 @@ class ResponseObject(object):
             10044: '请求发布MQTT主题消息失败',
             10045: '当前为最新版本',
             10046: '已开通云存的用户,暂不支持注销,请联系客服',
+            10047: '请先删除您当前帐户下的所有设备',
         }
         if self.lang == 'cn':
             msg = data_cn