|
@@ -776,13 +776,12 @@ def admin_modifyInterface(request):
|
|
return response.json(0, res)
|
|
return response.json(0, res)
|
|
|
|
|
|
|
|
|
|
-# 新删除设备
|
|
|
|
def deleteInterface(request):
|
|
def deleteInterface(request):
|
|
- '''
|
|
|
|
- 删除用户设备
|
|
|
|
- :param request:
|
|
|
|
- :return:
|
|
|
|
- '''
|
|
|
|
|
|
+ """
|
|
|
|
+ 删除设备
|
|
|
|
+ @param request: 请求体
|
|
|
|
+ @return: response
|
|
|
|
+ """
|
|
response = ResponseObject()
|
|
response = ResponseObject()
|
|
request.encoding = 'utf-8'
|
|
request.encoding = 'utf-8'
|
|
if request.method == 'POST':
|
|
if request.method == 'POST':
|
|
@@ -791,18 +790,20 @@ def deleteInterface(request):
|
|
request_dict = request.GET
|
|
request_dict = request.GET
|
|
else:
|
|
else:
|
|
return response.json(444)
|
|
return response.json(444)
|
|
|
|
+
|
|
token = request_dict.get('token', None)
|
|
token = request_dict.get('token', None)
|
|
id = request_dict.get('id', None)
|
|
id = request_dict.get('id', None)
|
|
- if not id:
|
|
|
|
- return response.json(444, 'id')
|
|
|
|
|
|
+ if not all([token, id]):
|
|
|
|
+ return response.json(444)
|
|
|
|
+
|
|
tko = TokenObject(token)
|
|
tko = TokenObject(token)
|
|
response.lang = tko.lang
|
|
response.lang = tko.lang
|
|
if tko.code != 0:
|
|
if tko.code != 0:
|
|
return response.json(tko.code)
|
|
return response.json(tko.code)
|
|
userID = tko.userID
|
|
userID = tko.userID
|
|
- # 主用户删除设备全部删除
|
|
|
|
if not userID:
|
|
if not userID:
|
|
return response.json(309)
|
|
return response.json(309)
|
|
|
|
+
|
|
try:
|
|
try:
|
|
with transaction.atomic():
|
|
with transaction.atomic():
|
|
dv_qs = Device_Info.objects.filter(userID_id=userID, id=id)
|
|
dv_qs = Device_Info.objects.filter(userID_id=userID, id=id)
|
|
@@ -810,32 +811,29 @@ def deleteInterface(request):
|
|
return response.json(14)
|
|
return response.json(14)
|
|
uid = dv_qs[0].UID
|
|
uid = dv_qs[0].UID
|
|
serial_number = dv_qs[0].serial_number
|
|
serial_number = dv_qs[0].serial_number
|
|
- if userID == dv_qs[0].vodPrimaryUserID:
|
|
|
|
- Device_Info.objects.filter(UID=uid).update(vodPrimaryUserID='', vodPrimaryMaster='')
|
|
|
|
|
|
|
|
- up_qs = UidPushModel.objects.filter(uid_set__uid=uid)
|
|
|
|
- if dv_qs[0].isShare:
|
|
|
|
- DeviceShareView.del_device_channel_permission(userID, uid)
|
|
|
|
|
|
+ del_channel_permission_user_id = ''
|
|
|
|
+ # 主用户删除
|
|
|
|
+ if userID == dv_qs[0].vodPrimaryUserID:
|
|
|
|
+ user_id_list = Device_Info.objects.filter(UID=uid).values_list('userID_id', flat=True)
|
|
|
|
+ Device_Info.objects.filter(UID=uid).delete()
|
|
|
|
+ UidPushModel.objects.filter(uid_set__uid=uid).delete()
|
|
|
|
+ # 异步删除推送消息
|
|
|
|
+ asy = threading.Thread(target=ModelService.del_user_list_eq_info, args=(user_id_list, uid))
|
|
|
|
+ asy.start()
|
|
else:
|
|
else:
|
|
- # a.主用户删除设备
|
|
|
|
- # 删除设备影子信息uid_set 外键关联删除设备推送配置信息 uid_push
|
|
|
|
- DetectControllerView().do_delete_redis(uid)
|
|
|
|
- if up_qs.count() > 1:
|
|
|
|
- redisObj = RedisObject()
|
|
|
|
- ykey = '{uid}_redis_qs'.format(uid=uid)
|
|
|
|
- if ykey:
|
|
|
|
- redisObj.del_data(key=ykey)
|
|
|
|
- # b.删除次用户设备
|
|
|
|
- Device_Info.objects.filter(UID=uid, isShare=True, primaryUserID=userID).delete()
|
|
|
|
- DeviceShareView.del_device_channel_permission('', uid)
|
|
|
|
- up_qs.delete()
|
|
|
|
- dv_qs.delete()
|
|
|
|
|
|
+ Device_Info.objects.filter(UID=uid, userID_id=userID).delete()
|
|
|
|
+ UidPushModel.objects.filter(uid_set__uid=uid, userID_id=userID).delete()
|
|
|
|
+ # 异步删除推送消息
|
|
|
|
+ asy = threading.Thread(target=ModelService.del_eq_info, args=(userID, uid))
|
|
|
|
+ asy.start()
|
|
|
|
+ if dv_qs[0].isShare:
|
|
|
|
+ del_channel_permission_user_id = userID
|
|
|
|
+ DeviceShareView.del_device_channel_permission(userID, uid)
|
|
|
|
+
|
|
if not serial_number:
|
|
if not serial_number:
|
|
serial_number = CommonService.query_serial_with_uid(uid)
|
|
serial_number = CommonService.query_serial_with_uid(uid)
|
|
del_unicom_info(userID, serial_number)
|
|
del_unicom_info(userID, serial_number)
|
|
- # 异步删除推送消息
|
|
|
|
- asy = threading.Thread(target=ModelService.del_eq_info, args=(userID, uid))
|
|
|
|
- asy.start()
|
|
|
|
|
|
|
|
# 记录操作日志
|
|
# 记录操作日志
|
|
now_time = int(time.time())
|
|
now_time = int(time.time())
|
|
@@ -851,12 +849,10 @@ def deleteInterface(request):
|
|
'operation': '{}删除设备,uid:{}'.format(userID, uid),
|
|
'operation': '{}删除设备,uid:{}'.format(userID, uid),
|
|
}
|
|
}
|
|
LogModel.objects.create(**log)
|
|
LogModel.objects.create(**log)
|
|
- except Exception as e:
|
|
|
|
- errorInfo = traceback.format_exc()
|
|
|
|
- print('删除数据库记录错误: %s' % errorInfo)
|
|
|
|
- return response.json(176, repr(e))
|
|
|
|
- else:
|
|
|
|
|
|
+
|
|
return response.json(0)
|
|
return response.json(0)
|
|
|
|
+ except Exception as e:
|
|
|
|
+ return response.json(176, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
|
|
|
|
|
|
|
|
def del_unicom_info(user_id, serial_no):
|
|
def del_unicom_info(user_id, serial_no):
|