Files
video_detect/service/device_action_service.py

44 lines
1.3 KiB
Python
Raw Normal View History

2025-09-30 17:17:20 +08:00
from ds.db import db
from schema.device_action_schema import DeviceActionCreate, DeviceActionResponse
from mysql.connector import Error as MySQLError
# 新增设备操作记录
def add_device_action(client_ip: str, action: int) -> DeviceActionResponse:
"""
新增设备操作记录内部方法非接口
:param action_data: 含client_ip和action0/1
:return: 新增的完整记录
"""
conn = None
cursor = None
try:
conn = db.get_connection()
cursor = conn.cursor(dictionary=True)
# 插入SQLid自增、依赖数据库自动生成
insert_query = """
INSERT INTO device_action
(client_ip, action, created_at, updated_at)
VALUES (%s, %s, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)
"""
cursor.execute(insert_query, (
client_ip,
action
))
conn.commit()
# 获取新增记录通过自增ID查询
new_id = cursor.lastrowid
cursor.execute("SELECT * FROM device_action WHERE id = %s", (new_id,))
new_action = cursor.fetchone()
return DeviceActionResponse(**new_action)
except MySQLError as e:
if conn:
conn.rollback()
raise Exception(f"新增记录失败: {str(e)}") from e
finally:
db.close_connection(conn, cursor)