1
0
lixioayao 6 роки тому
батько
коміт
68c5d79c96

+ 2 - 4
module_service/area_business_count_checker.cpp

@@ -14,10 +14,8 @@
 //服务器重启加载数据
 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 )//|| !a->m_area->is_mine())
-    {
+    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 ;
@@ -81,7 +79,7 @@ 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 )//|| !a->m_area->is_mine())
+    if (nullptr == a->m_area )
     {
         return ;
     }

+ 16 - 52
module_service/area_business_person_dwell_checker.cpp

@@ -23,71 +23,44 @@ struct SPersonDwellChecker : business_data
 //服务器重启加载数据
 void area_business_person_dwell_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(!c->is_person())
+      return;
     std::shared_ptr<SPersonDwellChecker> p = std::make_shared<SPersonDwellChecker>();
-    p->m_send_event = false;
     ptr = p;
-    EVENT_TYPE evType = EVENT_TYPE::ET_CARD_OVER_TIME_PERSON;
-    if(c->is_person())
-    {
-        evType = a->m_area->is_mine() ? EVENT_TYPE::ET_CARD_OVER_TIME_PERSON : EVENT_TYPE::ET_CARD_AREA_OVER_TIME_PERSON;
-    }
-    else if (c->is_vehicle())
-    {
-        return ;
-    }
-    else
-    {
-        return;
-    }
+    EVENT_TYPE evType = a->m_area->is_mine() ? EVENT_TYPE::ET_CARD_OVER_TIME_PERSON : EVENT_TYPE::ET_CARD_AREA_OVER_TIME_PERSON;
     auto ev_ptr_temp = event_list::instance()->get_event_card(c->m_id,c->m_type,evType);
     if (ev_ptr_temp && !ev_ptr_temp->is_end())
-    {
         p->m_send_event = true;
-    }
 }
 
 //进入区域,记录进入时间
 void area_business_person_dwell_checker::on_enter(const std::shared_ptr<area_hover>&a,
 							const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data>&ptr)
 {
-    std::shared_ptr<SPersonDwellChecker> p = std::make_shared<SPersonDwellChecker>();
-    p->m_send_event = false;
-    ptr = p;
-    log_info("area_business_person_dwell_checker::on_enter : In Area=%d Card = %d  ",a->m_area->is_mine(),c->m_id);
+    ptr = std::make_shared<SPersonDwellChecker>();
+    log_info("area_business_person_dwell_checker::on_enter : In Area=%d Card = %d  ",a->m_area->id(),c->m_id);
 }
 
 //判断是否超时
 void area_business_person_dwell_checker::on_hover(const std::shared_ptr<area_hover>&a,
 							const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr)
 {
+    if(!c->is_person())
+      return;
     auto ptr_temp = dynamic_cast<SPersonDwellChecker*>(ptr.get());
     if(nullptr == ptr_temp || a->m_enter_time == 0)
-    {
         return ;
-    }
-	double limit_val = 0;
+
+	double limit_val = a->m_area->m_limit_person_second;
 	double cur_val = ( tool_time::now_to_seconds() - a->m_enter_time / 1000);
 	EVENT_TYPE evType = EVENT_TYPE::ET_CARD_AREA_OVER_TIME_PERSON;
-	if(c->is_person())
+	if (!ptr_temp->m_send_event && a->m_area->m_limit_person_second < cur_val)
     {
-	    if (a->m_area->m_limit_person_second > cur_val)
-        {
-	        return;
-        }
-	    ptr_temp->m_send_event = true;
 	    evType = a->m_area->is_mine() ? EVENT_TYPE::ET_CARD_OVER_TIME_PERSON : EVENT_TYPE::ET_CARD_AREA_OVER_TIME_PERSON;
-	    limit_val = a->m_area->m_limit_person_second;
-    }
-	else if (c->is_vehicle())
-    {
-	    return ;
-    }
-	else
-    {
-        return;
+        uint64_t id = tool_other::type_id_to_u64(c->m_type, c->m_id);
+        event_tool::instance()->handle_event(OT_CARD,evType,id,limit_val,cur_val,ptr_temp->m_send_event = true);
     }
-    uint64_t id = tool_other::type_id_to_u64(c->m_type, c->m_id);
-    event_tool::instance()->handle_event(OT_CARD,evType,id,limit_val,cur_val,true);
+
 }
 
 
@@ -95,24 +68,15 @@ void area_business_person_dwell_checker::on_hover(const std::shared_ptr<area_hov
 void area_business_person_dwell_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(!c->is_person())
+      return;
     auto ptr_temp = dynamic_cast<SPersonDwellChecker*>(ptr.get());
     if(nullptr == ptr_temp)
-    {
         return ;
-    }
     if(ptr_temp->m_send_event)
     {
         ptr_temp->m_send_event = false;
-        EVENT_TYPE evType = EVENT_TYPE::ET_CARD_AREA_OVER_TIME_PERSON;
-        if (c->is_person())
-        {
-            evType = a->m_area->is_mine() ? EVENT_TYPE::ET_CARD_OVER_TIME_PERSON
-                                          : EVENT_TYPE::ET_CARD_AREA_OVER_TIME_PERSON;
-        }
-        else
-        {
-            return;
-        }
+        EVENT_TYPE evType = a->m_area->is_mine() ? EVENT_TYPE::ET_CARD_OVER_TIME_PERSON:EVENT_TYPE::ET_CARD_AREA_OVER_TIME_PERSON;
         uint64_t id = tool_other::type_id_to_u64(c->m_type, c->m_id);
         event_tool::instance()->handle_event(OT_CARD, evType, id, 0, 0, false);
     }