|
@@ -141,16 +141,17 @@ typedef std::shared_ptr<event_map> event_map_ptr;
|
|
|
struct event_list:single_base<event_list,uint64_t,std::shared_ptr<ya_event>>
|
|
|
{
|
|
|
public:
|
|
|
- ///作为事件map列表的id,方便查找;(ev_type<<32| obj_id)
|
|
|
- static uint64_t to_list_id(uint32_t obj_id, EVENT_TYPE ev_type)
|
|
|
+ ///作为事件map列表的id,方便查找;(ev_type<<48 | obj_type<<40 | obj_id_type<<32 | obj_id)
|
|
|
+ static uint64_t to_list_id(EVENT_TYPE ev_type, OBJECT_TYPE obj_type, int obj_id_type, uint32_t obj_id)
|
|
|
{
|
|
|
- return (static_cast<uint64_t>(ev_type)<<32)|static_cast<uint64_t>(obj_id);
|
|
|
+ return (static_cast<uint64_t>(ev_type)<<48)|(static_cast<uint64_t>(obj_type)<<40)
|
|
|
+ |(static_cast<uint64_t>(obj_id_type)<<32)|static_cast<uint64_t>(obj_id);
|
|
|
}
|
|
|
|
|
|
- ///创建与卡无关的警告
|
|
|
- static event_ptr create_event_not_card(OBJECT_TYPE obj_type, int obj_id, EVENT_TYPE ev_type)
|
|
|
+ ///创建区域警告
|
|
|
+ static event_ptr create_event_area(int area_id, EVENT_TYPE ev_type)
|
|
|
{
|
|
|
- return create_event(obj_type, obj_id, 0, ev_type);
|
|
|
+ return create_event(OT_AREA, area_id, 0, ev_type);
|
|
|
}
|
|
|
|
|
|
///创建与卡有关的警告,需要卡类型
|
|
@@ -179,9 +180,14 @@ public:
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- std::shared_ptr<ya_event> get(uint32_t obj_id, EVENT_TYPE ev_type)
|
|
|
+ std::shared_ptr<ya_event> get_event_card(uint32_t card_id, int card_type, EVENT_TYPE ev_type)
|
|
|
{
|
|
|
- return base::get(to_list_id(obj_id, ev_type));
|
|
|
+ return base::get(to_list_id(ev_type, OT_CARD, card_type, card_id));
|
|
|
+ }
|
|
|
+
|
|
|
+ std::shared_ptr<ya_event> get_event_area(int32_t area_id, EVENT_TYPE ev_type)
|
|
|
+ {
|
|
|
+ return base::get(to_list_id(ev_type, OT_AREA, 0, static_cast<uint32_t>(area_id)));
|
|
|
}
|
|
|
|
|
|
void load_his_data_from_db();
|