|
@@ -8,7 +8,7 @@ import requests
|
|
|
import simplejson as json
|
|
|
from django.utils import timezone
|
|
|
from Model.models import Device_User, Device_Info, UID_Bucket, UID_Preview, UidSetModel, UidPushModel, \
|
|
|
- UIDCompanySerialModel, iotdeviceInfoModel, UIDMainUser, UidChannelSetModel
|
|
|
+ UIDCompanySerialModel, iotdeviceInfoModel, UIDMainUser, UidChannelSetModel, LogModel
|
|
|
from django.db.models import Q
|
|
|
from Object.ResponseObject import ResponseObject
|
|
|
from Object.TokenObject import TokenObject
|
|
@@ -796,39 +796,49 @@ def deleteInterface(request):
|
|
|
return response.json(309)
|
|
|
try:
|
|
|
dv_qs = Device_Info.objects.filter(userID_id=userID, id=id)
|
|
|
- if dv_qs.exists():
|
|
|
- uid = dv_qs[0].UID
|
|
|
- asy = threading.Thread(target=ModelService.delete_log,
|
|
|
- args=(CommonService.get_ip_address(request), userID, 'deleteV2', uid))
|
|
|
- asy.start()
|
|
|
- if userID == dv_qs[0].vodPrimaryUserID:
|
|
|
- Device_Info.objects.filter(UID=uid).update(vodPrimaryUserID='', vodPrimaryMaster='')
|
|
|
+ if not dv_qs.exists():
|
|
|
+ return response.json(14)
|
|
|
+ uid = dv_qs[0].UID
|
|
|
+ if userID == dv_qs[0].vodPrimaryUserID:
|
|
|
+ Device_Info.objects.filter(UID=uid).update(vodPrimaryUserID='', vodPrimaryMaster='')
|
|
|
|
|
|
- if dv_qs[0].isShare:
|
|
|
- dv_qs.delete()
|
|
|
- else:
|
|
|
- # a.主用户删除设备
|
|
|
- dv_qs.delete()
|
|
|
- # 删除设备影子信息uid_set 外键关联删除设备推送配置信息 uid_push
|
|
|
- up_qs = UidPushModel.objects.filter(uid_set__uid=uid)
|
|
|
- DetectControllerView().do_delete_redis(uid)
|
|
|
- if up_qs.count() > 1:
|
|
|
- UidPushModel.objects.filter(uid_set__uid=uid, userID_id=userID).delete()
|
|
|
- redisObj = RedisObject(db=6, SERVER_HOST=PUSH_REDIS_ADDRESS)
|
|
|
- ykey = '{uid}_redis_qs'.format(uid=uid)
|
|
|
- if ykey:
|
|
|
- redisObj.del_data(key=ykey)
|
|
|
- else:
|
|
|
- up_qs.delete()
|
|
|
- # b.删除次用户设备
|
|
|
- Device_Info.objects.filter(UID=uid, isShare=True, primaryUserID=userID).delete()
|
|
|
- # 异步删除推送消息
|
|
|
- asy = threading.Thread(target=ModelService.del_eq_info, args=(userID, uid))
|
|
|
- asy.start()
|
|
|
- # redisObj = RedisObject(db=8)
|
|
|
- # redisObj.del_data(key='uid_qs_' + userID)
|
|
|
+ if dv_qs[0].isShare:
|
|
|
+ dv_qs.delete()
|
|
|
else:
|
|
|
- return response.json(14)
|
|
|
+ # a.主用户删除设备
|
|
|
+ dv_qs.delete()
|
|
|
+ # 删除设备影子信息uid_set 外键关联删除设备推送配置信息 uid_push
|
|
|
+ up_qs = UidPushModel.objects.filter(uid_set__uid=uid)
|
|
|
+ DetectControllerView().do_delete_redis(uid)
|
|
|
+ if up_qs.count() > 1:
|
|
|
+ UidPushModel.objects.filter(uid_set__uid=uid, userID_id=userID).delete()
|
|
|
+ redisObj = RedisObject(db=6, SERVER_HOST=PUSH_REDIS_ADDRESS)
|
|
|
+ ykey = '{uid}_redis_qs'.format(uid=uid)
|
|
|
+ if ykey:
|
|
|
+ redisObj.del_data(key=ykey)
|
|
|
+ else:
|
|
|
+ up_qs.delete()
|
|
|
+ # b.删除次用户设备
|
|
|
+ Device_Info.objects.filter(UID=uid, isShare=True, primaryUserID=userID).delete()
|
|
|
+ # 异步删除推送消息
|
|
|
+ asy = threading.Thread(target=ModelService.del_eq_info, args=(userID, uid))
|
|
|
+ asy.start()
|
|
|
+
|
|
|
+ # 记录操作日志
|
|
|
+ now_time = int(time.time())
|
|
|
+ ip = CommonService.get_ip_address(request)
|
|
|
+ content = json.loads(json.dumps(request_dict))
|
|
|
+ log = {
|
|
|
+ 'ip': ip,
|
|
|
+ 'user_id': userID,
|
|
|
+ 'status': 200,
|
|
|
+ 'time': now_time,
|
|
|
+ 'content': json.dumps(content),
|
|
|
+ 'url': 'equipment/delete',
|
|
|
+ 'operation': '删除设备,uid:{}'.format(uid),
|
|
|
+ }
|
|
|
+ LogModel.objects.create(**log)
|
|
|
+
|
|
|
except Exception as e:
|
|
|
errorInfo = traceback.format_exc()
|
|
|
print('删除数据库记录错误: %s' % errorInfo)
|
|
@@ -868,11 +878,10 @@ def batchDeleteInterface(request):
|
|
|
deviceInfo_qs = Device_Info.objects.filter(userID_id=userID, id__in=ids.split(','))
|
|
|
if not deviceInfo_qs.exists():
|
|
|
return response.json(14)
|
|
|
+ uid_list = []
|
|
|
for deviceInfo in deviceInfo_qs:
|
|
|
uid = deviceInfo.UID
|
|
|
- asy = threading.Thread(target=ModelService.delete_log,
|
|
|
- args=(CommonService.get_ip_address(request), userID, 'deleteV2', uid))
|
|
|
- asy.start()
|
|
|
+ uid_list.append(uid)
|
|
|
if userID == deviceInfo.vodPrimaryUserID:
|
|
|
Device_Info.objects.filter(UID=uid).update(vodPrimaryUserID='', vodPrimaryMaster='')
|
|
|
|
|
@@ -892,9 +901,24 @@ def batchDeleteInterface(request):
|
|
|
up_qs.delete()
|
|
|
# b.删除次用户设备
|
|
|
Device_Info.objects.filter(UID=uid, isShare=True, primaryUserID=userID).delete()
|
|
|
- # 异步删除推送消息
|
|
|
+ # 异步删除推送消息
|
|
|
asy = threading.Thread(target=ModelService.del_eq_info, args=(userID, uid))
|
|
|
asy.start()
|
|
|
+
|
|
|
+ # 记录操作日志
|
|
|
+ now_time = int(time.time())
|
|
|
+ ip = CommonService.get_ip_address(request)
|
|
|
+ content = json.loads(json.dumps(request_dict))
|
|
|
+ log = {
|
|
|
+ 'ip': ip,
|
|
|
+ 'user_id': userID,
|
|
|
+ 'status': 200,
|
|
|
+ 'time': now_time,
|
|
|
+ 'content': json.dumps(content),
|
|
|
+ 'url': 'equipment/batchDelete',
|
|
|
+ 'operation': '批量删除设备,uid:{}'.format(uid_list),
|
|
|
+ }
|
|
|
+ LogModel.objects.create(**log)
|
|
|
except Exception as e:
|
|
|
errorInfo = traceback.format_exc()
|
|
|
print('删除数据库记录错误: %s' % errorInfo)
|