派生自 development/c++

pansen
2019-03-05 e634f49a3b619017a3d040d1bdf68aebad07ae4f
QiaoJiaSystem/DataManagerServer/vss/controller/CamDevController.h
New file
@@ -0,0 +1,412 @@
#ifndef CAMDEV_CONTROLLER_H
#define CAMDEV_CONTROLLER_H
#include <string>
#include <DataManagerServer/http_configserver.h>
#include "vss/dao/CamDevSqliteDao.h"
#include "vss/model/CamDevBuilder.h"
#include "vss/model/CamDev.h"
#include "VssBaseController.h"
#include <mysql++.h>
using namespace std;
/**
 * 摄像头设备
 */
class CamDevController : public VssBaseController {
private:
    /** 摄像头设备构造函数 */
    CamDevController() {}
public:
    /** 摄像头设备单例模式 */
    static CamDevController* instance() {
        static CamDevController instance;
        return &instance;
    }
public:
    /** 注册{label}http服务 */
    void registerHttpServices(HttpSrvRetRecieve& _HttpSrvRetRecieve) {
        _HttpSrvRetRecieve.setInfo("^/addCamDev$", "POST",
                                   std::bind(&CamDevController::addCamDev, this,
                                             std::placeholders::_1, std::placeholders::_2,
                                             std::placeholders::_3, std::placeholders::_4));
        _HttpSrvRetRecieve.setInfo("^/delCamDev$", "POST",
                                   std::bind(&CamDevController::delCamDev, this,
                                             std::placeholders::_1, std::placeholders::_2,
                                             std::placeholders::_3, std::placeholders::_4));
        _HttpSrvRetRecieve.setInfo("^/updateCamDev$", "POST",
                                   std::bind(&CamDevController::updateCamDev, this,
                                             std::placeholders::_1, std::placeholders::_2,
                                             std::placeholders::_3, std::placeholders::_4));
        _HttpSrvRetRecieve.setInfo("^/findCamDev$", "POST",
                                   std::bind(&CamDevController::findCamDev, this,
                                             std::placeholders::_1, std::placeholders::_2,
                                             std::placeholders::_3, std::placeholders::_4));
        _HttpSrvRetRecieve.setInfo("^/findCamDevList$", "POST",
                                   std::bind(&CamDevController::findCamDevList, this,
                                             std::placeholders::_1, std::placeholders::_2,
                                             std::placeholders::_3, std::placeholders::_4));
    }
public:
    /** 添加摄像头设备 */
    std::string addCamDev(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)) {
            CamDevBuilder camDevBuilder;
            Json::Value idJsonValue = requestJsonValue[CamDev_id];
            if (idJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addid(std::stoi((idJsonValue.asString())));
            }
            Json::Value cam_dev_idJsonValue = requestJsonValue[CamDev_cam_dev_id];
            if (cam_dev_idJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addcam_dev_id((cam_dev_idJsonValue.asString()));
            }
            Json::Value nameJsonValue = requestJsonValue[CamDev_name];
            if (nameJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addname((nameJsonValue.asString()));
            }
            Json::Value addrJsonValue = requestJsonValue[CamDev_addr];
            if (addrJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addaddr((addrJsonValue.asString()));
            }
            Json::Value longitudeJsonValue = requestJsonValue[CamDev_longitude];
            if (longitudeJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addlongitude((longitudeJsonValue.asString()));
            }
            Json::Value latitudeJsonValue = requestJsonValue[CamDev_latitude];
            if (latitudeJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addlatitude((latitudeJsonValue.asString()));
            }
            Json::Value ipJsonValue = requestJsonValue[CamDev_ip];
            if (ipJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addip((ipJsonValue.asString()));
            }
            Json::Value portJsonValue = requestJsonValue[CamDev_port];
            if (portJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addport(std::stoi((portJsonValue.asString())));
            }
            Json::Value usernameJsonValue = requestJsonValue[CamDev_username];
            if (usernameJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addusername((usernameJsonValue.asString()));
            }
            Json::Value passwordJsonValue = requestJsonValue[CamDev_password];
            if (passwordJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addpassword((passwordJsonValue.asString()));
            }
            Json::Value brandJsonValue = requestJsonValue[CamDev_brand];
            if (brandJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addbrand((brandJsonValue.asString()));
            }
            Json::Value reservedJsonValue = requestJsonValue[CamDev_reserved];
            if (reservedJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addreserved((reservedJsonValue.asString()));
            }
            Json::Value typeJsonValue = requestJsonValue[CamDev_type];
            if (typeJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addtype((typeJsonValue.asString()));
            }
            auto keyValuesToAdd = camDevBuilder.buildCamDevMap();
            if (keyValuesToAdd.size() > 0) {
                responseJsonValue = CamDevSqliteDao::instance()->addCamDev(keyValuesToAdd);
            }
        }
        return responseJsonValue.toStyledString();
    }
    /** 删除摄像头设备 */
    std::string delCamDev(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["id"];
            if (iDJsonValue.type() != Json::ValueType::nullValue) {
                string iDValue = iDJsonValue.asString();
                responseJsonValue = CamDevSqliteDao::instance()->deleteByColumn("id", iDValue);
            }
        }
        return responseJsonValue.toStyledString();
    }
    /** 更新摄像头设备 */
    std::string updateCamDev(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)) {
            CamDevBuilder camDevBuilder;
            Json::Value idJsonValue = requestJsonValue[CamDev_id];
            if (idJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addid(std::stoi((idJsonValue.asString())));
            }
            Json::Value cam_dev_idJsonValue = requestJsonValue[CamDev_cam_dev_id];
            if (cam_dev_idJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addcam_dev_id((cam_dev_idJsonValue.asString()));
            }
            Json::Value nameJsonValue = requestJsonValue[CamDev_name];
            if (nameJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addname((nameJsonValue.asString()));
            }
            Json::Value addrJsonValue = requestJsonValue[CamDev_addr];
            if (addrJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addaddr((addrJsonValue.asString()));
            }
            Json::Value longitudeJsonValue = requestJsonValue[CamDev_longitude];
            if (longitudeJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addlongitude((longitudeJsonValue.asString()));
            }
            Json::Value latitudeJsonValue = requestJsonValue[CamDev_latitude];
            if (latitudeJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addlatitude((latitudeJsonValue.asString()));
            }
            Json::Value ipJsonValue = requestJsonValue[CamDev_ip];
            if (ipJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addip((ipJsonValue.asString()));
            }
            Json::Value portJsonValue = requestJsonValue[CamDev_port];
            if (portJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addport(std::stoi((portJsonValue.asString())));
            }
            Json::Value usernameJsonValue = requestJsonValue[CamDev_username];
            if (usernameJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addusername((usernameJsonValue.asString()));
            }
            Json::Value passwordJsonValue = requestJsonValue[CamDev_password];
            if (passwordJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addpassword((passwordJsonValue.asString()));
            }
            Json::Value brandJsonValue = requestJsonValue[CamDev_brand];
            if (brandJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addbrand((brandJsonValue.asString()));
            }
            Json::Value reservedJsonValue = requestJsonValue[CamDev_reserved];
            if (reservedJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addreserved((reservedJsonValue.asString()));
            }
            Json::Value typeJsonValue = requestJsonValue[CamDev_type];
            if (typeJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addtype((typeJsonValue.asString()));
            }
            if (idJsonValue.type() != Json::ValueType::nullValue) {
                responseJsonValue = CamDevSqliteDao::instance()->updateCamDev(camDevBuilder.buildCamDevMap(), "id", idJsonValue.asString());
            }
        }
        return responseJsonValue.toStyledString();
    }
    /** 查找单个摄像头设备 */
    std::string findCamDev(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)) {
            CamDevBuilder camDevBuilder;
            Json::Value idJsonValue = requestJsonValue[CamDev_id];
            if (idJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addid(std::stoi((idJsonValue.asString())));
            }
            Json::Value cam_dev_idJsonValue = requestJsonValue[CamDev_cam_dev_id];
            if (cam_dev_idJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addcam_dev_id((cam_dev_idJsonValue.asString()));
            }
            Json::Value nameJsonValue = requestJsonValue[CamDev_name];
            if (nameJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addname((nameJsonValue.asString()));
            }
            Json::Value addrJsonValue = requestJsonValue[CamDev_addr];
            if (addrJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addaddr((addrJsonValue.asString()));
            }
            Json::Value longitudeJsonValue = requestJsonValue[CamDev_longitude];
            if (longitudeJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addlongitude((longitudeJsonValue.asString()));
            }
            Json::Value latitudeJsonValue = requestJsonValue[CamDev_latitude];
            if (latitudeJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addlatitude((latitudeJsonValue.asString()));
            }
            Json::Value ipJsonValue = requestJsonValue[CamDev_ip];
            if (ipJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addip((ipJsonValue.asString()));
            }
            Json::Value portJsonValue = requestJsonValue[CamDev_port];
            if (portJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addport(std::stoi((portJsonValue.asString())));
            }
            Json::Value usernameJsonValue = requestJsonValue[CamDev_username];
            if (usernameJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addusername((usernameJsonValue.asString()));
            }
            Json::Value passwordJsonValue = requestJsonValue[CamDev_password];
            if (passwordJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addpassword((passwordJsonValue.asString()));
            }
            Json::Value brandJsonValue = requestJsonValue[CamDev_brand];
            if (brandJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addbrand((brandJsonValue.asString()));
            }
            Json::Value reservedJsonValue = requestJsonValue[CamDev_reserved];
            if (reservedJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addreserved((reservedJsonValue.asString()));
            }
            Json::Value typeJsonValue = requestJsonValue[CamDev_type];
            if (typeJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addtype((typeJsonValue.asString()));
            }
            responseJsonValue["message"] = "查询成功!";
            responseJsonValue["success"] = "true";
            responseJsonValue = CamDevSqliteDao::instance()->findCamDevList(camDevBuilder.buildCamDevMap());
        }
        return responseJsonValue.toStyledString();
    }
    /** 查找摄像头设备列表 */
    std::string findCamDevList(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)) {
            CamDevBuilder camDevBuilder;
            Json::Value idJsonValue = requestJsonValue[CamDev_id];
            if (idJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addid(std::stoi((idJsonValue.asString())));
            }
            Json::Value cam_dev_idJsonValue = requestJsonValue[CamDev_cam_dev_id];
            if (cam_dev_idJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addcam_dev_id((cam_dev_idJsonValue.asString()));
            }
            Json::Value nameJsonValue = requestJsonValue[CamDev_name];
            if (nameJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addname((nameJsonValue.asString()));
            }
            Json::Value addrJsonValue = requestJsonValue[CamDev_addr];
            if (addrJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addaddr((addrJsonValue.asString()));
            }
            Json::Value longitudeJsonValue = requestJsonValue[CamDev_longitude];
            if (longitudeJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addlongitude((longitudeJsonValue.asString()));
            }
            Json::Value latitudeJsonValue = requestJsonValue[CamDev_latitude];
            if (latitudeJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addlatitude((latitudeJsonValue.asString()));
            }
            Json::Value ipJsonValue = requestJsonValue[CamDev_ip];
            if (ipJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addip((ipJsonValue.asString()));
            }
            Json::Value portJsonValue = requestJsonValue[CamDev_port];
            if (portJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addport(std::stoi((portJsonValue.asString())));
            }
            Json::Value usernameJsonValue = requestJsonValue[CamDev_username];
            if (usernameJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addusername((usernameJsonValue.asString()));
            }
            Json::Value passwordJsonValue = requestJsonValue[CamDev_password];
            if (passwordJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addpassword((passwordJsonValue.asString()));
            }
            Json::Value brandJsonValue = requestJsonValue[CamDev_brand];
            if (brandJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addbrand((brandJsonValue.asString()));
            }
            Json::Value reservedJsonValue = requestJsonValue[CamDev_reserved];
            if (reservedJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addreserved((reservedJsonValue.asString()));
            }
            Json::Value typeJsonValue = requestJsonValue[CamDev_type];
            if (typeJsonValue.type() != Json::ValueType::nullValue) {
                camDevBuilder.addtype((typeJsonValue.asString()));
            }
            responseJsonValue["message"] = "查询成功!";
            responseJsonValue["success"] = "true";
            responseJsonValue = CamDevSqliteDao::instance()->findCamDevList(camDevBuilder.buildCamDevMap());
        }
        return responseJsonValue.toStyledString();
    }
};
#endif //CAMDEV_CONTROLLER_H