|
@@ -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)
|