parkspace_operating_function.h 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. /*
  2. * @Description: 车位模块数据库管理类,提供接口实现特定的数据库操作
  3. * @Author: yct
  4. * @Date: 2020-07-19 09:44:17
  5. * @LastEditTime: 2020-07-21 16:22:12
  6. * @LastEditors: yct
  7. */
  8. #ifndef PARKSPACE_OPERATING_FUNCTION_HH
  9. #define PARKSPACE_OPERATING_FUNCTION_HH
  10. #include "../tool/singleton.h"
  11. #include "../error_code/error_code.h"
  12. #include "./parkspace_parameter.pb.h"
  13. #include "../message/parkspace_allocation_message.pb.h"
  14. #include "database_controller.h"
  15. #include <atomic>
  16. //Parkspace_operating_function
  17. class Parkspace_operating_function
  18. {
  19. public:
  20. Parkspace_operating_function() = default;
  21. Parkspace_operating_function(const Parkspace_operating_function &) = delete;
  22. Parkspace_operating_function &operator=(const Parkspace_operating_function &) = delete;
  23. ~Parkspace_operating_function() = default;
  24. // ******** 数据库具体操作函数 *********
  25. // 从数据库获得所有车位信息,用于车位模块初始化
  26. Error_manager get_all_parkspace_info(message::Parkspace_allocation_data_msg &all_parkspace_info);
  27. // 清除数据库中所有车位号牌,状态全修改为空闲
  28. Error_manager clear_all_parkspace_info();
  29. // 更新数据库中车位状态--根据车位ID修改车位状态
  30. Error_manager update_parkspace_data(message::Parkspace_info parkspace_info);
  31. // 更新数据库车辆状态,车位信息中包含车辆信息用于匹配更新
  32. Error_manager update_vehicle_with_parkspace(message::Parkspace_info parkspace_info, message::Vehicle_status &vehicle_status);
  33. // 根据车牌号更新车辆的停车记录ID
  34. Error_manager update_record_id(std::string license,int record_id);
  35. // 插入车辆
  36. Error_manager insert_vehicle_with_parkspace(message::Parkspace_info parkspace_info, message::Vehicle_status &vehicle_status);
  37. // 插入停车记录
  38. Error_manager insert_parking_record(message::Parkspace_info parkspace_info);
  39. // 更新停车记录,待计费系统加入后完善!!!
  40. Error_manager update_parking_record(message::Parkspace_info parkspace_info, int record_id);
  41. // 根据车位编号查询车位
  42. Error_manager query_one_parkspace_with_parkspace_id(int parkspace_id, message::Parkspace_info &parkspace_info);
  43. // 根据车牌号查询车位
  44. Error_manager query_one_parkspace_with_license(std::string license, message::Parkspace_info &parkspace_info);
  45. // 找到一个空车位
  46. Error_manager query_one_empty_parkspace(message::Parkspace_info &parkspace_info);
  47. // 查询车辆状态
  48. Error_manager query_vehicle(std::string license, message::Vehicle_status &vehicle_status, int &park_record_id);
  49. // 查询停车记录
  50. Error_manager query_parking_record(message::Parkspace_info &parkspace_info, int &record_id);
  51. };
  52. #endif // !PARKSPACE_DB_MANAGER_HH