派生自 development/c++

chenshijun
2019-03-15 684b55231257011c11caacc5ae72b0f0977c6114
QiaoJiaSystem/DataManagerServer/vss/dao/VssDevTblDao.h
@@ -1,142 +1,163 @@
#ifndef VSSDEVTBL_MANAGER_H
#define VSSDEVTBL_MANAGER_H
#include "../model/VssDevTbl.h"
#include "BaseDao.h"
#define VSSDevTbl_TABLE_NAME "VSSDevTbl"
/**
 * 创建一级设备表管理类
 */
class VssDevTblDao : public BaseDao {
private:
   /** 创建一级设备表构造函数 */
   VssDevTblDao() {}
public:
   /** 创建一级设备表单例模式 */
    static VssDevTblDao* instance() {
        static VssDevTblDao instance;
        return &instance;
    }
    /** 添加创建一级设备表 keyValuesToAdd 需要添加的列名和列值对map*/
    mysqlpp::SimpleResult addVssDevTbl(std::map<std::string, std::string>& keyValuesToAdd) {
        return add(keyValuesToAdd, VSSDevTbl_TABLE_NAME);
    }
    /** 删除创建一级设备表 whereKey 列名;whereValue 列值 */
    bool deleteByColumn(string whereKey, string whereValue) {
        std::map<std::string, std::string> whereKeyValues;
        whereKeyValues[whereKey] = whereValue;
        return deleteVssDevTbl(whereKeyValues);
    }
    /** 删除创建一级设备表 whereColumnNameValues 列名和列值对条件 */
    bool deleteVssDevTbl(std::map<std::string, std::string>& whereKeyValues) {
        return del(VSSDevTbl_TABLE_NAME, whereKeyValues);
    }
    /** 更新创建一级设备表 keyValuesToUpdate 需要更新的列名和列值对; whereKeyValues 列名和列值条件 */
   bool updateVssDevTbl(std::map<std::string, std::string>& keyValuesToUpdate,
                           std::map<std::string, std::string>& whereKeyValues) {
      return update(keyValuesToUpdate, VSSDevTbl_TABLE_NAME, whereKeyValues);
   }
    /** 更新创建二级设备表 keyValuesToUpdate 需要更新的列名和列值对; whereKeyValues 列名和列值条件 */
    bool updateVssDevTbl(std::map<std::string, std::string>& keyValuesToUpdate,
                             string whereKey,
                             string whereValue) {
        std::map<std::string, std::string> whereKeyValues;
        whereKeyValues[whereKey] = whereValue;
        return update(keyValuesToUpdate, VSSDevTbl_TABLE_NAME, whereKeyValues);
    }
   /** 查询创建一级设备表列表  querySql 要查询的sql语句 */
   vector<VssDevTbl> findVssDevTblList(string querySql) {
        vector<VssDevTbl> vssDevTblVec;
        vector<map<string, string>> rowDatList = findList(querySql);
        vssDevTblVec.reserve(rowDatList.size());
        for (auto rowData : rowDatList) {
            vssDevTblVec.emplace_back(mapToModel(rowData));
        }
        return vssDevTblVec;
   }
    /**查询创建一级设备表列表 whereKeyValues 列名和列值对条件 */
    vector<VssDevTbl> findVssDevTblList(std::map<std::string, std::string>& whereKeyValues) {
        return findVssDevTblList(string("select * from ") + VSSDevTbl_TABLE_NAME + " where 1=1 " + getWhereColumnNameValuePair(whereKeyValues));
    }
    /**查询所有创建一级设备表列表 */
    vector<VssDevTbl> findAllVssDevTblList() {
        return findVssDevTblList(string("select * from ") + VSSDevTbl_TABLE_NAME + " where 1=1 ");
    }
   /** 查询map列表 querySql 要查询的sql语句 */
   vector<map<string, string>> findMapList(string querySql) {
      return findList(querySql);
   }
    /** 执行sql语句 */
    bool execute(string sql) {
        return exec(move(sql));
    }
    /** map转model类 */
    VssDevTbl mapToModel(map<string, string>& rowData) {
        VssDevTbl vssDevTbl;
        string IDValue = rowData[VssDevTbl_ID];
        if (IDValue.length() != 0 && IDValue != "NULL") {
            vssDevTbl.ID = std::stoi(IDValue);
        }
        string DevPubIDValue = rowData[VssDevTbl_DevPubID];
        if (DevPubIDValue.length() != 0 && DevPubIDValue != "NULL") {
            vssDevTbl.DevPubID = DevPubIDValue;
        }
        string DevNicknameValue = rowData[VssDevTbl_DevNickname];
        if (DevNicknameValue.length() != 0 && DevNicknameValue != "NULL") {
            vssDevTbl.DevNickname = DevNicknameValue;
        }
        string UserNameValue = rowData[VssDevTbl_UserName];
        if (UserNameValue.length() != 0 && UserNameValue != "NULL") {
            vssDevTbl.UserName = UserNameValue;
        }
        string PasswdValue = rowData[VssDevTbl_Passwd];
        if (PasswdValue.length() != 0 && PasswdValue != "NULL") {
            vssDevTbl.Passwd = PasswdValue;
        }
        string CorpIDValue = rowData[VssDevTbl_CorpID];
        if (CorpIDValue.length() != 0 && CorpIDValue != "NULL") {
            vssDevTbl.CorpID = CorpIDValue;
        }
        string IPValue = rowData[VssDevTbl_IP];
        if (IPValue.length() != 0 && IPValue != "NULL") {
            vssDevTbl.IP = IPValue;
        }
        string PortValue = rowData[VssDevTbl_Port];
        if (PortValue.length() != 0 && PortValue != "NULL") {
            vssDevTbl.Port = std::stoi(PortValue);
        }
        string AliveValue = rowData[VssDevTbl_Alive];
        if (AliveValue.length() != 0 && AliveValue != "NULL") {
            vssDevTbl.Alive = std::stoi(AliveValue);
        }
        string DMarkerValue = rowData[VssDevTbl_DMarker];
        if (DMarkerValue.length() != 0 && DMarkerValue != "NULL") {
            vssDevTbl.DMarker = std::stoi(DMarkerValue);
        }
        string UpdateTimeValue = rowData[VssDevTbl_UpdateTime];
        if (UpdateTimeValue.length() != 0 && UpdateTimeValue != "NULL") {
            vssDevTbl.UpdateTime = UpdateTimeValue;
        }
        return vssDevTbl;
    }
};
#endif //VSSDEVTBL_MANAGER_H
#ifndef VSSDEVTBL_MANAGER_H
#define VSSDEVTBL_MANAGER_H
#include "../model/VssDevTbl.h"
#include "VssChannelTblDao.h"
#include "BaseDao.h"
#include "CamDevSqliteDao.h"
#define VSSDevTbl_TABLE_NAME "VSSDevTbl"
/**
 * 创建一级设备表管理类
 */
class VssDevTblDao : public BaseDao {
private:
   /** 创建一级设备表构造函数 */
   VssDevTblDao() {}
public:
   /** 创建一级设备表单例模式 */
    static VssDevTblDao* instance() {
        static VssDevTblDao instance;
        return &instance;
    }
    /** 添加创建一级设备表 keyValuesToAdd 需要添加的列名和列值对map*/
    mysqlpp::SimpleResult addVssDevTbl(std::map<std::string, std::string>& keyValuesToAdd) {
        QMutexLocker mutexLocker(&m_mutexVisit);
        return add(keyValuesToAdd, VSSDevTbl_TABLE_NAME);
    }
    /** 删除创建一级设备表 whereKey 列名;whereValue 列值 */
    bool deleteByColumn(string whereKey, string whereValue) {
        std::map<std::string, std::string> whereKeyValues;
        whereKeyValues[whereKey] = whereValue;
        return deleteVssDevTbl(whereKeyValues);
    }
    /** 删除创建一级设备表 whereColumnNameValues 列名和列值对条件 */
    bool deleteVssDevTbl(std::map<std::string, std::string>& whereKeyValues) {
        QMutexLocker mutexLocker(&m_mutexVisit);
        vector<map<string, string>> devRowDataList = findList(string("select * from ")
                                                          + VSSDevTbl_TABLE_NAME + " where 1=1 "
                                                                                   + getWhereColumnNameValuePair(whereKeyValues));
        if (devRowDataList.size() > 0) {
            auto DevPubID = devRowDataList.at(0)[VssDevTbl_DevPubID];
            vector<map<string, string>> channelRowDataList = findList(string("select * from ")
                                                                 + VSSChannelTbl_TABLE_NAME + " where 1=1 AND DevPubID='"+DevPubID+"'");
            for (auto channelRowData : channelRowDataList) {
                auto ChanPubID = channelRowData[VssChannelTbl_ChanPubID];
                CamDevSqliteDao::instance()->deleteByColumn(CamDev_cam_dev_id, ChanPubID);
            }
            CamDevSqliteDao::instance()->deleteByColumn(CamDev_cam_dev_id, DevPubID);
        }
        return del(VSSDevTbl_TABLE_NAME, whereKeyValues);
    }
    /** 更新创建一级设备表 keyValuesToUpdate 需要更新的列名和列值对; whereKeyValues 列名和列值条件 */
   bool updateVssDevTbl(std::map<std::string, std::string>& keyValuesToUpdate,
                           std::map<std::string, std::string>& whereKeyValues) {
        QMutexLocker mutexLocker(&m_mutexVisit);
      return update(keyValuesToUpdate, VSSDevTbl_TABLE_NAME, whereKeyValues);
   }
    /** 更新创建二级设备表 keyValuesToUpdate 需要更新的列名和列值对; whereKeyValues 列名和列值条件 */
    bool updateVssDevTbl(std::map<std::string, std::string>& keyValuesToUpdate,
                             string whereKey,
                             string whereValue) {
        std::map<std::string, std::string> whereKeyValues;
        whereKeyValues[whereKey] = whereValue;
        return update(keyValuesToUpdate, VSSDevTbl_TABLE_NAME, whereKeyValues);
    }
   /** 查询创建一级设备表列表  querySql 要查询的sql语句 */
   vector<VssDevTbl> findVssDevTblList(string querySql) {
        QMutexLocker mutexLocker(&m_mutexVisit);
        vector<VssDevTbl> vssDevTblVec;
        vector<map<string, string>> rowDatList = findList(querySql);
        vssDevTblVec.reserve(rowDatList.size());
        for (auto rowData : rowDatList) {
            vssDevTblVec.emplace_back(mapToModel(rowData));
        }
        return vssDevTblVec;
   }
    /**查询创建一级设备表列表 whereKeyValues 列名和列值对条件 */
    vector<VssDevTbl> findVssDevTblList(std::map<std::string, std::string>& whereKeyValues) {
        return findVssDevTblList(string("select * from ") + VSSDevTbl_TABLE_NAME + " where 1=1 " + getWhereColumnNameValuePair(whereKeyValues));
    }
    /**查询所有创建一级设备表列表 */
    vector<VssDevTbl> findAllVssDevTblList() {
        return findVssDevTblList(string("select * from ") + VSSDevTbl_TABLE_NAME + " where 1=1 ");
    }
   /** 查询map列表 querySql 要查询的sql语句 */
   vector<map<string, string>> findMapList(string querySql) {
        QMutexLocker mutexLocker(&m_mutexVisit);
      return findList(querySql);
   }
    /** 执行sql语句 */
    bool execute(string sql) {
        QMutexLocker mutexLocker(&m_mutexVisit);
        return exec(move(sql));
    }
    /** map转model类 */
    VssDevTbl mapToModel(map<string, string>& rowData) {
        VssDevTbl vssDevTbl;
        string IDValue = rowData[VssDevTbl_ID];
        if (IDValue.length() != 0 && IDValue != "NULL") {
            vssDevTbl.ID = std::stoi(IDValue);
        }
        string DevPubIDValue = rowData[VssDevTbl_DevPubID];
        if (DevPubIDValue.length() != 0 && DevPubIDValue != "NULL") {
            vssDevTbl.DevPubID = DevPubIDValue;
        }
        string DevNicknameValue = rowData[VssDevTbl_DevNickname];
        if (DevNicknameValue.length() != 0 && DevNicknameValue != "NULL") {
            vssDevTbl.DevNickname = DevNicknameValue;
        }
        string UserNameValue = rowData[VssDevTbl_UserName];
        if (UserNameValue.length() != 0 && UserNameValue != "NULL") {
            vssDevTbl.UserName = UserNameValue;
        }
        string PasswdValue = rowData[VssDevTbl_Passwd];
        if (PasswdValue.length() != 0 && PasswdValue != "NULL") {
            vssDevTbl.Passwd = PasswdValue;
        }
        string CorpIDValue = rowData[VssDevTbl_CorpID];
        if (CorpIDValue.length() != 0 && CorpIDValue != "NULL") {
            vssDevTbl.CorpID = CorpIDValue;
        }
        string IPValue = rowData[VssDevTbl_IP];
        if (IPValue.length() != 0 && IPValue != "NULL") {
            vssDevTbl.IP = IPValue;
        }
        string PortValue = rowData[VssDevTbl_Port];
        if (PortValue.length() != 0 && PortValue != "NULL") {
            vssDevTbl.Port = std::stoi(PortValue);
        }
        string AliveValue = rowData[VssDevTbl_Alive];
        if (AliveValue.length() != 0 && AliveValue != "NULL") {
            vssDevTbl.Alive = std::stoi(AliveValue);
        }
        string DMarkerValue = rowData[VssDevTbl_DMarker];
        if (DMarkerValue.length() != 0 && DMarkerValue != "NULL") {
            vssDevTbl.DMarker = std::stoi(DMarkerValue);
        }
        string UpdateTimeValue = rowData[VssDevTbl_UpdateTime];
        if (UpdateTimeValue.length() != 0 && UpdateTimeValue != "NULL") {
            vssDevTbl.UpdateTime = UpdateTimeValue;
        }
        return vssDevTbl;
    }
};
#endif //VSSDEVTBL_MANAGER_H