diff --git a/xumu.py b/xumu.py index 106c7c6..43e84ab 100644 --- a/xumu.py +++ b/xumu.py @@ -24,6 +24,7 @@ class BaseResponse(BaseModel): async def video_query(username): return BaseResponse(data=get_video_url(username)) + # 报警数据接口 @app.get("/api/xumu/warning") async def get_warning(deviceId): @@ -228,6 +229,7 @@ async def register(request: Request): except Exception as e: return BaseResponse(code=500, msg=str(e)) + # 数据发布接口 async def message_publish(data): try: @@ -328,7 +330,7 @@ async def process_data(request: Request): return BaseResponse(code=500, msg=str(e)) -# 监测数据最近7天的数据 +# 报警数据最近7天的数据 @app.get("/api/xumu/warning/past_seven_days") async def past_seven_days(deviceId): try: @@ -346,5 +348,28 @@ async def past_seven_days(deviceId): return BaseResponse(code=500, msg=str(e)) +# 报警数据统计接口 +@app.get("/api/xumu/warning/statistics") +async def warning_statistics(deviceId): + try: + if deviceId is None or deviceId == "" or len(deviceId) != 4: + return BaseResponse(code=500, msg="参数错误") + sql_for_count = f"select count(iccid) from root.warning.{deviceId}" + send_json = { + "sql": sql_for_count + } + r = requests.post(baseHost + queryUri, headers=headers, json=send_json) + data = r.json() + values = data["values"] + total_count = 0 + today_count = 0 + if len(values) != 0: + total_count = len(values[0]) + return_data = {"totoal_count": total_count, "today_count": today_count} + return BaseResponse(data=return_data) + except Exception as e: + return BaseResponse(code=500, msg=str(e)) + + if __name__ == '__main__': uvicorn.run(app, host="0.0.0.0", port=8002)