|
@@ -116,7 +116,7 @@ class cloudTestView(View):
|
|
return response.json(10011)
|
|
return response.json(10011)
|
|
|
|
|
|
# 查询转出设备正在使用的套餐
|
|
# 查询转出设备正在使用的套餐
|
|
- old_using_uid_bucket = UID_Bucket.objects.filter(uid=old_uid, endTime__gte=nowTime).values('id').order_by('addTime')
|
|
|
|
|
|
+ old_using_uid_bucket = UID_Bucket.objects.filter(uid=old_uid, endTime__gte=nowTime).values('id','has_unused').order_by('addTime')
|
|
if not old_using_uid_bucket.exists():
|
|
if not old_using_uid_bucket.exists():
|
|
return response.json(10013)
|
|
return response.json(10013)
|
|
|
|
|
|
@@ -130,22 +130,45 @@ class cloudTestView(View):
|
|
if payType == 10 or payType == 11:
|
|
if payType == 10 or payType == 11:
|
|
return response.json(10012)
|
|
return response.json(10012)
|
|
|
|
|
|
- # 查询转入设备正在使用的套餐
|
|
|
|
|
|
+ # 查询转入设备是否存在正在使用的套餐和未使用的套餐
|
|
new_using_uid_bucket = UID_Bucket.objects.filter(uid=new_uid, endTime__gte=nowTime)
|
|
new_using_uid_bucket = UID_Bucket.objects.filter(uid=new_uid, endTime__gte=nowTime)
|
|
new_unused_uid_bucket = Unused_Uid_Meal.objects.filter(uid=new_uid)
|
|
new_unused_uid_bucket = Unused_Uid_Meal.objects.filter(uid=new_uid)
|
|
- new_unused_id_list = new_unused_uid_bucket.values_list("id", flat=True)
|
|
|
|
if new_using_uid_bucket.exists() or new_unused_uid_bucket.exists():
|
|
if new_using_uid_bucket.exists() or new_unused_uid_bucket.exists():
|
|
return response.json(10014)
|
|
return response.json(10014)
|
|
|
|
|
|
|
|
+ # 如果转出设备有未使用套餐,更改第一个未使用套餐为正在使用
|
|
|
|
+ if old_using_uid_bucket[0]['has_unused'] == 1:
|
|
|
|
+ old_unused_uid_bucket = Unused_Uid_Meal.objects.filter(uid=old_uid).values('id', 'channel', 'bucket_id', 'addTime', 'expire', 'num')
|
|
|
|
+ count = old_unused_uid_bucket.count()
|
|
|
|
+ has_unused = 1 if count>1 else 0 # 如果存在不止一个未使用套餐,has_unused=1
|
|
|
|
+ channel = old_unused_uid_bucket[0]['channel']
|
|
|
|
+ bucket_id = old_unused_uid_bucket[0]['bucket_id']
|
|
|
|
+ addTime = old_unused_uid_bucket[0]['addTime']
|
|
|
|
+ expire = old_unused_uid_bucket[0]['expire']
|
|
|
|
+ num = old_unused_uid_bucket[0]['num']
|
|
|
|
+ endTime = nowTime + expire*num*24*60*60 # 套餐结束时间:当前时间算起到,加上存储桶月份时长*个数
|
|
|
|
+ data_dict = {
|
|
|
|
+ 'uid': old_uid,
|
|
|
|
+ 'channel': channel,
|
|
|
|
+ 'bucket_id': bucket_id,
|
|
|
|
+ 'addTime': addTime,
|
|
|
|
+ 'endTime': endTime,
|
|
|
|
+ 'updateTime': nowTime,
|
|
|
|
+ 'status': 1,
|
|
|
|
+ 'use_status': 1,
|
|
|
|
+ 'has_unused': has_unused
|
|
|
|
+ }
|
|
|
|
+ UID_Bucket.objects.create(**data_dict) # 正在使用套餐表添加数据
|
|
|
|
+ Unused_Uid_Meal.objects.filter(uid=old_uid).first().delete() # 删除未使用套餐表中的数据
|
|
|
|
+
|
|
with transaction.atomic():
|
|
with transaction.atomic():
|
|
- # 更新所有设备主用户信息
|
|
|
|
|
|
+ # 更新转入设备的主用户信息
|
|
Device_Info.objects.filter(UID=new_uid).update(vodPrimaryUserID=vodPrimaryUserID, vodPrimaryMaster=vodPrimaryMaster)
|
|
Device_Info.objects.filter(UID=new_uid).update(vodPrimaryUserID=vodPrimaryUserID, vodPrimaryMaster=vodPrimaryMaster)
|
|
- # vod_uid_bucket表更新uid
|
|
|
|
|
|
+ # 更新正在使用套餐的uid,重置拥有未使用套餐
|
|
old_using_uid_bucket_id = old_using_uid_bucket[0]['id']
|
|
old_using_uid_bucket_id = old_using_uid_bucket[0]['id']
|
|
- UID_Bucket.objects.filter(id=old_using_uid_bucket_id).update(uid=new_uid)
|
|
|
|
- Unused_Uid_Meal.objects.filter(id__in=list(new_unused_id_list)).update(uid=new_uid) # 更新过期云存关联套餐状态
|
|
|
|
- # 删除转出设备stscrd表关联数据
|
|
|
|
- StsCrdModel.objects.filter(uid=old_uid).delete()
|
|
|
|
|
|
+ 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表关联数据
|
|
|
|
+
|
|
except Exception as e:
|
|
except Exception as e:
|
|
# print(e)
|
|
# print(e)
|
|
return response.json(500, repr(e))
|
|
return response.json(500, repr(e))
|