派生自 development/c++

pansen
2019-03-07 979bc003bce710bf300bc2bd87a8278585678763
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
 
#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) {
        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);
        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