from . import api from web.common.utils import login_required from quart import jsonify, request from core.DBManager import mDBM @api.route('/warn/search_warn',methods=['POST']) @login_required async def warn_get(): #新增算法 #获取查询参数 json_data = await request.get_json() s_count = json_data.get('s_count','') e_count = json_data.get('e_count','') model_name = json_data.get('model_name','') channel_id = json_data.get('channel_id','') start_time = json_data.get('start_time','') end_time = json_data.get('end_time','') # 动态拼接 SQL 语句 sql = "SELECT * FROM warn WHERE 1=1" if model_name: sql += f" AND model_name = {model_name}" if channel_id: sql += f" AND channel_id = {channel_id}" if start_time and end_time: sql += f" AND creat_time BETWEEN {start_time} AND {end_time}" # 增加倒序排列和分页 sql += f" ORDER BY creat_time DESC LIMIT {e_count} OFFSET {s_count}" # 使用SQLAlchemy执行查询 try: print(sql) data = mDBM.do_select(sql) # 将数据转换为JSON格式返回给前端 warn_list = [{"ID": warn[0], "model_name": warn[1], "video_path": warn[2], "img_path": warn[3], "creat_time": warn[4], "channel_id": warn[5]} for warn in data] return jsonify(warn_list) except Exception as e: return jsonify({"error": str(e)}), 500