派生自 development/c++

pansen
2019-03-05 ed223aee5fe5f3b222488549597976f34c679c3d
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
149
150
151
152
#ifndef LDBTOOL_H
#define LDBTOOL_H
 
//#include <QObject>
#include <QSqlDatabase>
#include <QSqlTableModel>
#include <QSqlQuery>
#include <QSqlRecord>
#include <QSqlError>
#include "DBStruct.h"
#include <QJsonDocument>
#include <QJsonObject>
#include <QDateTime>
#include <QMutexLocker>
 
class LDBTool
{
public:
//    explicit LDBTool(QObject *parent = nullptr);
    LDBTool();
    ~LDBTool();
 
    void connectDB();
 
    //DeviceTable
    bool insertDeviceTable(Record_Storage_Dev deviceRec);
    bool deleteDeviceTable(QString strDeviceId);
    bool deleteDeviceTableAndChnAndSdk(QString str_storage_dev_id);
    bool updateDeviceTable(Record_Storage_Dev deviceRec);
    std::list<Record_Storage_Dev> searchDeviceTableAll(void);
    int searchDeviceNumber(void);
    Record_Storage_Dev searchDeviceTableByDeviceId(QString strDeviceId);
    int searchDurationByDeviceId(QString strDeviceId);
 
    //ChannelTable
    bool insertChannelTable(Record_Cam_Chn channelRec);
    bool deleteChannelTable(QString strDeviceId, int nChannelId);
    bool deleteChannelTableByCamID(QString strCamId);
    bool updateChannelTable(Record_Cam_Chn channelRec);
    std::list<Record_Cam_Chn> searchChannelTableAll(void);
    std::list<Record_Cam_Chn> searchChannelTableByDevlId(QString strDeviceId);
    Record_Cam_Chn searchOldestRecordfromChnTableByUpdateTime(void);
    Record_Cam_Chn searchChannelTableByChannelId(QString strDeviceId, int nChannelId);
    Record_Cam_Chn searchNewestRecordfromChnTableByChannelId(QString strDeviceId, int nChannelId);
    Record_Cam_Chn searchOldestRecordfromChnTableByChannelId(QString strDeviceId, int nChannelId);
    std::list<Record_Cam_Chn> searchChannelTableCamType(void);
 
    //cam_dev
    bool insertCamDevTable(Record_Cam_Dev channelRec);
    bool deleteCamDevandSdkByCamID(QString strCamId);
    bool updateCamDevTable(Record_Cam_Dev camRec);
    std::list<Record_Cam_Dev> searchCamDevTableAll(void);
    std::list<Record_Cam_Dev> searchCamDevTableByType(int type);
    int searchCamDevNumber(void);
    bool searchCamDevByCamId(QString strCamId);
    bool updateCamDevSnapshot(const QString& strIp ,const QString& imgUrl);
 
    //load_file_info
    bool insertLoadFileTable(Record_Load_File_info loadfileRec);
    bool deleteLoadFileTable(QString strDeviceId, int nChannelId, QDateTime tim_startTime);
    bool deleteLoadFileTablebyDevID(QString strDeviceId);
    bool updateLoadFileTable(Record_Load_File_info loadfileRec);
    std::list<Record_Load_File_info> searchLoadFileTableAll(void);
    Record_Load_File_info searchOldestRecordfromLoadTableByUpdateTime(void);
 
    //insert rec to loadfile_info && update cam_chn
    bool insertLoadFileTableAndUpdateChannelTable(Record_Load_File_info loadfileRec,
                                                  Record_Cam_Chn channelRec);
 
    //cut_video_info
    bool insertCutVideoTable(Record_Cut_Video_info cutVideoRec);
    bool deleteCutVideoTable(QString strDeviceId, int nChannelId, QString strSrcPath);
    bool deleteCutVideoTablebyDevID(QString strDeviceId);
    bool updateCutVideoTable(Record_Cut_Video_info cutVideoRec);
    bool updateCutVideoTable(std::string src_path, std::string dst_path, int total);
    std::list<Record_Cut_Video_info> searchCutVideoTableAll(void);
    Record_Cut_Video_info searchOldestRecordfromCutTableByUpdateTime(void);
 
    //insert rec to cut_video_info && delete load_file_info
    bool insertCutVideoTableAndDeleteLoadFileTable(Record_Cut_Video_info cutVideoRec,
                                                   QString strDeviceId, int nChannelId,
                                                   QDateTime tim_loadStartTime);
 
    //sdk_hdl_info
    bool insertSdkHdlTable(Record_Sdk_Hdl_info sdkHdlRec);
    bool deleteSdkHdlTable(QString strSrcPath);
    bool updateSdkHdlTable(Record_Sdk_Hdl_info sdkHdlRec);
    bool updateSdkHdlTablePos(QString str_src_path,int pos);
    std::list<Record_Sdk_Hdl_info> searchSdkHdlTableAll(void);
    bool deleteSdkHdlTablebyDevID(QString strDevId);
 
    //insert rec to sdk_hdl_info && delete cut_video_info
    bool insertSdkHdlTableAndDeleteCutVideoTable(Record_Sdk_Hdl_info sdkHdlRec,\
                                                 QString strDeviceId, \
                                                 int nChannelId, \
                                                 QString strCutSrcPath);
 
    //chn_sdk
    bool insertChnSdkTable(Record_Chn_Sdk chnSdkRec);
    bool deleteChnSdkTable(QString strDeviceId, int nChannelId);
    bool updateChnSdkTable(Record_Chn_Sdk chnSdkRec);
    std::list<Record_Chn_Sdk> searchChnSdkTableAll(void);
    Record_Chn_Sdk searchChnSdkTableByChannelId(QString strDeviceId, int nChannelId);
//    Record_Chn_Sdk searchChnSdkTableByCam(QString strCamId);
 
    bool updateDevChnAndSdk(Record_Cam_Chn channelRec, Record_Chn_Sdk chnSdkRec);
//    bool updateCamAndSdk(Record_Cam_Chn channelRec, Record_Chn_Sdk chnSdkRec);
 
    bool insertCamSdkTable(Record_Cam_Sdk camSdkRec);
    bool deleteCamSdkTable(QString strCamDevId);
    bool updateCamSdkTable(Record_Cam_Sdk camSdkRec);
    Record_Cam_Sdk searchCamSdkTableByCamId(QString strCamId);
    bool updateCamAndSdkTable(Record_Cam_Dev camRec, Record_Cam_Sdk camSdkRec);
 
    //config
    bool updateConfigTableByServerInfo(Record_Config configRec);
    bool updateConfigTableByCutDuration(int n_cut_max_duration,int n_cut_min_duration);
    Record_Config searchConfigTableWithinServerInfo(void);
    bool updateConfigTableByDevType(int devType);
    int searchDevTypeFromConfigTable(void);
    //Record_Config searchDevIdFromConfigTable(void);
    bool updateDevNameConfigTable(QString dev_name);
    //name_key_match
    bool insertRecordVedioPath(QString pathKey,QString filePath);
    QString  searchRecordVedioPathByKey(QString pathKey);
 
    //rule_week
    bool updateCameraWeekRule(const LActRuleWeekRecord& weekRule);
    std::vector<LActRuleWeekRecord> searchCameraWeekRuleByCamId(const QString& camId,const int& sdkType);
 
    //sdk_rule
    bool updateSdkRule(const SdkRule& sdkRule);
    SdkRuleMap searchSdkRuleByCamId(const QString& camId);
private:
    QSqlDatabase m_db;
    QSqlTableModel *m_pModel;
 
    QMutex m_mutexVisit;
public:
    QSqlDatabase* get_m_db() {
        return &m_db;
    }
    QSqlTableModel* get_m_pModel() {
        return m_pModel;
    }
    QMutex* get_m_mutexVisit() {
        return &m_mutexVisit;
    }
 
};
 
#endif // LDBTOOL_H