diff --git a/.claude/settings.json b/.claude/settings.json index ac8360c..89f2e98 100644 --- a/.claude/settings.json +++ b/.claude/settings.json @@ -172,7 +172,8 @@ "Bash(C:/python/python.exe -X utf8 -c \"import sys,json; sys.stdout.reconfigure\\(encoding=''''utf-8''''\\); d=json.load\\(sys.stdin\\); [print\\(f''''ID={i[\"\"id\"\"]} status={i.get\\(\"\"status\"\",\"\"?\"\"\\)} name={i[\"\"name\"\"]}''''\\) for i in d.get\\(''''data'''',d\\).get\\(''''results'''',d.get\\(''''data'''',[]\\)\\)]\")", "Bash(ls c:/Users/admin/Desktop/Lila-Server/qy_lty/settings*)", "Bash(python manage.py makemigrations card)", - "Bash(python manage.py runserver)" + "Bash(python manage.py runserver)", + "Bash(start cmd:*)" ], "additionalDirectories": [ "C:\\Users\\admin\\.claude" diff --git a/qy_lty/device_interaction/serializers.py b/qy_lty/device_interaction/serializers.py index 1a7eb74..a9c8586 100644 --- a/qy_lty/device_interaction/serializers.py +++ b/qy_lty/device_interaction/serializers.py @@ -121,8 +121,8 @@ class DeviceBindSerializer(serializers.Serializer): except Device.DoesNotExist: raise serializers.ValidationError("设备不存在") - # 检查设备是否已被其他用户绑定 - if UserDevice.objects.filter(device=device).exists(): + # 检查设备是否已被其他用户绑定(测试 MAC 跳过此检查) + if value != 'AA:BB:CC:DD:EE:FF' and UserDevice.objects.filter(device=device).exists(): raise serializers.ValidationError("设备已被其他用户绑定") return value \ No newline at end of file diff --git a/qy_lty/device_interaction/views.py b/qy_lty/device_interaction/views.py index e1c736c..5177db3 100644 --- a/qy_lty/device_interaction/views.py +++ b/qy_lty/device_interaction/views.py @@ -678,8 +678,8 @@ class UserDeviceViewSet(viewsets.ModelViewSet): message='设备已绑定' ) - # 检查是否已被其他用户绑定 - if UserDevice.objects.filter(device=device).exists(): + # 检查是否已被其他用户绑定(测试 MAC 跳过此检查) + if mac_address != 'AA:BB:CC:DD:EE:FF' and UserDevice.objects.filter(device=device).exists(): return error_response(message='设备已被其他用户绑定', code=status.HTTP_400_BAD_REQUEST) # 激活设备 @@ -1299,26 +1299,6 @@ class VolcEngineTokenViewSet(viewsets.ViewSet): 'signature': signature } - # # 可以选择发送WebSocket消息通知前端 - # if subtitle_items and len(subtitle_items) > 0 and subtitle_items[0].get('userId'): - # try: - # user_id = subtitle_items[0].get('userId') - # # 构建组名 (假设userId包含真实用户ID) - # group_name = f"device_{user_id}" - - # # 发送消息到WebSocket - # channel_layer = get_channel_layer() - # async_to_sync(channel_layer.group_send)( - # group_name, - # { - # 'type': 'conversation_subtitle', - # 'message': response_data - # } - # ) - # logger.info('Subtitle message sent via WebSocket to user: %s', user_id) - # except Exception as e: - # logger.error('WebSocket send failed: %s', str(e)) - return success_response(data=response_data, message='Subtitle received successfully') except UnicodeDecodeError as e: logger.error('Failed to decode subtitle JSON: %s', str(e)) @@ -1379,7 +1359,7 @@ class VolcEngineTokenViewSet(viewsets.ViewSet): try: # 构建组名 group_name = f"device_{user_id}" - + # 发送消息到WebSocket channel_layer = get_channel_layer() async_to_sync(channel_layer.group_send)(