#ifndef VSSLOCALSETTINGTBL_CONTROLLER_H #define VSSLOCALSETTINGTBL_CONTROLLER_H #include #include #include "vss/dao/VssLocalSettingTblDao.h" #include "vss/dao/VssLocalSettingTblSqliteDao.h" #include "vss/model/VssLocalSettingTblBuilder.h" #include "vss/model/VssLocalSettingTbl.h" #include "VssBaseController.h" #include using namespace std; /** * 本地国标配置 */ class VssLocalSettingTblController : public VssBaseController { private: /** 本地国标配置构造函数 */ VssLocalSettingTblController() {} public: /** 本地国标配置单例模式 */ static VssLocalSettingTblController* instance() { static VssLocalSettingTblController instance; return &instance; } public: /** 注册{label}http服务 */ void registerHttpServices(HttpSrvRetRecieve& _HttpSrvRetRecieve) { _HttpSrvRetRecieve.setInfo("^/addVssLocalSettingTbl$", "POST", std::bind(&VssLocalSettingTblController::addVssLocalSettingTbl, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4)); _HttpSrvRetRecieve.setInfo("^/delVssLocalSettingTbl$", "POST", std::bind(&VssLocalSettingTblController::delVssLocalSettingTbl, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4)); _HttpSrvRetRecieve.setInfo("^/updateVssLocalSettingTbl$", "POST", std::bind(&VssLocalSettingTblController::updateVssLocalSettingTbl, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4)); _HttpSrvRetRecieve.setInfo("^/findVssLocalSettingTbl$", "POST", std::bind(&VssLocalSettingTblController::findVssLocalSettingTbl, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4)); _HttpSrvRetRecieve.setInfo("^/findVssLocalSettingTblList$", "POST", std::bind(&VssLocalSettingTblController::findVssLocalSettingTblList, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4)); } public: /** 添加本地国标配置 */ std::string addVssLocalSettingTbl(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)) { VssLocalSettingTblBuilder vssLocalSettingTblBuilder; Json::Value iDJsonValue = requestJsonValue[VssLocalSettingTbl_ID]; if (iDJsonValue.type() != Json::ValueType::nullValue) { vssLocalSettingTblBuilder.addID(std::stoi(iDJsonValue.asString())); } Json::Value serverIpJsonValue = requestJsonValue[VssLocalSettingTbl_ServerIp]; if (serverIpJsonValue.type() != Json::ValueType::nullValue) { vssLocalSettingTblBuilder.addServerIp(serverIpJsonValue.asString()); } Json::Value serverPortJsonValue = requestJsonValue[VssLocalSettingTbl_ServerPort]; if (serverPortJsonValue.type() != Json::ValueType::nullValue) { vssLocalSettingTblBuilder.addServerPort(serverPortJsonValue.asString()); } Json::Value serverIdJsonValue = requestJsonValue[VssLocalSettingTbl_ServerId]; if (serverIdJsonValue.type() != Json::ValueType::nullValue) { vssLocalSettingTblBuilder.addServerId(serverIdJsonValue.asString()); } Json::Value userAuthIdJsonValue = requestJsonValue[VssLocalSettingTbl_UserAuthId]; if (userAuthIdJsonValue.type() != Json::ValueType::nullValue) { vssLocalSettingTblBuilder.addUserAuthId(userAuthIdJsonValue.asString()); } Json::Value passwordJsonValue = requestJsonValue[VssLocalSettingTbl_Password]; if (passwordJsonValue.type() != Json::ValueType::nullValue) { vssLocalSettingTblBuilder.addPassword(passwordJsonValue.asString()); } Json::Value updateTimeJsonValue = requestJsonValue[VssLocalSettingTbl_UpdateTime]; if (updateTimeJsonValue.type() != Json::ValueType::nullValue) { vssLocalSettingTblBuilder.addUpdateTime(updateTimeJsonValue.asString()); } auto keyValuesToAdd = vssLocalSettingTblBuilder.buildVssLocalSettingTblMap(); if (keyValuesToAdd.size() > 0) { responseJsonValue = VssLocalSettingTblSqliteDao::instance()->addVssLocalSettingTbl(keyValuesToAdd); } } return responseJsonValue.toStyledString(); } /** 删除本地国标配置 */ std::string delVssLocalSettingTbl(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[VssLocalSettingTbl_ID]; if (iDJsonValue.type() != Json::ValueType::nullValue) { string iDValue = iDJsonValue.asString(); responseJsonValue = VssLocalSettingTblSqliteDao::instance()->deleteByColumn("ID", iDValue); } } return responseJsonValue.toStyledString(); } /** 更新本地国标配置 */ std::string updateVssLocalSettingTbl(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)) { VssLocalSettingTblBuilder vssLocalSettingTblBuilder; Json::Value iDJsonValue = requestJsonValue[VssLocalSettingTbl_ID]; if (iDJsonValue.type() != Json::ValueType::nullValue) { vssLocalSettingTblBuilder.addID(std::stoi(iDJsonValue.asString())); } Json::Value serverIpJsonValue = requestJsonValue[VssLocalSettingTbl_ServerIp]; if (serverIpJsonValue.type() != Json::ValueType::nullValue) { vssLocalSettingTblBuilder.addServerIp(serverIpJsonValue.asString()); } Json::Value serverPortJsonValue = requestJsonValue[VssLocalSettingTbl_ServerPort]; if (serverPortJsonValue.type() != Json::ValueType::nullValue) { vssLocalSettingTblBuilder.addServerPort(serverPortJsonValue.asString()); } Json::Value serverIdJsonValue = requestJsonValue[VssLocalSettingTbl_ServerId]; if (serverIdJsonValue.type() != Json::ValueType::nullValue) { vssLocalSettingTblBuilder.addServerId(serverIdJsonValue.asString()); } Json::Value userAuthIdJsonValue = requestJsonValue[VssLocalSettingTbl_UserAuthId]; if (userAuthIdJsonValue.type() != Json::ValueType::nullValue) { vssLocalSettingTblBuilder.addUserAuthId(userAuthIdJsonValue.asString()); } Json::Value passwordJsonValue = requestJsonValue[VssLocalSettingTbl_Password]; if (passwordJsonValue.type() != Json::ValueType::nullValue) { vssLocalSettingTblBuilder.addPassword(passwordJsonValue.asString()); } Json::Value updateTimeJsonValue = requestJsonValue[VssLocalSettingTbl_UpdateTime]; if (updateTimeJsonValue.type() != Json::ValueType::nullValue) { vssLocalSettingTblBuilder.addUpdateTime(updateTimeJsonValue.asString()); } if (iDJsonValue.type() != Json::ValueType::nullValue) { string iDValue = iDJsonValue.asString(); responseJsonValue = VssLocalSettingTblSqliteDao::instance()->updateVssLocalSettingTbl(vssLocalSettingTblBuilder.buildVssLocalSettingTblMap(), "ID", iDValue); } } return responseJsonValue.toStyledString(); } /** 查找单个本地国标配置 */ std::string findVssLocalSettingTbl(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)) { VssLocalSettingTblBuilder vssLocalSettingTblBuilder; Json::Value iDJsonValue = requestJsonValue[VssLocalSettingTbl_ID]; if (iDJsonValue.type() != Json::ValueType::nullValue) { vssLocalSettingTblBuilder.addID(std::stoi(iDJsonValue.asString())); } Json::Value serverIpJsonValue = requestJsonValue[VssLocalSettingTbl_ServerIp]; if (serverIpJsonValue.type() != Json::ValueType::nullValue) { vssLocalSettingTblBuilder.addServerIp(serverIpJsonValue.asString()); } Json::Value serverPortJsonValue = requestJsonValue[VssLocalSettingTbl_ServerPort]; if (serverPortJsonValue.type() != Json::ValueType::nullValue) { vssLocalSettingTblBuilder.addServerPort(serverPortJsonValue.asString()); } Json::Value serverIdJsonValue = requestJsonValue[VssLocalSettingTbl_ServerId]; if (serverIdJsonValue.type() != Json::ValueType::nullValue) { vssLocalSettingTblBuilder.addServerId(serverIdJsonValue.asString()); } Json::Value userAuthIdJsonValue = requestJsonValue[VssLocalSettingTbl_UserAuthId]; if (userAuthIdJsonValue.type() != Json::ValueType::nullValue) { vssLocalSettingTblBuilder.addUserAuthId(userAuthIdJsonValue.asString()); } Json::Value passwordJsonValue = requestJsonValue[VssLocalSettingTbl_Password]; if (passwordJsonValue.type() != Json::ValueType::nullValue) { vssLocalSettingTblBuilder.addPassword(passwordJsonValue.asString()); } Json::Value updateTimeJsonValue = requestJsonValue[VssLocalSettingTbl_UpdateTime]; if (updateTimeJsonValue.type() != Json::ValueType::nullValue) { vssLocalSettingTblBuilder.addUpdateTime(updateTimeJsonValue.asString()); } responseJsonValue["message"] = "查询成功!"; responseJsonValue["success"] = "true"; responseJsonValue = VssLocalSettingTblSqliteDao::instance()->findVssLocalSettingTblList(vssLocalSettingTblBuilder.buildVssLocalSettingTblMap()); } return responseJsonValue.toStyledString(); } /** 查找本地国标配置列表 */ std::string findVssLocalSettingTblList(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)) { VssLocalSettingTblBuilder vssLocalSettingTblBuilder; Json::Value iDJsonValue = requestJsonValue[VssLocalSettingTbl_ID]; if (iDJsonValue.type() != Json::ValueType::nullValue) { vssLocalSettingTblBuilder.addID(std::stoi(iDJsonValue.asString())); } Json::Value serverIpJsonValue = requestJsonValue[VssLocalSettingTbl_ServerIp]; if (serverIpJsonValue.type() != Json::ValueType::nullValue) { vssLocalSettingTblBuilder.addServerIp(serverIpJsonValue.asString()); } Json::Value serverPortJsonValue = requestJsonValue[VssLocalSettingTbl_ServerPort]; if (serverPortJsonValue.type() != Json::ValueType::nullValue) { vssLocalSettingTblBuilder.addServerPort(serverPortJsonValue.asString()); } Json::Value serverIdJsonValue = requestJsonValue[VssLocalSettingTbl_ServerId]; if (serverIdJsonValue.type() != Json::ValueType::nullValue) { vssLocalSettingTblBuilder.addServerId(serverIdJsonValue.asString()); } Json::Value userAuthIdJsonValue = requestJsonValue[VssLocalSettingTbl_UserAuthId]; if (userAuthIdJsonValue.type() != Json::ValueType::nullValue) { vssLocalSettingTblBuilder.addUserAuthId(userAuthIdJsonValue.asString()); } Json::Value passwordJsonValue = requestJsonValue[VssLocalSettingTbl_Password]; if (passwordJsonValue.type() != Json::ValueType::nullValue) { vssLocalSettingTblBuilder.addPassword(passwordJsonValue.asString()); } Json::Value updateTimeJsonValue = requestJsonValue[VssLocalSettingTbl_UpdateTime]; if (updateTimeJsonValue.type() != Json::ValueType::nullValue) { vssLocalSettingTblBuilder.addUpdateTime(updateTimeJsonValue.asString()); } responseJsonValue["message"] = "查询成功!"; responseJsonValue["success"] = "true"; responseJsonValue = VssLocalSettingTblSqliteDao::instance()->findVssLocalSettingTblList(vssLocalSettingTblBuilder.buildVssLocalSettingTblMap()); } return responseJsonValue.toStyledString(); } }; #endif //VSSLOCALSETTINGTBL_CONTROLLER_H