Browse Source

完善设备转移功能;添加云存套餐过期功能

locky 4 years ago
parent
commit
43e3046e4e
1 changed files with 46 additions and 46 deletions
  1. 46 46
      Controller/CloudTest.py

+ 46 - 46
Controller/CloudTest.py

@@ -7,6 +7,7 @@
 """
 import time
 from django.db import transaction
+from django.db.models import Q
 from django.views.generic.base import View
 
 from Model.models import Device_User, Device_Info, Order_Model, UID_Bucket, Store_Meal, StsCrdModel
@@ -42,26 +43,33 @@ class cloudTestView(View):
                 return self.deviceTransfer(request_dict, response)
             elif operation == 'mealTransfer':
                 return self.mealTransfer(request_dict, response, userID)
+            elif operation == 'expireMeal':
+                return self.expireMeal(request_dict, response)
 
     def deviceTransfer(self, request_dict, response):
         # 设备转移
         oldUserID = request_dict.get("oldUserID", None)
-        username = request_dict.get("username", None)
+        # username = request_dict.get("username", None)
+        loginName = request_dict.get("username", None)
         uid = request_dict.get('uid', None)
 
         try:
-            # 查询设备是否存在
-
-            deviceInfo_qs = Device_Info.objects.filter(userID_id=oldUserID, UID=uid, isExist=1)
-            if deviceInfo_qs[0]:
-                deviceUser_qs = Device_User.objects.filter(username=username).values('userID')
-                userID = deviceUser_qs[0]['userID']
-                # 判断该用户的userID是否跟转移的一样
-                if userID == oldUserID:
-                    return response.json(10008)
-                # 更新设备信息
-                else:
-                    deviceInfo_qs.update(userID=userID)
+            # 查询该userID下是否存在此设备
+            old_deviceInfo_qs = Device_Info.objects.filter(userID_id=oldUserID, UID=uid, isExist=1)
+            if not old_deviceInfo_qs:
+                return response.json(10008)
+            # 登录方式可能为用户名,手机号或邮箱登录
+            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:
+                return response.json(10009)
+            # 判断该用户是否已有此设备UID
+            new_deviceInfo_qs = Device_Info.objects.filter(userID_id=userID, UID=uid, isExist=1)
+            if new_deviceInfo_qs:
+                return response.json(10009)
+            # 更新设备信息
+            old_deviceInfo_qs.update(userID=userID)
         except Exception as e:
             # print(e)
             return response.json(500, repr(e))
@@ -78,17 +86,17 @@ class cloudTestView(View):
             # 查询两个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')
+            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(10009)
-            
+            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(10010)
+                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')
@@ -96,29 +104,29 @@ class cloudTestView(View):
             # 转入设备开通过套餐且套餐已过期才能进行转移,通过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(10011)
+                return response.json(10012)
             nowTime = int(time.time())
             new_endTime = new_UIDbucket_qs[0]['endTime']
             if new_endTime > nowTime:
-                return response.json(10012)
+                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')
+            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(10013)
+                return response.json(10014)
 
             # 套餐转移,转出设备服务显示过期,转入设备套餐类型和过期时间更新
             # 更新转出设备套餐过期时间
-            old_uidBucket_qs = UID_Bucket.objects.filter(id=old_uid_bucket_id).values('bucket_id','endTime')
+            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']
             with transaction.atomic():
-                UID_Bucket.objects.filter(id=old_uid_bucket_id).update(endTime=0)
-
+                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)
+                new_UIDbucket_qs.update(bucket_id=old_bucket_id, endTime=old_endTime)
                 # 删除转出设备stscrd表关联数据
                 stscrdModel_qs = StsCrdModel.objects.filter(uid=old_uid)
                 if stscrdModel_qs:
@@ -130,24 +138,16 @@ class cloudTestView(View):
         else:
             return response.json(0)
 
+    def expireMeal(self, request_dict, response):
+        UID_Bucket_id = request_dict.get("UID_Bucket_id", None)
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+        # 修改endTime让当前设备套餐过期
+        if UID_Bucket_id:
+            nowTime = int(time.time())
+            try:
+                UID_Bucket.objects.filter(id=UID_Bucket_id).update(endTime=nowTime - 1)
+            except Exception as e:
+                # print(e)
+                return response.json(500, repr(e))
+            else:
+                return response.json(0)