|
@@ -5,6 +5,7 @@
|
|
@File :CloudTransfer.py
|
|
@File :CloudTransfer.py
|
|
@IDE :PyCharm
|
|
@IDE :PyCharm
|
|
"""
|
|
"""
|
|
|
|
+import json
|
|
import time
|
|
import time
|
|
|
|
|
|
from django.db import transaction
|
|
from django.db import transaction
|
|
@@ -12,7 +13,7 @@ from django.db.models import Q
|
|
from django.views.generic.base import View
|
|
from django.views.generic.base import View
|
|
|
|
|
|
from Model.models import Device_User, Device_Info, Order_Model, UID_Bucket, StsCrdModel, VodHlsModel, Unused_Uid_Meal, \
|
|
from Model.models import Device_User, Device_Info, Order_Model, UID_Bucket, StsCrdModel, VodHlsModel, Unused_Uid_Meal, \
|
|
- VodBucketModel, UnicomDeviceInfo
|
|
|
|
|
|
+ VodBucketModel, UnicomDeviceInfo, LogModel
|
|
from Object.ResponseObject import ResponseObject
|
|
from Object.ResponseObject import ResponseObject
|
|
from Object.TokenObject import TokenObject
|
|
from Object.TokenObject import TokenObject
|
|
from Service.CommonService import CommonService
|
|
from Service.CommonService import CommonService
|
|
@@ -44,13 +45,13 @@ class cloudTestView(View):
|
|
return response.json(tko.code)
|
|
return response.json(tko.code)
|
|
userID = tko.userID
|
|
userID = tko.userID
|
|
if operation == 'deviceTransfer':
|
|
if operation == 'deviceTransfer':
|
|
- return self.deviceTransfer(request_dict, response)
|
|
|
|
|
|
+ return self.deviceTransfer(request, request_dict, response)
|
|
elif operation == 'mealTransfer':
|
|
elif operation == 'mealTransfer':
|
|
- return self.mealTransfer(request_dict, response, userID)
|
|
|
|
|
|
+ return self.mealTransfer(request, request_dict, response, userID)
|
|
elif operation == 'expireMeal':
|
|
elif operation == 'expireMeal':
|
|
return self.expireMeal(request_dict, response)
|
|
return self.expireMeal(request_dict, response)
|
|
|
|
|
|
- def deviceTransfer(self, request_dict, response):
|
|
|
|
|
|
+ def deviceTransfer(self, request, request_dict, response):
|
|
# 设备转移,一个用户下的设备转移到另一个用户
|
|
# 设备转移,一个用户下的设备转移到另一个用户
|
|
oldUserID = request_dict.get("oldUserID", None)
|
|
oldUserID = request_dict.get("oldUserID", None)
|
|
username = request_dict.get("username", None)
|
|
username = request_dict.get("username", None)
|
|
@@ -61,10 +62,10 @@ class cloudTestView(View):
|
|
try:
|
|
try:
|
|
# 查询该userID下是否存在此设备
|
|
# 查询该userID下是否存在此设备
|
|
old_deviceInfo_qs = Device_Info.objects.filter(userID_id=oldUserID, UID=uid, isExist=1) \
|
|
old_deviceInfo_qs = Device_Info.objects.filter(userID_id=oldUserID, UID=uid, isExist=1) \
|
|
- .values('isShare', 'vodPrimaryUserID', 'serial_number')
|
|
|
|
|
|
+ .values('isShare', 'vodPrimaryUserID', 'serial_number', 'userID__username')
|
|
if not old_deviceInfo_qs.exists():
|
|
if not old_deviceInfo_qs.exists():
|
|
return response.json(10008)
|
|
return response.json(10008)
|
|
-
|
|
|
|
|
|
+ old_user_name = old_deviceInfo_qs[0]['userID__username']
|
|
newUserID = ModelService.get_userID_byname(username) # 根据username获取userID
|
|
newUserID = ModelService.get_userID_byname(username) # 根据username获取userID
|
|
if newUserID is None: # 没有此用户
|
|
if newUserID is None: # 没有此用户
|
|
return response.json(104)
|
|
return response.json(104)
|
|
@@ -116,6 +117,19 @@ class cloudTestView(View):
|
|
if u_dev_info_qs.exists():
|
|
if u_dev_info_qs.exists():
|
|
now_time = int(time.time())
|
|
now_time = int(time.time())
|
|
u_dev_info_qs.update(user_id=newUserID, updated_time=now_time)
|
|
u_dev_info_qs.update(user_id=newUserID, updated_time=now_time)
|
|
|
|
+ # 记录设备转移日志
|
|
|
|
+ ip = CommonService.get_ip_address(request)
|
|
|
|
+ content = json.loads(json.dumps(request_dict))
|
|
|
|
+ log = {
|
|
|
|
+ 'ip': ip,
|
|
|
|
+ 'user_id': 1,
|
|
|
|
+ 'status': 200,
|
|
|
|
+ 'time': int(time.time()),
|
|
|
|
+ 'url': 'cloudTransfer/deviceTransfer',
|
|
|
|
+ 'content': json.dumps(content),
|
|
|
|
+ 'operation': '用户{}的设备{}转移给了用户{}'.format(old_user_name, uid, newUserName),
|
|
|
|
+ }
|
|
|
|
+ LogModel.objects.create(**log)
|
|
# UIDMainUser.objects.filter(UID=uid).delete()
|
|
# UIDMainUser.objects.filter(UID=uid).delete()
|
|
# uid_main_dict = {
|
|
# uid_main_dict = {
|
|
# 'UID': uid,
|
|
# 'UID': uid,
|
|
@@ -129,7 +143,7 @@ class cloudTestView(View):
|
|
else:
|
|
else:
|
|
return response.json(0)
|
|
return response.json(0)
|
|
|
|
|
|
- def mealTransfer(self, request_dict, response, userID):
|
|
|
|
|
|
+ def mealTransfer(self, request, request_dict, response, userID):
|
|
# 云存套餐转移,同一用户下不同设备间的云存套餐转移
|
|
# 云存套餐转移,同一用户下不同设备间的云存套餐转移
|
|
old_uid = request_dict.get("old_uid", None)
|
|
old_uid = request_dict.get("old_uid", None)
|
|
new_uid = request_dict.get("new_uid", None)
|
|
new_uid = request_dict.get("new_uid", None)
|
|
@@ -138,7 +152,8 @@ class cloudTestView(View):
|
|
try:
|
|
try:
|
|
# 查询两个UID是否在同一账号下
|
|
# 查询两个UID是否在同一账号下
|
|
old_deviceInfo_qs = Device_Info.objects.filter(userID_id=userID, UID=old_uid).values('isExist',
|
|
old_deviceInfo_qs = Device_Info.objects.filter(userID_id=userID, UID=old_uid).values('isExist',
|
|
- 'vodPrimaryUserID')
|
|
|
|
|
|
+ 'vodPrimaryUserID',
|
|
|
|
+ 'userID__username')
|
|
new_deviceInfo_qs = Device_Info.objects.filter(userID_id=userID, UID=new_uid).values('isExist')
|
|
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()):
|
|
if not (old_deviceInfo_qs.exists() and new_deviceInfo_qs.exists()):
|
|
return response.json(10010)
|
|
return response.json(10010)
|
|
@@ -157,7 +172,8 @@ class cloudTestView(View):
|
|
# 查询转出设备正在使用的套餐
|
|
# 查询转出设备正在使用的套餐
|
|
old_using_uid_bucket = UID_Bucket.objects.filter(uid=old_uid, endTime__gte=nowTime).values('id',
|
|
old_using_uid_bucket = UID_Bucket.objects.filter(uid=old_uid, endTime__gte=nowTime).values('id',
|
|
'bucket_id',
|
|
'bucket_id',
|
|
- 'has_unused').order_by(
|
|
|
|
|
|
+ 'has_unused',
|
|
|
|
+ 'bucket__content').order_by(
|
|
'addTime')
|
|
'addTime')
|
|
if not old_using_uid_bucket.exists():
|
|
if not old_using_uid_bucket.exists():
|
|
return response.json(10013)
|
|
return response.json(10013)
|
|
@@ -205,6 +221,21 @@ class cloudTestView(View):
|
|
UID_Bucket.objects.filter(id=old_using_uid_bucket_id).update(uid=new_uid, has_unused=0)
|
|
UID_Bucket.objects.filter(id=old_using_uid_bucket_id).update(uid=new_uid, has_unused=0)
|
|
StsCrdModel.objects.filter(uid=old_uid).delete() # 删除转出设备stscrd表关联数据
|
|
StsCrdModel.objects.filter(uid=old_uid).delete() # 删除转出设备stscrd表关联数据
|
|
|
|
|
|
|
|
+ # 记录套餐转移日志
|
|
|
|
+ ip = CommonService.get_ip_address(request)
|
|
|
|
+ content = json.loads(json.dumps(request_dict))
|
|
|
|
+ log = {
|
|
|
|
+ 'ip': ip,
|
|
|
|
+ 'user_id': 1,
|
|
|
|
+ 'status': 200,
|
|
|
|
+ 'time': int(time.time()),
|
|
|
|
+ 'url': 'cloudTransfer/mealTransfer',
|
|
|
|
+ 'content': json.dumps(content),
|
|
|
|
+ 'operation': '用户{}的设备{}的套餐{}转移给设备{}'.format(old_deviceInfo_qs[0]['userID__username'], old_uid,
|
|
|
|
+ old_using_uid_bucket[0]['bucket__content'], new_uid),
|
|
|
|
+ }
|
|
|
|
+ LogModel.objects.create(**log)
|
|
|
|
+
|
|
except Exception as e:
|
|
except Exception as e:
|
|
# print(e)
|
|
# print(e)
|
|
return response.json(500, repr(e))
|
|
return response.json(500, repr(e))
|