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

添加云存套餐转移功能

locky 4 жил өмнө
parent
commit
9d76dc5ebe

+ 85 - 1
Controller/CloudTest.py

@@ -9,7 +9,7 @@ import time
 
 from django.views.generic.base import View
 
-from Model.models import Device_User, Device_Info
+from Model.models import Device_User, Device_Info, Order_Model, UID_Bucket, Store_Meal, StsCrdModel
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 
@@ -40,6 +40,8 @@ class cloudTestView(View):
             userID = tko.userID
             if operation == 'deviceTransfer':
                 return self.deviceTransfer(request_dict, response)
+            elif operation == 'mealTransfer':
+                return self.mealTransfer(request_dict, response)
 
     def deviceTransfer(self, request_dict, response):
         # 设备转移
@@ -49,6 +51,7 @@ class cloudTestView(View):
 
         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')
@@ -64,3 +67,84 @@ class cloudTestView(View):
             return response.json(500, repr(e))
         else:
             return response.json(0)
+
+    def mealTransfer(self, request_dict, response):
+        # 云存套餐转移
+        username = request_dict.get("username", None)
+        old_uid = request_dict.get("old_uid", None)
+        new_uid = request_dict.get("new_uid", None)
+
+        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(10009)
+            
+            # 转出设备已删除或不在线才能进行转移
+            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)
+
+            # 确认转入设备套餐是否过期,通过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(10011)
+            nowTime = int(time.time())
+            new_endTime = new_UIDbucket_qs[0]['endTime']
+            if new_endTime > nowTime:
+                return response.json(10012)
+
+            # 只能转移购买的的套餐(支付类型为体验套餐和激活码不能转移,即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(10013)
+
+            # 套餐转移,转出设备服务显示过期,转入设备套餐类型和过期时间更新
+            # 更新转出设备套餐过期时间
+            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']
+            UID_Bucket.objects.filter(id=old_uid_bucket_id).update(endTime=0)
+
+            # 更新转入设备套餐类型和过期时间
+            new_UIDbucket_qs.update(bucket_id=old_bucket_id,endTime=old_endTime)
+            # 删除转出设备stscrd表关联数据
+            StsCrdModel.objects.filter(uid=old_uid).delete()
+
+        except Exception as e:
+            print(e)
+            return response.json(500, repr(e))
+        else:
+            return response.json(0)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+ 7 - 1
Object/ResponseObject.py

@@ -142,7 +142,13 @@ class ResponseObject(object):
             10004: '请求方法不正确。请联系开发者',
             10005: '配置错误,客户编号这个值是错误的',
             10006: '配置错误,路径这个值是错误的',
-            10007: '此设备不是体验套餐,无法重置'
+            10007: '此设备不是体验套餐,无法重置',
+            10008: '用户已拥有此设备,无法转移',
+            10009: '不是同一账户下的设备,无法转移',
+            10010: '原设备正在正常使用云存储服务,无法转移',
+            10011: '接受转移设备未开通过云存储服务,无法转移',
+            10012: '接受转移设备套餐未过期,无法转移',
+            10013: '体验套餐无法转移',
         }
         if self.lang == 'cn':
             msg = data_cn