|
@@ -659,11 +659,33 @@ class SmartSceneView(View):
|
|
if not smart_scene_ids:
|
|
if not smart_scene_ids:
|
|
return response.json(444, {'error param': 'smartSceneIds'})
|
|
return response.json(444, {'error param': 'smartSceneIds'})
|
|
try:
|
|
try:
|
|
- SmartScene.objects.filter(id__in=smart_scene_ids.split(',')).delete()
|
|
|
|
|
|
+ smart_scene_id_list = smart_scene_ids.split(',')
|
|
|
|
+ # 获取序列号
|
|
|
|
+ smart_scene_id = smart_scene_id_list[0]
|
|
|
|
+ smart_scene_qs = SmartScene.objects.filter(id=smart_scene_id).values('device_id', 'sub_device_id')
|
|
|
|
+ device_id = smart_scene_qs[0]['device_id']
|
|
|
|
+ if device_id:
|
|
|
|
+ serial_number = Device_Info.objects.filter(id=device_id).values('serial_number')[0]['serial_number']
|
|
|
|
+ else:
|
|
|
|
+ serial_number = GatewaySubDevice.objects.filter(id=smart_scene_qs[0]['sub_device_id']).\
|
|
|
|
+ values('device__serial_number')[0]['device__serial_number']
|
|
|
|
+ topic_name = 'loocam/gateway_sensor/smart_scene/{}'.format(serial_number)
|
|
|
|
+ with transaction.atomic():
|
|
|
|
+ SmartScene.objects.filter(id__in=smart_scene_id_list).delete()
|
|
|
|
+ for smart_scene_id in smart_scene_id_list:
|
|
|
|
+ # 通知设备删除场景id
|
|
|
|
+ msg = {
|
|
|
|
+ 'smart_scene_delete': smart_scene_id
|
|
|
|
+ }
|
|
|
|
+ success = CommonService.req_publish_mqtt_msg(serial_number, topic_name, msg)
|
|
|
|
+ try:
|
|
|
|
+ assert success
|
|
|
|
+ except AssertionError:
|
|
|
|
+ return response.json(10044)
|
|
|
|
+ time.sleep(0.3)
|
|
|
|
+ return response.json(0)
|
|
except Exception as e:
|
|
except Exception as e:
|
|
return response.json(500, repr(e))
|
|
return response.json(500, repr(e))
|
|
- else:
|
|
|
|
- return response.json(0)
|
|
|
|
|
|
|
|
@staticmethod
|
|
@staticmethod
|
|
def scene_log(request_dict, response):
|
|
def scene_log(request_dict, response):
|