浏览代码

修改套餐转移功能

locky 4 年之前
父节点
当前提交
98eeb32c16
共有 2 个文件被更改,包括 29 次插入31 次删除
  1. 28 31
      Controller/CloudTest.py
  2. 1 0
      Object/ResponseObject.py

+ 28 - 31
Controller/CloudTest.py

@@ -56,7 +56,7 @@ class cloudTestView(View):
         try:
             # 查询该userID下是否存在此设备
             old_deviceInfo_qs = Device_Info.objects.filter(userID_id=oldUserID, UID=uid, isExist=1)
-            if not old_deviceInfo_qs:
+            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')
@@ -81,35 +81,15 @@ class cloudTestView(View):
         # username = request_dict.get("username", None)
         old_uid = request_dict.get("old_uid", None)
         new_uid = request_dict.get("new_uid", None)
+        nowTime = int(time.time())
 
         try:
             # 查询两个UID是否在同一账号下
-            # deviceUser_qs = Device_User.objects.filter(username=username).values('userID')
-            # userID = deviceUser_qs[0]['userID']
             old_deviceInfo_qs = Device_Info.objects.filter(userID_id=userID, UID=old_uid).values('isExist', 'Online')
             new_deviceInfo_qs = Device_Info.objects.filter(userID_id=userID, UID=new_uid).values('isExist')
             if not (old_deviceInfo_qs.exists() and new_deviceInfo_qs.exists()):
                 return response.json(10010)
 
-            # 转出设备已删除或不在线才能进行转移
-            old_isExist = old_deviceInfo_qs[0]['isExist']
-            old_Online = old_deviceInfo_qs[0]['Online']
-            new_isExist = new_deviceInfo_qs[0]['isExist']
-            if old_isExist or old_Online or not new_isExist:
-                return response.json(10011)
-
-            # 确认转入设备套餐是否过期,通过orders表的userID_id和UID确定uid_bucket_id
-            new_orderModel_qs = Order_Model.objects.filter(userID_id=userID, UID=new_uid).values('uid_bucket_id')
-            new_uid_bucket_id = new_orderModel_qs[0]['uid_bucket_id']
-            # 转入设备开通过套餐且套餐已过期才能进行转移,通过vod_uid_bucket表关联的id(关联orders表的uid_bucket_id)确定过期时间endTime
-            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:
-                return response.json(10013)
-
             # 只能转移购买的的套餐(支付类型为体验套餐和激活码不能转移,即pay_type不能为10,11)
             old_orderModel_qs = Order_Model.objects.filter(userID_id=userID, UID=old_uid).values('payType',
                                                                                                  'uid_bucket_id')
@@ -118,22 +98,39 @@ class cloudTestView(View):
             if payType == 10 or payType == 11:
                 return response.json(10014)
 
-            # 套餐转移,转出设备服务显示过期,转入设备套餐类型和过期时间更新
-            # 更新转出设备套餐过期时间
-            old_uidBucket_qs = UID_Bucket.objects.filter(id=old_uid_bucket_id).values('bucket_id', 'endTime')
-            old_bucket_id = old_uidBucket_qs[0]['bucket_id']
-            old_endTime = old_uidBucket_qs[0]['endTime']
+            # 转出设备套餐未过期或已删除或不在线才能进行转移
+            old_isExist = old_deviceInfo_qs[0]['isExist']
+            old_Online = old_deviceInfo_qs[0]['Online']
+            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:
+                    return response.json(10013)
+
             with transaction.atomic():
-                UID_Bucket.objects.filter(id=old_uid_bucket_id).update(endTime=nowTime - 1)
-                # 更新转入设备套餐类型和过期时间
-                new_UIDbucket_qs.update(bucket_id=old_bucket_id, endTime=old_endTime)
+                # vod_uid_bucket表更新uid
+                old_UIDbucket_qs.update(uid=new_uid)
                 # 删除转出设备stscrd表关联数据
                 stscrdModel_qs = StsCrdModel.objects.filter(uid=old_uid)
                 if stscrdModel_qs:
                     stscrdModel_qs.delete()
 
         except Exception as e:
-            # print(e)
+            print(e)
             return response.json(500, repr(e))
         else:
             return response.json(0)

+ 1 - 0
Object/ResponseObject.py

@@ -150,6 +150,7 @@ class ResponseObject(object):
             10012: '接受转移设备未开通过云存储服务,无法转移',
             10013: '接受转移设备套餐未过期,无法转移',
             10014: '体验套餐无法转移',
+            10015: '原设备套餐已过期,无法转移',
         }
         if self.lang == 'cn':
             msg = data_cn