event type string

This commit is contained in:
quantulr
2024-01-19 10:08:13 +08:00
parent 1b62a3f33e
commit df72e9b43c
3 changed files with 63 additions and 4 deletions

50
src/event_type.rs Normal file
View File

@ -0,0 +1,50 @@
use std::collections::HashMap;
pub fn get_event_type_map() -> HashMap<i32, String> {
// 创建一个HashMap用于存储事件类型码和对应的事件名称
let mut event_type_map = HashMap::new();
event_type_map.insert(131329, String::from("视频丢失"));
event_type_map.insert(131330, String::from("视频遮挡"));
event_type_map.insert(131331, String::from("移动侦测"));
event_type_map.insert(131612, String::from("场景变更"));
event_type_map.insert(131613, String::from("虚焦"));
event_type_map.insert(589825, String::from("报警输入"));
event_type_map.insert(196355, String::from("可视域事件"));
event_type_map.insert(851969, String::from("GPS采集"));
event_type_map.insert(131588, String::from("区域入侵"));
event_type_map.insert(131585, String::from("越界侦测"));
event_type_map.insert(131586, String::from("进入区域"));
event_type_map.insert(131587, String::from("离开区域"));
event_type_map.insert(131590, String::from("徘徊侦测"));
event_type_map.insert(131593, String::from("人员聚集"));
event_type_map.insert(131592, String::from("快速移动"));
event_type_map.insert(131591, String::from("停车侦测"));
event_type_map.insert(131594, String::from("物品遗留"));
event_type_map.insert(131595, String::from("物品拿取"));
event_type_map.insert(131664, String::from("人数异常"));
event_type_map.insert(131665, String::from("间距异常"));
event_type_map.insert(131596, String::from("剧烈运动"));
event_type_map.insert(131603, String::from("岗位值守"));
event_type_map.insert(131605, String::from("倒地"));
event_type_map.insert(131597, String::from("攀高"));
event_type_map.insert(131666, String::from("人员站立"));
event_type_map.insert(131609, String::from("防风场滞留"));
event_type_map.insert(131598, String::from("起身"));
event_type_map.insert(131599, String::from("人靠近ATM"));
event_type_map.insert(131600, String::from("操作超时"));
event_type_map.insert(131601, String::from("贴纸条"));
event_type_map.insert(131602, String::from("安装读卡器"));
event_type_map.insert(131604, String::from("尾随"));
event_type_map.insert(131606, String::from("声强突变"));
event_type_map.insert(131607, String::from("折线攀高"));
event_type_map.insert(131611, String::from("折线警戒面"));
event_type_map.insert(192518, String::from("温差报警"));
event_type_map.insert(192517, String::from("温度报警"));
event_type_map.insert(192516, String::from("船只检测"));
event_type_map.insert(192515, String::from("火点检测"));
event_type_map.insert(192514, String::from("烟火检测"));
event_type_map.insert(192513, String::from("烟雾检测"));
event_type_map.insert(930335, String::from("高空抛物"));
event_type_map.insert(889196545, String::from("监控点离线"));
event_type_map
}

View File

@ -1,19 +1,28 @@
mod typing;
use axum::http::StatusCode;
use axum::{
routing::{get, post},
Json, Router,
};
use crate::event_type::get_event_type_map;
use typing::EventMessage;
mod event_type;
mod typing;
async fn event_rcv_handle(
Json(form_data): Json<EventMessage>,
) -> Result<String, (StatusCode, String)> {
tokio::spawn(async move {
println!("收到告警,向飞书推送消息");
reqwest::get(format!("https://www.feishu.cn/flow/api/trigger-webhook/31f13dead0bf78fc4bdb51ba23abba9f?title={}&content={}", &form_data.method, &form_data.params.send_time)).await
let event_map = get_event_type_map();
for event in &form_data.params.events {
let event_type = match event_map.get(&event.event_type) {
None => String::from("未知事件类型"),
Some(name) => name.to_string(),
};
let _ = reqwest::get(format!("https://www.feishu.cn/flow/api/trigger-webhook/31f13dead0bf78fc4bdb51ba23abba9f?title={}&content={}", event_type, event.happen_time)).await;
}
});
Ok(String::from("success"))
}

View File

@ -8,7 +8,7 @@ pub struct Event {
#[serde(rename = "eventId")]
pub event_id: String,
#[serde(rename = "eventType")]
pub event_type: i64,
pub event_type: i32,
#[serde(rename = "happenTime")]
pub happen_time: String,
#[serde(rename = "srcIndex")]