#ifndef VSSDEVTBL_CONTROLLER_H #define VSSDEVTBL_CONTROLLER_H #include #include #include "vss/dao/VssDevTblDao.h" #include "vss/model/VssDevTblBuilder.h" #include "vss/model/VssDevTbl.h" #include "VssBaseController.h" #include using namespace std; /** * 创建一级设备表 */ class VssDevTblController : public VssBaseController { private: /** 创建一级设备表构造函数 */ VssDevTblController() {} public: /** 创建一级设备表单例模式 */ static VssDevTblController* instance() { static VssDevTblController instance; return &instance; } public: /** 注册{label}http服务 */ void registerHttpServices(HttpSrvRetRecieve& _HttpSrvRetRecieve) { _HttpSrvRetRecieve.setInfo("^/addVssDevTbl$", "POST", std::bind(&VssDevTblController::addVssDevTbl, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4)); _HttpSrvRetRecieve.setInfo("^/delVssDevTbl$", "POST", std::bind(&VssDevTblController::delVssDevTbl, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4)); _HttpSrvRetRecieve.setInfo("^/updateVssDevTbl$", "POST", std::bind(&VssDevTblController::updateVssDevTbl, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4)); _HttpSrvRetRecieve.setInfo("^/findVssDevTbl$", "POST", std::bind(&VssDevTblController::findVssDevTbl, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4)); _HttpSrvRetRecieve.setInfo("^/findVssDevTblList$", "POST", std::bind(&VssDevTblController::findVssDevTblList, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4)); } public: /** 添加创建一级设备表 */ std::string addVssDevTbl(std::string ip, unsigned int port, std::string content, PResponse &response) { Json::Reader requestJsonReader; Json::Value requestJsonValue; Json::Value responseJsonValue; responseJsonValue["message"] = "添加失败!"; responseJsonValue["success"] = "false"; if (requestJsonReader.parse(content, requestJsonValue)) { VssDevTblBuilder vssDevTblBuilder; Json::Value iDJsonValue = requestJsonValue[VssDevTbl_ID]; if (iDJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addID(std::stoi((iDJsonValue.asString()))); } Json::Value devPubIDJsonValue = requestJsonValue[VssDevTbl_DevPubID]; if (devPubIDJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addDevPubID((devPubIDJsonValue.asString())); } Json::Value devNicknameJsonValue = requestJsonValue[VssDevTbl_DevNickname]; if (devNicknameJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addDevNickname((devNicknameJsonValue.asString())); } Json::Value userNameJsonValue = requestJsonValue[VssDevTbl_UserName]; if (userNameJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addUserName((userNameJsonValue.asString())); } Json::Value passwdJsonValue = requestJsonValue[VssDevTbl_Passwd]; if (passwdJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addPasswd((passwdJsonValue.asString())); } Json::Value corpIDJsonValue = requestJsonValue[VssDevTbl_CorpID]; if (corpIDJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addCorpID((corpIDJsonValue.asString())); } Json::Value iPJsonValue = requestJsonValue[VssDevTbl_IP]; if (iPJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addIP((iPJsonValue.asString())); } Json::Value portJsonValue = requestJsonValue[VssDevTbl_Port]; if (portJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addPort(std::stoi((portJsonValue.asString()))); } Json::Value aliveJsonValue = requestJsonValue[VssDevTbl_Alive]; if (aliveJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addAlive(std::stoi((aliveJsonValue.asString()))); } Json::Value dMarkerJsonValue = requestJsonValue[VssDevTbl_DMarker]; if (dMarkerJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addDMarker(std::stoi((dMarkerJsonValue.asString()))); } Json::Value updateTimeJsonValue = requestJsonValue[VssDevTbl_UpdateTime]; if (updateTimeJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addUpdateTime((updateTimeJsonValue.asString())); } auto keyValuesToAdd = vssDevTblBuilder.buildVssDevTblMap(); if (keyValuesToAdd.size() > 0) { mysqlpp::SimpleResult addVssDevTblResult = VssDevTblDao::instance()->addVssDevTbl(keyValuesToAdd); if (addVssDevTblResult.rows() > 0) { responseJsonValue["success"] = "true"; responseJsonValue["message"] = "添加成功!"; } } } return responseJsonValue.toStyledString(); } /** 删除创建一级设备表 */ std::string delVssDevTbl(std::string ip, unsigned int port, std::string content, PResponse &response) { Json::Reader requestJsonReader; Json::Value requestJsonValue; Json::Value responseJsonValue; responseJsonValue["message"] = "删除失败!"; responseJsonValue["success"] = "false"; if (requestJsonReader.parse(content, requestJsonValue)) { Json::Value iDJsonValue = requestJsonValue[VssDevTbl_ID]; if (iDJsonValue.type() != Json::ValueType::nullValue) { string iDValue = iDJsonValue.asString(); if (iDValue.size() > 0 && VssDevTblDao::instance()->deleteByColumn("ID", iDValue)) { responseJsonValue["success"] = "true"; responseJsonValue["message"] = "删除成功!"; } } } return responseJsonValue.toStyledString(); } /** 更新创建一级设备表 */ std::string updateVssDevTbl(std::string ip, unsigned int port, std::string content, PResponse &response) { Json::Reader requestJsonReader; Json::Value requestJsonValue; Json::Value responseJsonValue; responseJsonValue["message"] = "更新失败!"; responseJsonValue["success"] = "false"; if (requestJsonReader.parse(content, requestJsonValue)) { VssDevTblBuilder vssDevTblBuilder; Json::Value iDJsonValue = requestJsonValue[VssDevTbl_ID]; if (iDJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addID(std::stoi((iDJsonValue.asString()))); } Json::Value devPubIDJsonValue = requestJsonValue[VssDevTbl_DevPubID]; if (devPubIDJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addDevPubID((devPubIDJsonValue.asString())); } Json::Value devNicknameJsonValue = requestJsonValue[VssDevTbl_DevNickname]; if (devNicknameJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addDevNickname((devNicknameJsonValue.asString())); } Json::Value userNameJsonValue = requestJsonValue[VssDevTbl_UserName]; if (userNameJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addUserName((userNameJsonValue.asString())); } Json::Value passwdJsonValue = requestJsonValue[VssDevTbl_Passwd]; if (passwdJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addPasswd((passwdJsonValue.asString())); } Json::Value corpIDJsonValue = requestJsonValue[VssDevTbl_CorpID]; if (corpIDJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addCorpID((corpIDJsonValue.asString())); } Json::Value iPJsonValue = requestJsonValue[VssDevTbl_IP]; if (iPJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addIP((iPJsonValue.asString())); } Json::Value portJsonValue = requestJsonValue[VssDevTbl_Port]; if (portJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addPort(std::stoi((portJsonValue.asString()))); } Json::Value aliveJsonValue = requestJsonValue[VssDevTbl_Alive]; if (aliveJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addAlive(std::stoi((aliveJsonValue.asString()))); } Json::Value dMarkerJsonValue = requestJsonValue[VssDevTbl_DMarker]; if (dMarkerJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addDMarker(std::stoi((dMarkerJsonValue.asString()))); } Json::Value updateTimeJsonValue = requestJsonValue[VssDevTbl_UpdateTime]; if (updateTimeJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addUpdateTime((updateTimeJsonValue.asString())); } if (iDJsonValue.type() != Json::ValueType::nullValue) { string iDValue = iDJsonValue.asString(); if (iDValue.size() > 0 && VssDevTblDao::instance()->updateVssDevTbl(vssDevTblBuilder.buildVssDevTblMap(), "ID", iDValue)) { responseJsonValue["success"] = "true"; responseJsonValue["message"] = "更新成功!"; } } } return responseJsonValue.toStyledString(); } /** 查找单个创建一级设备表 */ std::string findVssDevTbl(std::string ip, unsigned int port, std::string content, PResponse &response) { Json::Reader requestJsonReader; Json::Value requestJsonValue; Json::Value responseJsonValue; responseJsonValue["message"] = "查询失败!"; responseJsonValue["success"] = "false"; if (requestJsonReader.parse(content, requestJsonValue)) { VssDevTblBuilder vssDevTblBuilder; Json::Value iDJsonValue = requestJsonValue[VssDevTbl_ID]; if (iDJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addID(std::stoi((iDJsonValue.asString()))); } Json::Value devPubIDJsonValue = requestJsonValue[VssDevTbl_DevPubID]; if (devPubIDJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addDevPubID((devPubIDJsonValue.asString())); } Json::Value devNicknameJsonValue = requestJsonValue[VssDevTbl_DevNickname]; if (devNicknameJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addDevNickname((devNicknameJsonValue.asString())); } Json::Value userNameJsonValue = requestJsonValue[VssDevTbl_UserName]; if (userNameJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addUserName((userNameJsonValue.asString())); } Json::Value passwdJsonValue = requestJsonValue[VssDevTbl_Passwd]; if (passwdJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addPasswd((passwdJsonValue.asString())); } Json::Value corpIDJsonValue = requestJsonValue[VssDevTbl_CorpID]; if (corpIDJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addCorpID((corpIDJsonValue.asString())); } Json::Value iPJsonValue = requestJsonValue[VssDevTbl_IP]; if (iPJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addIP((iPJsonValue.asString())); } Json::Value portJsonValue = requestJsonValue[VssDevTbl_Port]; if (portJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addPort(std::stoi((portJsonValue.asString()))); } Json::Value aliveJsonValue = requestJsonValue[VssDevTbl_Alive]; if (aliveJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addAlive(std::stoi((aliveJsonValue.asString()))); } Json::Value dMarkerJsonValue = requestJsonValue[VssDevTbl_DMarker]; if (dMarkerJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addDMarker(std::stoi((dMarkerJsonValue.asString()))); } Json::Value updateTimeJsonValue = requestJsonValue[VssDevTbl_UpdateTime]; if (updateTimeJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addUpdateTime((updateTimeJsonValue.asString())); } responseJsonValue["message"] = "查询成功!"; responseJsonValue["success"] = "true"; responseJsonValue["data"] = VssDevTblDao::instance()->findJsonArray(string("select * from ") + VSSDevTbl_TABLE_NAME + " where 1 = 1 limit 1", vssDevTblBuilder.buildVssDevTblMap()); } return responseJsonValue.toStyledString(); } /** 查找创建一级设备表列表 */ std::string findVssDevTblList(std::string ip, unsigned int port, std::string content, PResponse &response) { Json::Reader requestJsonReader; Json::Value requestJsonValue; Json::Value responseJsonValue; responseJsonValue["message"] = "查询失败!"; responseJsonValue["success"] = "false"; if (content == "" || requestJsonReader.parse(content, requestJsonValue)) { VssDevTblBuilder vssDevTblBuilder; Json::Value iDJsonValue = requestJsonValue[VssDevTbl_ID]; if (iDJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addID(std::stoi((iDJsonValue.asString()))); } Json::Value devPubIDJsonValue = requestJsonValue[VssDevTbl_DevPubID]; if (devPubIDJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addDevPubID((devPubIDJsonValue.asString())); } Json::Value devNicknameJsonValue = requestJsonValue[VssDevTbl_DevNickname]; if (devNicknameJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addDevNickname((devNicknameJsonValue.asString())); } Json::Value userNameJsonValue = requestJsonValue[VssDevTbl_UserName]; if (userNameJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addUserName((userNameJsonValue.asString())); } Json::Value passwdJsonValue = requestJsonValue[VssDevTbl_Passwd]; if (passwdJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addPasswd((passwdJsonValue.asString())); } Json::Value corpIDJsonValue = requestJsonValue[VssDevTbl_CorpID]; if (corpIDJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addCorpID((corpIDJsonValue.asString())); } Json::Value iPJsonValue = requestJsonValue[VssDevTbl_IP]; if (iPJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addIP((iPJsonValue.asString())); } Json::Value portJsonValue = requestJsonValue[VssDevTbl_Port]; if (portJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addPort(std::stoi((portJsonValue.asString()))); } Json::Value aliveJsonValue = requestJsonValue[VssDevTbl_Alive]; if (aliveJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addAlive(std::stoi((aliveJsonValue.asString()))); } Json::Value dMarkerJsonValue = requestJsonValue[VssDevTbl_DMarker]; if (dMarkerJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addDMarker(std::stoi((dMarkerJsonValue.asString()))); } Json::Value updateTimeJsonValue = requestJsonValue[VssDevTbl_UpdateTime]; if (updateTimeJsonValue.type() != Json::ValueType::nullValue) { vssDevTblBuilder.addUpdateTime((updateTimeJsonValue.asString())); } responseJsonValue["message"] = "查询成功!"; responseJsonValue["success"] = "true"; auto devDataList = VssDevTblDao::instance()->findJsonArray(string("select * from ") + VSSDevTbl_TABLE_NAME + " where 1 = 1", vssDevTblBuilder.buildVssDevTblMap()); for (int i = 0; i < devDataList.size(); i++) { auto& devData = devDataList[i]; auto DevPubID = devData[VssDevTbl_DevPubID]; std::map whereKeyValues; whereKeyValues[CamDev_cam_dev_id] = DevPubID.asString(); auto camDevDataList = CamDevSqliteDao::instance()->findCamDevList(whereKeyValues)["data"]; devData["RemarkName"] = ""; if (camDevDataList.size() > 0) { auto camDevData = camDevDataList[0]; devData["RemarkName"] = camDevData[CamDev_name].asString(); } } responseJsonValue["data"] = devDataList; } return responseJsonValue.toStyledString(); } }; #endif //VSSDEVTBL_CONTROLLER_H