Эх сурвалжийг харах

修改套餐转移功能_2

locky 4 жил өмнө
parent
commit
444fe2915f

+ 21 - 17
Controller/CloudTest.py

@@ -49,7 +49,6 @@ class cloudTestView(View):
     def deviceTransfer(self, request_dict, response):
         # 设备转移
         oldUserID = request_dict.get("oldUserID", None)
-        # username = request_dict.get("username", None)
         loginName = request_dict.get("username", None)
         uid = request_dict.get('uid', None)
 
@@ -59,7 +58,8 @@ class cloudTestView(View):
             if not old_deviceInfo_qs.exists():
                 return response.json(10008)
             # 登录方式可能为用户名,手机号或邮箱登录
-            deviceUser_qs = Device_User.objects.filter(Q(username=loginName) | Q(phone=loginName) | Q(userEmail=loginName)).values('userID')
+            deviceUser_qs = Device_User.objects.filter(
+                Q(username=loginName) | Q(phone=loginName) | Q(userEmail=loginName)).values('userID')
             userID = deviceUser_qs[0]['userID']
             # 判断该用户的userID是否跟转移的一样
             if userID == oldUserID:
@@ -93,10 +93,21 @@ class cloudTestView(View):
             # 只能转移购买的的套餐(支付类型为体验套餐和激活码不能转移,即pay_type不能为10,11)
             old_orderModel_qs = Order_Model.objects.filter(userID_id=userID, UID=old_uid).values('payType',
                                                                                                  'uid_bucket_id')
-            payType = old_orderModel_qs[0]['payType']
-            old_uid_bucket_id = old_orderModel_qs[0]['uid_bucket_id']
-            if payType == 10 or payType == 11:
-                return response.json(10014)
+            if old_orderModel_qs.exists():
+                payType = old_orderModel_qs[0]['payType']
+                old_uid_bucket_id = old_orderModel_qs[0]['uid_bucket_id']
+                if payType == 10 or payType == 11:
+                    return response.json(10014)
+                # old_UIDbucket_qs = UID_Bucket.objects.filter(id=old_uid_bucket_id, endTime__lt=nowTime)
+                old_UIDbucket_qs = UID_Bucket.objects.filter(id=old_uid_bucket_id).values('endTime')
+                old_endTime = old_UIDbucket_qs[0]['endTime']
+                if old_endTime < nowTime:
+                    return response.json(10015)
+            else:
+                # 多次转移,根据vod_uid_bucket的uid和endTime查找是否有未过期套餐
+                old_UIDbucket_qs = UID_Bucket.objects.filter(uid=old_uid, endTime__gt=nowTime)
+                if not old_UIDbucket_qs.exists():
+                    return response.json(10015)
 
             # 转出设备套餐未过期或已删除或不在线才能进行转移
             old_isExist = old_deviceInfo_qs[0]['isExist']
@@ -104,21 +115,14 @@ class cloudTestView(View):
             new_isExist = new_deviceInfo_qs[0]['isExist']
             if old_isExist or old_Online or not new_isExist:
                 return response.json(10011)
-            old_UIDbucket_qs = UID_Bucket.objects.filter(id=old_uid_bucket_id).values('endTime')
-            old_endTime = old_UIDbucket_qs[0]['endTime']
-            if old_endTime < nowTime:
-                return response.json(10015)
 
             # 确认转入设备套餐是否开通过套餐和套餐已过期
             new_orderModel_qs = Order_Model.objects.filter(userID_id=userID, UID=new_uid).values('uid_bucket_id')
             if new_orderModel_qs.exists():
                 new_uid_bucket_id = new_orderModel_qs[0]['uid_bucket_id']
-                new_UIDbucket_qs = UID_Bucket.objects.filter(id=new_uid_bucket_id).values('endTime')
-                if not new_UIDbucket_qs.exists():
-                    return response.json(10012)
-                # nowTime = int(time.time())
-                new_endTime = new_UIDbucket_qs[0]['endTime']
-                if new_endTime > nowTime:
+                new_UIDbucket_qs = UID_Bucket.objects.filter(id=new_uid_bucket_id, endTime__gt=nowTime).values(
+                    'endTime')
+                if new_UIDbucket_qs.exists():
                     return response.json(10013)
 
             with transaction.atomic():
@@ -142,7 +146,7 @@ class cloudTestView(View):
         if UID_Bucket_id:
             nowTime = int(time.time())
             try:
-                UID_Bucket.objects.filter(id=UID_Bucket_id).update(endTime=nowTime - 1)
+                UID_Bucket.objects.filter(id=UID_Bucket_id).update(endTime=nowTime-1)
             except Exception as e:
                 # print(e)
                 return response.json(500, repr(e))

+ 1 - 1
Object/ResponseObject.py

@@ -147,7 +147,7 @@ class ResponseObject(object):
             10009: '用户已拥有此设备,无法转移',
             10010: '不是同一账户下的设备,无法转移',
             10011: '原设备正在正常使用云存储服务,无法转移',
-            10012: '接受转移设备未开通过云存储服务,无法转移',
+            # 10012: '接受转移设备未开通过云存储服务,无法转移',
             10013: '接受转移设备套餐未过期,无法转移',
             10014: '体验套餐无法转移',
             10015: '原设备套餐已过期,无法转移',