Browse Source

修改区域内车辆数量告警bug

zzj 6 years ago
parent
commit
c3371f0912
1 changed files with 60 additions and 57 deletions
  1. 60 57
      module_service/area_business_count_checker.cpp

+ 60 - 57
module_service/area_business_count_checker.cpp

@@ -14,59 +14,62 @@
 //服务器重启加载数据
 void area_business_count_checker::on_load_his(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data>&ptr)
 {
-    if (nullptr == a->m_area )
-        return ;
-    if (c->is_person() && !a->m_area->m_event_person_count)
-    {
-        EVENT_TYPE ev = a->m_area->is_mine()?EVENT_TYPE::ET_OVER_COUNT_PERSON : EVENT_TYPE::ET_AREA_OVER_COUNT_PERSON ;
-        auto ev_ptr_temp = event_list::instance()->get_event_area(a->m_area->id(),ev);
-        if (ev_ptr_temp && !ev_ptr_temp->is_end())
-            a->m_area->m_event_person_count = true;
+	if (nullptr == a->m_area )
+		return ;
+	if (c->is_person() && !a->m_area->m_event_person_count)
+	{
+		EVENT_TYPE ev = a->m_area->is_mine()?EVENT_TYPE::ET_OVER_COUNT_PERSON : EVENT_TYPE::ET_AREA_OVER_COUNT_PERSON ;
+		auto ev_ptr_temp = event_list::instance()->get_event_area(a->m_area->id(),ev);
+		if (ev_ptr_temp && !ev_ptr_temp->is_end())
+			a->m_area->m_event_person_count = true;
 
-    }
-    else if (c->is_vehicle() && !a->m_area->m_event_vehicle_count)
-    {
-        EVENT_TYPE ev = a->m_area->is_mine()?EVENT_TYPE::ET_OVER_COUNT_VEHICLE : EVENT_TYPE::ET_AREA_OVER_COUNT_VEHICLE ;
-        auto ev_ptr_temp = event_list::instance()->get_event_area(a->m_area->id(),ev);
-        if (ev_ptr_temp && !ev_ptr_temp->is_end())
-        {
-            a->m_area->m_event_vehicle_count = true;
-        }
-    }
-    on_enter(a,c,ptr);
+	}
+	else if (c->is_vehicle() && !a->m_area->m_event_vehicle_count)
+	{
+		EVENT_TYPE ev = a->m_area->is_mine()?EVENT_TYPE::ET_OVER_COUNT_VEHICLE : EVENT_TYPE::ET_AREA_OVER_COUNT_VEHICLE ;
+		auto ev_ptr_temp = event_list::instance()->get_event_area(a->m_area->id(),ev);
+		if (ev_ptr_temp && !ev_ptr_temp->is_end())
+		{
+			a->m_area->m_event_vehicle_count = true;
+		}
+	}
+	on_enter(a,c,ptr);
 }
 
 //增加计数,并进行判断
 void area_business_count_checker::on_enter(const std::shared_ptr<area_hover>&a,
 						const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data>&ptr)
 {
-    if (nullptr == a->m_area )//|| !a->m_area->is_mine())
-    {
-        return ;
-    }
+	if (nullptr == a->m_area )//|| !a->m_area->is_mine())
+	{
+		return ;
+	}
 	if (c->is_person())
 	{
 		a->m_area->m_person_count ++ ;
 		if (!a->m_area->m_event_person_count && a->m_area->m_person_count > a->m_area->m_limit_person_count)
-        {
-            a->m_area->m_event_person_count = true;
-            EVENT_TYPE ev = a->m_area->is_mine()?EVENT_TYPE::ET_OVER_COUNT_PERSON : EVENT_TYPE::ET_AREA_OVER_COUNT_PERSON ;
-            event_tool::instance()->handle_event(OT_AREA,ev,a->m_area->id(),a->m_area->m_limit_person_count,a->m_area->m_person_count,true);
-            log_info("area_business_count_checker::on_enter : Event OVER_COUNT=%d AreaId=%d,Limit=%d,CurNum=%d"
-            ,ev,a->m_area->id(),a->m_area->m_limit_person_count,(int)a->m_area->m_person_count);
-        }
+		{
+			a->m_area->m_event_person_count = true;
+			EVENT_TYPE ev = a->m_area->is_mine()?EVENT_TYPE::ET_OVER_COUNT_PERSON : EVENT_TYPE::ET_AREA_OVER_COUNT_PERSON ;
+			event_tool::instance()->handle_event(OT_AREA,ev,a->m_area->id(),a->m_area->m_limit_person_count,a->m_area->m_person_count,true);
+			log_info("area_business_count_checker::on_enter : Event OVER_COUNT=%d AreaId=%d,Limit=%d,CurNum=%d"
+					,ev,a->m_area->id(),a->m_area->m_limit_person_count,(int)a->m_area->m_person_count);
+		}
 	}
 	else if (c->is_vehicle())
 	{
-        a->m_area->m_vehicle_count ++ ;
-        if (a->m_area->m_vehicle_count > a->m_area->m_limit_vehicle_count && !a->m_area->m_event_vehicle_count)
-        {
-            a->m_area->m_event_vehicle_count = true;
-            EVENT_TYPE ev = a->m_area->is_mine()?EVENT_TYPE::ET_OVER_COUNT_PERSON : EVENT_TYPE::ET_AREA_OVER_COUNT_PERSON ;
-            event_tool::instance()->handle_event(OT_AREA,ev,a->m_area->id(),a->m_area->m_limit_vehicle_count,a->m_area->m_vehicle_count,true);
-            log_info("area_business_count_checker::on_enter : Event OVER_COUNT=%d AreaId=%d,Limit=%d,CurNum=%d"
-            ,ev,a->m_area->id(),a->m_area->m_limit_vehicle_count,(int)a->m_area->m_vehicle_count);
-        }
+		a->m_area->m_vehicle_count ++ ;
+
+		log_info("area_id:%d,v_count:%d",a->m_area->m_id,a->m_area->m_vehicle_count.load());
+
+		if (a->m_area->m_vehicle_count > a->m_area->m_limit_vehicle_count && !a->m_area->m_event_vehicle_count)
+		{
+			a->m_area->m_event_vehicle_count = true;
+			EVENT_TYPE ev = a->m_area->is_mine()?EVENT_TYPE::ET_OVER_COUNT_VEHICLE : EVENT_TYPE::ET_AREA_OVER_COUNT_VEHICLE ;
+			event_tool::instance()->handle_event(OT_AREA,ev,a->m_area->id(),a->m_area->m_limit_vehicle_count,a->m_area->m_vehicle_count,true);
+			log_info("area_business_count_checker::on_enter : Event OVER_COUNT=%d AreaId=%d,Limit=%d,CurNum=%d"
+					,ev,a->m_area->id(),a->m_area->m_limit_vehicle_count,(int)a->m_area->m_vehicle_count);
+		}
 	}
 }
 
@@ -79,10 +82,10 @@ void area_business_count_checker::on_hover(const std::shared_ptr<area_hover>&a,
 void area_business_count_checker::on_leave(const std::shared_ptr<area_hover>&a,
 						const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr)
 {
-    if (nullptr == a->m_area )
-    {
-        return ;
-    }
+	if (nullptr == a->m_area )
+	{
+		return ;
+	}
 	int limitVal = 0;
 	int curVal = 0;
 	bool tmp_event = false;
@@ -94,13 +97,13 @@ void area_business_count_checker::on_leave(const std::shared_ptr<area_hover>&a,
 		curVal = a->m_area->m_person_count;
 		tmp_event = a->m_area->m_event_person_count;
 		ev = a->m_area->is_mine()?EVENT_TYPE::ET_OVER_COUNT_PERSON : EVENT_TYPE::ET_AREA_OVER_COUNT_PERSON ;
-        if(tmp_event && curVal < limitVal)
-        {
-            a->m_area->m_event_person_count = false;
-            log_info("area_business_count_checker::on_leave :Cancel Event OVER_COUNT=%d AreaId=%d,Limit=%d,CurNum=%d"
-            ,ev,a->m_area->id(),limitVal,curVal);
-            event_tool::instance()->handle_event(OT_AREA,ev,a->m_area->id(),limitVal,curVal,false);
-        }
+		if(tmp_event && curVal < limitVal)
+		{
+			a->m_area->m_event_person_count = false;
+			log_info("area_business_count_checker::on_leave :Cancel Event OVER_COUNT=%d AreaId=%d,Limit=%d,CurNum=%d"
+					,ev,a->m_area->id(),limitVal,curVal);
+			event_tool::instance()->handle_event(OT_AREA,ev,a->m_area->id(),limitVal,curVal,false);
+		}
 	}
 	else if (c->is_vehicle())
 	{
@@ -109,13 +112,13 @@ void area_business_count_checker::on_leave(const std::shared_ptr<area_hover>&a,
 		curVal = a->m_area->m_vehicle_count;
 		tmp_event = a->m_area->m_event_vehicle_count;
 		ev = a->m_area->is_mine()?EVENT_TYPE::ET_OVER_COUNT_VEHICLE : EVENT_TYPE::ET_AREA_OVER_COUNT_VEHICLE ;
-        if(tmp_event && curVal < limitVal)
-        {
-            a->m_area->m_event_vehicle_count = false;
-            log_info("area_business_count_checker::on_leave :Cancel Event OVER_COUNT=%d AreaId=%d,Limit=%d,CurNum=%d"
-            ,ev,a->m_area->id(),limitVal,curVal);
-            event_tool::instance()->handle_event(OT_AREA,ev,a->m_area->id(),limitVal,curVal,false);
-        }
+		if(tmp_event && curVal < limitVal)
+		{
+			a->m_area->m_event_vehicle_count = false;
+			log_info("area_business_count_checker::on_leave :Cancel Event OVER_COUNT=%d AreaId=%d,Limit=%d,CurNum=%d"
+					,ev,a->m_area->id(),limitVal,curVal);
+			event_tool::instance()->handle_event(OT_AREA,ev,a->m_area->id(),limitVal,curVal,false);
+		}
 	}
 }