Merge branch 'main' into test-clean

# Conflicts:
#	talkingq-url/handlers/mqtt_handler.py
This commit is contained in:
stu2not
2026-05-05 10:30:45 +08:00
8 changed files with 35 additions and 10 deletions

View File

@@ -18,16 +18,19 @@ class DeviceSettingDAO(BaseDAO):
volume: Optional[int] = None,
brightness: Optional[int] = None,
disable_weekdays: Optional[str] = None,
signal: Optional[int] = None,
version: Optional[str] = None,
power: Optional[int] = None,
) -> int:
result = await self.execute(
"""
INSERT INTO device_settings (
device_id, sleep_mode, disable_time_start, disable_time_end,
timezone, volume, brightness, disable_weekdays
timezone, volume, brightness, disable_weekdays, `signal`, `version`, power
)
VALUES (
:device_id, :sleep_mode, :disable_time_start, :disable_time_end,
:timezone, :volume, :brightness, :disable_weekdays
:timezone, :volume, :brightness, :disable_weekdays, :signal, :version, :power
)
""",
{
@@ -39,6 +42,9 @@ class DeviceSettingDAO(BaseDAO):
"volume": volume,
"brightness": brightness,
"disable_weekdays": disable_weekdays,
"signal": signal,
"version": version,
"power": power,
},
)
await self.commit()
@@ -70,6 +76,9 @@ class DeviceSettingDAO(BaseDAO):
volume: Optional[int] = None,
brightness: Optional[int] = None,
disable_weekdays: Optional[str] = None,
signal: Optional[int] = None,
version: Optional[str] = None,
power: Optional[int] = None,
) -> None:
await self.execute(
"""
@@ -80,7 +89,10 @@ class DeviceSettingDAO(BaseDAO):
timezone = COALESCE(:timezone, timezone),
volume = COALESCE(:volume, volume),
brightness = COALESCE(:brightness, brightness),
disable_weekdays = COALESCE(:disable_weekdays, disable_weekdays)
disable_weekdays = COALESCE(:disable_weekdays, disable_weekdays),
`signal` = COALESCE(:signal, `signal`),
`version` = COALESCE(:version, `version`),
power = COALESCE(:power, power)
WHERE device_id = :device_id
""",
{
@@ -92,6 +104,9 @@ class DeviceSettingDAO(BaseDAO):
"volume": volume,
"brightness": brightness,
"disable_weekdays": disable_weekdays,
"signal": signal,
"version": version,
"power": power,
},
)
await self.commit()

View File

@@ -1,4 +1,9 @@
from datetime import UTC, datetime, timedelta
from datetime import datetime, timedelta
try:
from datetime import UTC # Python 3.11+
except ImportError:
from datetime import timezone
UTC = timezone.utc # Python 3.10 及更早版本
import jwt
from fastapi import HTTPException, Request, status

View File

@@ -1,6 +1,11 @@
import asyncio
from dataclasses import dataclass
from datetime import UTC, datetime
from datetime import datetime
try:
from datetime import UTC # Python 3.11+
except ImportError:
from datetime import timezone
UTC = timezone.utc # Python 3.10 及更早版本
from pathlib import Path
from uuid import uuid4

View File

@@ -38,8 +38,8 @@ class DeviceSettingService(DatabaseServiceBase):
volume=volume,
brightness=brightness,
disable_weekdays=disable_weekdays,
signal_strength=signal_strength,
version_str=version_str,
signal=signal_strength,
version=version_str,
)
finally:
await db_session.close()
@@ -79,8 +79,8 @@ class DeviceSettingService(DatabaseServiceBase):
brightness=brightness,
disable_weekdays=disable_weekdays,
power=power,
signal_strength=signal_strength,
version_str=version_str,
signal=signal_strength,
version=version_str,
)
finally:
await db_session.close()

View File

@@ -138,6 +138,7 @@ class TalkingQMQTTService:
async def _handle_nfc_listen_report(self, device_id: str, payload: dict):
params = payload.get("params", {})
nfc_uuid = params.get("uuid")
logger.info(device_id, "", f"[NFC收听] 设备 {device_id} 请求收听留言, UUID={nfc_uuid}")
await self._send_nfc_listen_response(device_id, nfc_uuid)
async def _handle_bind_response(self, device_id: str, payload: dict):
@@ -154,7 +155,6 @@ class TalkingQMQTTService:
if not nfc_uuid:
logger.warning(device_id, "", f"[NFC bind] missing uuid: {payload}")
return
service = BindingService()
result = await service.finalize_nfc_bind(device_id=device_id, card_uuid=nfc_uuid)
if result is None: