area_persons_thre_time.cpp 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. //
  2. // Created by songchao.chen on 2019/7/4.
  3. //
  4. #include "area_persons_thre_time.h"
  5. #include "tool_time.h"
  6. area_persons_thre_time::area_persons_thre_time(int _limit)
  7. :m_default_limit_person_limit(_limit)
  8. {
  9. m_web_checkdata = false;
  10. }
  11. void area_persons_thre_time::add_persons_thre(const SArea_Persons_Thre & thre)
  12. {
  13. m_area_persons_thre[thre.db_id] = thre;
  14. }
  15. void area_persons_thre_time::del_persons_thre(int thre_db_id)
  16. {
  17. m_area_persons_thre.erase(thre_db_id);
  18. }
  19. void area_persons_thre_time::clear_persons_thre()
  20. {
  21. m_area_persons_thre.clear();
  22. }
  23. //记录数量
  24. int area_persons_thre_time::get_count() const
  25. {
  26. return (int)m_area_persons_thre.size();
  27. }
  28. int area_persons_thre_time::get_limit_person_count(uint64_t cur_time)
  29. {
  30. int cur_sec = tool_time::time_to_day_seconds(cur_time);
  31. //std::string sz_cur_time = tool_time::to_str_time(cur_time);
  32. for (auto it : m_area_persons_thre)
  33. {
  34. SArea_Persons_Thre &d = it.second;
  35. /*if (sz_cur_time >= d.sz_start_time && sz_cur_time <= d.sz_end_time)
  36. {
  37. return d.thre_value;
  38. }*/
  39. if (cur_sec >= d.start_time && cur_sec <= d.end_time)
  40. {
  41. return d.thre_value;
  42. }
  43. if(d.start_time > d.end_time) //隔天 (23:00:00 -- 02:00:00
  44. {
  45. if ((cur_sec >= d.start_time && cur_sec <= 3600 * 24)
  46. || (cur_sec >= 0 && cur_sec <= d.end_time))
  47. {
  48. return d.thre_value;
  49. }
  50. }
  51. }
  52. return m_default_limit_person_limit;
  53. }