|
@@ -1554,19 +1554,15 @@ class serveManagement(View):
|
|
|
# 订单套餐未使用
|
|
|
if old_unusing_uid_bucket.exists():
|
|
|
with transaction.atomic():
|
|
|
- if old_unusing_uid_bucket.filter(is_ai=0).exists():
|
|
|
- old_unusing_uid_bucket.update(uid=new_uid, addTime=nowTime)
|
|
|
- new_unused_uid_bucket = Unused_Uid_Meal.objects.filter(uid=new_uid, addTime=nowTime).values(
|
|
|
- 'id', 'channel', 'bucket_id', 'addTime', 'expire', 'is_ai', 'order_id'
|
|
|
- )
|
|
|
- else:
|
|
|
- new_ai_service = AiService.objects.filter(uid=new_uid, endTime__gte=nowTime, use_status=1)
|
|
|
- if new_ai_service.exists(): # 转入设备有开通AI功能,不能转
|
|
|
- return response.json(10014)
|
|
|
- old_unusing_uid_bucket.update(uid=new_uid, addTime=nowTime)
|
|
|
- new_unused_uid_bucket = Unused_Uid_Meal.objects.filter(uid=new_uid, addTime=nowTime).values(
|
|
|
- 'id', 'channel', 'bucket_id', 'addTime', 'expire', 'is_ai', 'order_id'
|
|
|
- )
|
|
|
+ # 旧设备不包含 ai
|
|
|
+ if old_unusing_uid_bucket.filter(is_ai=1).exists():
|
|
|
+ new_uid_set = UidSetModel.objects.filter(uid=new_uid).values('is_ai')
|
|
|
+ if new_uid_set[0]['is_ai'] == 2:
|
|
|
+ return response.json(10016)
|
|
|
+ old_unusing_uid_bucket.update(uid=new_uid, addTime=nowTime)
|
|
|
+ new_unused_uid_bucket = Unused_Uid_Meal.objects.filter(uid=new_uid, addTime=nowTime).values(
|
|
|
+ 'id', 'channel', 'bucket_id', 'addTime', 'expire', 'is_ai', 'order_id'
|
|
|
+ )
|
|
|
|
|
|
# 转移后如果没有未使用套餐则把 has_unused 改为 0
|
|
|
unused_uid_meal_qs = Unused_Uid_Meal.objects.filter(uid=old_uid)
|
|
@@ -1574,13 +1570,19 @@ class serveManagement(View):
|
|
|
UID_Bucket.objects.filter(uid=old_uid).update(has_unused=0)
|
|
|
|
|
|
# 判断新设备是否有正在使用的套餐
|
|
|
- new_uid_bucket_qs = UID_Bucket.objects.filter(uid=new_uid, endTime__gte=nowTime)
|
|
|
+ new_uid_bucket_qs = UID_Bucket.objects.filter(uid=new_uid, endTime__gte=nowTime, use_status=1)
|
|
|
if new_uid_bucket_qs.exists():
|
|
|
new_uid_bucket_qs.update(has_unused=1)
|
|
|
else:
|
|
|
# 激活转移的套餐
|
|
|
unused = new_unused_uid_bucket[0]
|
|
|
endTime = CommonService.calcMonthLater(unused['expire'])
|
|
|
+ # 判断是否有已过期套餐
|
|
|
+ if UID_Bucket.objects.filter(uid=new_uid).exists():
|
|
|
+ UID_Bucket.objects.filter(uid=new_uid).update(status=1, orderId=orderID, updateTime=nowTime,
|
|
|
+ use_status=1, has_unused=0, endTime=endTime,
|
|
|
+ bucket_id=unused['bucket_id'], channel=unused['channel'],
|
|
|
+ addTime=unused['addTime'])
|
|
|
data_dict = {
|
|
|
'uid': new_uid,
|
|
|
'channel': unused['channel'],
|
|
@@ -1594,14 +1596,19 @@ class serveManagement(View):
|
|
|
'orderId': unused['order_id']
|
|
|
}
|
|
|
UID_Bucket.objects.create(**data_dict) # 正在使用套餐表添加数据
|
|
|
- Unused_Uid_Meal.objects.filter(order_id=orderID).first().delete()
|
|
|
if unused['is_ai']: # 开通AI服务
|
|
|
- AiService.objects.filter(orders_id=orderID).update(
|
|
|
- uid=new_uid, channel=unused['channel'],
|
|
|
- detect_status=new_ai_service[0]['detect_status'],
|
|
|
- addTime=nowTime, updTime=nowTime, endTime=endTime, use_status=1,
|
|
|
- orders_id=unused['order_id']
|
|
|
- )
|
|
|
+ new_aiservice = AiService.objects.filter(uid=new_uid)
|
|
|
+ if new_aiservice.filter(use_status=1 or 0).exists():
|
|
|
+ return response.json(10014)
|
|
|
+ if new_aiservice.exists():
|
|
|
+ new_aiservice.update(channel=unused['channel'], detect_status=1, addTime=nowTime,
|
|
|
+ updTime=nowTime, endTime=endTime, use_status=1, orders_id=unused['order_id'])
|
|
|
+ else:
|
|
|
+ AiService.objects.create(uid=new_uid, channel=unused['channel'], detect_status=1, addTime=nowTime,
|
|
|
+ updTime=nowTime, endTime=endTime, use_status=1, orders_id=unused['order_id'])
|
|
|
+
|
|
|
+ Unused_Uid_Meal.objects.filter(order_id=orderID).first().delete()
|
|
|
+
|
|
|
# 修改订单表
|
|
|
Order_Model.objects.filter(orderID=orderID).update(UID=new_uid, updTime=nowTime)
|
|
|
|
|
@@ -1633,6 +1640,10 @@ class serveManagement(View):
|
|
|
return response.json(10014)
|
|
|
with transaction.atomic():
|
|
|
if is_delete == 1:
|
|
|
+ if AiService.objects.filter(orders_id=orderID).exists():
|
|
|
+ ai_service = AiService.objects.filter(uid=old_uid).first()
|
|
|
+ if ai_service:
|
|
|
+ ai_service.delete()
|
|
|
new_using_uid_bucket.delete()
|
|
|
# 如果转出设备有未使用套餐,更改第一个未使用套餐为正在使用
|
|
|
if old_using_uid_bucket[0]['has_unused'] == 1:
|
|
@@ -1678,7 +1689,7 @@ class serveManagement(View):
|
|
|
detect_group='', detect_interval=60)
|
|
|
msg = {'commandType': 'AIDisable'}
|
|
|
thing_name = CommonService.query_serial_with_uid(old_uid) # 存在序列号则为使用序列号作为物品名
|
|
|
- topic_name = 'ansjer/generic/{}'.format('')
|
|
|
+ topic_name = 'ansjer/generic/{}'.format(thing_name)
|
|
|
req_success = CommonService.req_publish_mqtt_msg(thing_name, topic_name, msg)
|
|
|
if not req_success:
|
|
|
return response.json(10044)
|