/* * @Description: 车位模块数据库管理类,提供接口实现特定的数据库操作 * @Author: yct * @Date: 2020-07-19 09:44:17 * @LastEditTime: 2020-07-21 16:22:12 * @LastEditors: yct */ #ifndef PARKSPACE_OPERATING_FUNCTION_HH #define PARKSPACE_OPERATING_FUNCTION_HH #include "../tool/singleton.h" #include "../error_code/error_code.h" #include "../message/parkspace_allocation_message.pb.h" #include "database_controller.h" #include //Parkspace_operating_function class Parkspace_operating_function { public: Parkspace_operating_function() = default; Parkspace_operating_function(const Parkspace_operating_function &) = delete; Parkspace_operating_function &operator=(const Parkspace_operating_function &) = delete; ~Parkspace_operating_function() = default; // ******** 数据库具体操作函数 ********* // 从数据库获得所有车位信息,用于车位模块初始化 Error_manager get_all_parkspace_info(message::Parkspace_allocation_data_msg &all_parkspace_info); // 获取指定类型车位信息,用于车位分配 Error_manager get_specify_the_type_parkspace_info(message::Parkspace_allocation_data_msg &all_specify_the_type_parkspace_info,int parkspace_type); // 清除数据库中所有车位号牌,状态全修改为空闲 Error_manager clear_all_parkspace_info(); // 更新数据库中车位状态--根据车位ID修改车位状态 Error_manager update_parkspace_data(message::Parkspace_info parkspace_info); // 更新数据库车辆状态,车位信息中包含车辆信息用于匹配更新 Error_manager update_vehicle_with_parkspace(message::Parkspace_info parkspace_info, message::Vehicle_status &vehicle_status); // 根据车牌号更新车辆的停车记录ID Error_manager update_record_id(std::string license,int record_id); // 插入车辆 Error_manager insert_vehicle_with_parkspace(message::Parkspace_info parkspace_info, message::Vehicle_status &vehicle_status); // 插入停车记录 Error_manager insert_parking_record(message::Parkspace_info parkspace_info); // 更新停车记录,待计费系统加入后完善!!! Error_manager update_parking_record(message::Parkspace_info parkspace_info, int record_id); // 根据车位编号查询车位 Error_manager query_one_parkspace_with_parkspace_id(int parkspace_id, message::Parkspace_info &parkspace_info); // 根据车牌号查询车位 Error_manager query_one_parkspace_with_license(std::string license, message::Parkspace_info &parkspace_info); // 找到一个空车位 Error_manager query_one_empty_parkspace(message::Parkspace_info &parkspace_info); // 查询车辆状态 Error_manager query_vehicle(std::string license, message::Vehicle_status &vehicle_status, int &park_record_id); // 查询停车记录 Error_manager query_parking_record(message::Parkspace_info &parkspace_info, int &record_id); }; #endif // !PARKSPACE_DB_MANAGER_HH