#include "area_business_card_enter_or_leave.h" #include "area.h" #include "card_base.h" #include"common_tool.h" #include"tool_time.h" #include"db/db_tool.h" #include"log.h" void area_business_card_enter_or_leave::on_load_his(const std::shared_ptr&area_hover_ptr, const std::shared_ptr&card_ptr,std::shared_ptr&ptr) { } //进入区域则入库操作 void area_business_card_enter_or_leave::on_enter(const std::shared_ptr&a, const std::shared_ptr&c,std::shared_ptr&ptr) { char sql[LENGTH_SQL]{0}; std::string start_time = tool_time::to_str_ex(a->m_enter_time); std::string card_id = tool_other::type_id_to_str(c->m_type,c->m_id); const auto &p=a->m_enter_point; snprintf(sql,LENGTH_SQL,"INSERT INTO his_location_area (card_id,area_id,map_id,enter_time,start_point)VALUES ('%s',%d,%d,'%s','%.2f,%.2f');", card_id.c_str(),a->id(),a->mapid(),start_time.c_str(),p.x,p.y); db_tool::PushAsync(sql); } void area_business_card_enter_or_leave::on_hover(const std::shared_ptr&a, const std::shared_ptr&c,std::shared_ptr ptr) { } //出区域则入库 void area_business_card_enter_or_leave::on_leave(const std::shared_ptr&a, const std::shared_ptr&c,std::shared_ptr ptr) { char sql[LENGTH_SQL]{0}; std::string start_time = tool_time::to_str_ex(a->m_enter_time); std::string end_time = tool_time::to_str_ex(a->m_last_time); std::string card_id = tool_other::type_id_to_str(c->m_type,c->m_id); const auto &ep=a->m_last_point; snprintf(sql,LENGTH_SQL,"UPDATE his_location_area SET leave_time='%s',end_point='%.2f,%.2f' WHERE card_id = '%s' AND area_id=%d AND enter_time='%s';", end_time.c_str(),ep.x,ep.y,card_id.c_str(),a->id(),start_time.c_str()); db_tool::PushAsync(sql); }