From c64a4f19a0a41b62917eb1dc8b0789c9ddf6baab Mon Sep 17 00:00:00 2001
From: pansen <pansen626@sina.com>
Date: 星期五, 15 三月 2019 11:03:50 +0800
Subject: [PATCH] Merge branch 'yw.1.2.fixbug' of ssh://192.168.1.226:29418/development/c++ into yw.1.2

---
 QiaoJiaSystem/DataManagerServer/http_configserver.cpp |  192 ++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 145 insertions(+), 47 deletions(-)

diff --git a/QiaoJiaSystem/DataManagerServer/http_configserver.cpp b/QiaoJiaSystem/DataManagerServer/http_configserver.cpp
index bc9b6f0..07d6de6 100644
--- a/QiaoJiaSystem/DataManagerServer/http_configserver.cpp
+++ b/QiaoJiaSystem/DataManagerServer/http_configserver.cpp
@@ -23,6 +23,13 @@
 #include <dirent.h>
 #include "basic/pipe_element/ffmpeg/basic_struct_for_video_image.h"
 
+#include "vss/controller/VssDevTblController.h"
+#include "vss/controller/VssChannelTblController.h"
+#include "vss/controller/VssDomainUnitTblController.h"
+#include "vss/controller/VssLocalSettingTblController.h"
+#include "vss/controller/VssUpperSvrTblController.h"
+#include "vss/controller/CamDevController.h"
+
 using namespace std;
 
 devHttpServer_c::devHttpServer_c()
@@ -241,6 +248,16 @@
                                std::bind(&devHttpServer_c::getSnapshot, this,
                                          std::placeholders::_1, std::placeholders::_2,
                                          std::placeholders::_3, std::placeholders::_4));
+
+
+    BaseDao::initConnection();
+    BaseSqliteDao::setLDBTool(&db_c);
+    VssDevTblController::instance()->registerHttpServices(_HttpSrvRetRecieve);
+    VssChannelTblController::instance()->registerHttpServices(_HttpSrvRetRecieve);
+    VssDomainUnitTblController::instance()->registerHttpServices(_HttpSrvRetRecieve);
+    VssLocalSettingTblController::instance()->registerHttpServices(_HttpSrvRetRecieve);
+    CamDevController::instance()->registerHttpServices(_HttpSrvRetRecieve);
+    VssUpperSvrTblController::instance()->registerHttpServices(_HttpSrvRetRecieve);
 
 
     _HttpSrvRetRecieve.start();
@@ -986,11 +1003,24 @@
         elem["str_latitude"] = iter->str_latitude.toStdString();
         elem["str_ip"] = iter->str_ip.toStdString();
         elem["n_port"] = iter->n_port;
+        elem["type"] = iter->type;
         elem["str_username"] = iter->str_username.toStdString();
         elem["str_password"] = iter->str_password.toStdString();
         elem["str_brand"] = iter->str_brand.toStdString();
         elem["str_reserved"] = iter->str_reserved.toStdString();
 
+        SdkRuleMap ruleMap = db_c.searchSdkRuleByCamId(iter->str_cam_dev_id);
+
+        int count = ruleMap.size();
+        elem["nSdkTypes"] = Json::arrayValue;
+
+        if (count > 0) {
+            for (auto rule:ruleMap) {
+                if (rule.second.nIsRun == 1) {
+                    elem["nSdkTypes"].append(rule.second.nSdkType);
+                }
+            }
+        }
 //        Record_Cam_Sdk rec_sdk = db_c.searchCamSdkTableByCamId(iter->str_cam_dev_id);
 //        elem["str_sdks"] = rec_sdk.str_sdks.toStdString();
 //        elem["str_det_thr"] = rec_sdk.str_det_thr.toStdString();
@@ -1035,7 +1065,7 @@
         if ((!ret) || (serialnumber[0] == 0)) {
             return "{\"ret_status\": \"鍐呭鏈夎锛岃妫�鏌ワ紒\"}";
         }
-
+        rec.type = 0;
         rec.str_cam_dev_id = QString::fromLatin1((const char *) serialnumber);//鎽勫儚鏈篿d cam_mac
         rec.str_name = QString::fromStdString(value["str_name"].asString());
         rec.str_addr = QString::fromStdString(value["str_addr"].asString());
@@ -1046,6 +1076,7 @@
         rec.str_username = QString::fromStdString(value["str_username"].asString());
         rec.str_password = QString::fromStdString(value["str_password"].asString());
         rec.str_brand = QString::fromStdString(value["str_brand"].asString());
+        rec.str_reserved = QString::fromStdString(value["str_reserved"].asString());
         type = value["n_type"].asInt();
 //        rec_sdk_old = db_c.searchCamSdkTableByCamId(rec.str_cam_dev_id);
 
@@ -1254,26 +1285,35 @@
 
     Json::Reader reader;
     Json::Value value_reader;
-
+    std::string out;
     if (!reader.parse(content, value_reader)) {
         return "{\"ret_status\": \"浼犺緭閿欒锛岃妫�鏌ワ紒\"}";
     }
+    Json::Value value;
+    if (value_reader.isMember("id")) {
+        if (value_reader["id"].isNull()) return "{\"ret_status\": \"id鍐呭鏈夎锛岃妫�鏌ワ紒\"}";
+        value["connect_status"] = "True";
+        std::string rtmp_url = appConfig.getStringProperty("srsAddr");
+        rtmp_url.append("cam").append(value_reader["id"].asCString());
+        value["video_url"] = rtmp_url;
+        out = value.toStyledString();
 
-    //TODO
-    //璋冪敤rtsp娴乺tsp://admin:a1234567@192.168.1.215:554/h264/ch1/main/av_stream
+    } else {
+        //TODO
+        //璋冪敤rtsp娴乺tsp://admin:a1234567@192.168.1.215:554/h264/ch1/main/av_stream
 //    std::string rtsp_url = "rtsp://" + username + ":" + passwd + "@" + ip + ":"  + std::to_string(port) + "/h264/ch1/main/av_stream";
-    bool ret = cam_connect_video_start(value_reader["str_ip"].asString(), value_reader["n_port"].asInt(), \
+        bool ret = cam_connect_video_start(value_reader["str_ip"].asString(), value_reader["n_port"].asInt(), \
                             value_reader["str_username"].asString(), value_reader["str_password"].asString(), \
                             value_reader["str_brand"].asString());
-    if (!ret) {
-        return "{\"ret_status\": \"鍐呭鏈夎锛岃妫�鏌ワ紒\"}";
-    }
+        if (!ret) {
+            return "{\"ret_status\": \"鍐呭鏈夎锛岃妫�鏌ワ紒\"}";
+        }
 
-    std::string rtmp_url = m_rtmp[value_reader["str_ip"].asCString()].appPC->getRtmp();
-    Json::Value value;
-    value["connect_status"] = "True";
-    value["video_url"] = rtmp_url;
-    std::string out = value.toStyledString();
+        std::string rtmp_url = m_rtmp[value_reader["str_ip"].asCString()].appPC->getRtmp();
+        value["connect_status"] = "True";
+        value["video_url"] = rtmp_url;
+        out = value.toStyledString();
+    }
 
     return out;
 }
@@ -1429,12 +1469,12 @@
                 fdfsClient.rwLock.unlock();
             }
 
-            //# http client 127.0.0.1:9999/resetFdfs
-            std::string http_cmd = "http://127.0.0.1:9999/resetFdfs";
-            HttpRequestWithCrul httpRequestWithCrul;
-            std::string response_bak = "";
-            std::string postParams_bak = "";
-            httpRequestWithCrul.curl_post_req("http://127.0.0.1:9999/resetFdfs", postParams_bak, response_bak);
+//            //# http client 127.0.0.1:9999/resetFdfs
+//            std::string http_cmd = "http://127.0.0.1:9999/resetFdfs";
+//            HttpRequestWithCrul httpRequestWithCrul;
+//            std::string response_bak = "";
+//            std::string postParams_bak = "";
+//            httpRequestWithCrul.curl_post_req("http://127.0.0.1:9999/resetFdfs", postParams_bak, response_bak);
         }
     } else {
         return "{\"ret_status\": \"浼犺緭閿欒锛岃妫�鏌ワ紒\"}";
@@ -1859,30 +1899,87 @@
 //    bool ret = false;
 
     if (reader.parse(content, value)) {
+        std::string Uuid = value["uuid"].asString();
         std::string TableType = value["TableType"].asString();
         std::string TableName = value["TableName"].asString();
         int SyncType = atoi(value["SyncType"].asCString());
         std::string BwType = value["BwType"].asString();
         std::string StartTime = value["StartTime"].asString();
         std::string EndTime = value["EndTime"].asString();
+
+        std::string UploadFlag = value["IsSync"].asString();
+        UploadFlag = UploadFlag.empty() ? "0" : UploadFlag;
+        std::string CmpThreshold = value["threshold"].asString();
+        CmpThreshold = CmpThreshold.empty() ? "60" : CmpThreshold;
+        std::string Enabled = value["enabled"].asString();
+        Enabled = Enabled.empty() ? "1" : Enabled;
+
+        std::string createBy = value["createBy"].asString();
+
+        string str_uuid;
+        uuid_t t_uuid;
+        char str[36];
+        uuid_generate(t_uuid);
+        uuid_unparse(t_uuid, str);
+        str_uuid = str;
+        Uuid = Uuid.empty() ? str_uuid : Uuid;
+//        if (createBy == "analyDev") {
+//            Uuid = Uuid.empty() ? str_uuid : Uuid;
+//        } else if (createBy == "conCemter") {
+//            if (Uuid.empty()) {
+//                response->write(SimpleWeb::StatusCode::client_error_bad_request, "{\"error\":\"鍙傛暟閿欒锛� \"}");
+//                return "";
+//            }
+//        }
+
+
         bool ret = false;
-        if (SyncType == 1) {
-            //鍚屾搴�
-            ret = erlangDbTool->createDatabase(TableType, TableName, SyncType, BwType, StartTime, EndTime);
-        } else if (SyncType == 0) {
-            TableName.insert(0, "lt_");
-            //鏈湴搴�
-            FieldValues fieldValues;
-            fieldValues.insert(std::make_pair("uuid", GetUUId::getUUID()));
-            fieldValues.insert(std::make_pair("tableName", TableName));
-            fieldValues.insert(std::make_pair("tableDesc", "ceshi"));
-            fieldValues.insert(std::make_pair("tableType", TableType));
-            fieldValues.insert(std::make_pair("bwType", BwType));
-            fieldValues.insert(std::make_pair("startTime", StartTime));
-            fieldValues.insert(std::make_pair("endTime", EndTime));
-            fieldValues.insert(std::make_pair("create_by", "who"));
-            ret = m_SqliteFaceEncap.createTable(TableName, fieldValues);
+        FieldValues fieldValues;
+        fieldValues.insert(std::make_pair("uuid", Uuid));
+        fieldValues.insert(std::make_pair("tableName", TableName));
+        fieldValues.insert(std::make_pair("tableDesc", "ceshi"));
+        fieldValues.insert(std::make_pair("tableType", TableType));
+        fieldValues.insert(std::make_pair("bwType", BwType));
+        fieldValues.insert(std::make_pair("startTime", StartTime));
+        fieldValues.insert(std::make_pair("endTime", EndTime));
+//        #todo
+        fieldValues.insert(std::make_pair("create_by", createBy));
+
+        fieldValues.insert(std::make_pair("uploadFlag", UploadFlag));
+        fieldValues.insert(std::make_pair("cmpThreshold", CmpThreshold));
+        fieldValues.insert(std::make_pair("enabled", Enabled));
+
+
+        if (TableType == "person") {
+            if (SyncType == 1) {
+                //鍚屾搴�
+                ret = erlangDbTool->createDatabase(Uuid, fieldValues);
+            } else if (SyncType == 0) {
+                TableName.insert(0, "lt_");
+                fieldValues["tableName"] = TableName;
+                //鏈湴搴�
+                ret = m_SqliteFaceEncap.createTable(TableName, fieldValues);
+            }
+        } else if (TableType == "car") {
+            ERR(" not not_implemented");
+            response->write(SimpleWeb::StatusCode::server_error_not_implemented, "{\"error\":\"绫诲瀷閿欒锛屾湭瀹炵幇锛� \"}");
+            return "";
+        } else {
+            response->write(SimpleWeb::StatusCode::server_error_not_implemented, "{\"error\":\"绫诲瀷閿欒锛屾湭璇嗗埆锛� \"}");
+            return "";
         }
+
+
+////            #todo 涓婁紶銆備粎榛戝悕鍗曘��
+////            #TODO 鏍规嵁createBy鍒ゆ柇鏄惁闇�瑕佷笂浼�
+//        if (createBy == "analyDev" && BwType == "1") {
+////            string &Uuid, string &TableName, string &SyncType, string &StartTime,string &EndTime,
+////            string &UploadFlag, string &CmpThreshold, string &Enabled
+//            string str_SyncType(to_string(SyncType));
+//            UploadTaskToMonitorCenter(Uuid, TableName, str_SyncType, StartTime, EndTime, UploadFlag, CmpThreshold,
+//                                      Enabled);
+//        }
+
 
         erlangDbTool->sendMessage();
         std::string str_result = std::string("{\"result\":").append("\"" + std::to_string(ret) + "\"}");
@@ -2334,26 +2431,27 @@
         std::string BwType = value["BwType"].asString();
         std::string StartTime = value["StartTime"].asString();
         std::string EndTime = value["EndTime"].asString();
-
+        //#鏇存柊搴曞簱绠$悊琛�
+        FieldValues fieldValues;
+        fieldValues.insert(std::make_pair("uuid", Uuid));
+        fieldValues.insert(std::make_pair("tableName", TableName));
+//            fieldValues.insert(std::make_pair("tableDesc", "ceshi2"));
+        fieldValues.insert(std::make_pair("tableType", TableType));
+        fieldValues.insert(std::make_pair("bwType", BwType));
+        fieldValues.insert(std::make_pair("startTime", StartTime));
+        fieldValues.insert(std::make_pair("endTime", EndTime));
+//            fieldValues.insert(std::make_pair("create_by", "who"));
         bool ret = false;
         if (SyncType == 1) {
             //鍚屾搴�
-            ret = erlangDbTool->updateDatabase(Uuid, TableType, TableName, SyncType, BwType, StartTime, EndTime);
+            ret = erlangDbTool->updateDatabase("sys_o_tables", fieldValues);
         } else if (SyncType == 0) {
             //鏈湴搴�
-            //#鏇存柊搴曞簱绠$悊琛�
-            FieldValues fieldValues;
-            fieldValues.insert(std::make_pair("uuid", Uuid));
             if (TableName.find("lt_") != 0) {
                 TableName.insert(0, "lt_");
             }
-            fieldValues.insert(std::make_pair("tableName", TableName));
-//            fieldValues.insert(std::make_pair("tableDesc", "ceshi2"));
-            fieldValues.insert(std::make_pair("tableType", TableType));
-            fieldValues.insert(std::make_pair("bwType", BwType));
-            fieldValues.insert(std::make_pair("startTime", StartTime));
-            fieldValues.insert(std::make_pair("endTime", EndTime));
-//            fieldValues.insert(std::make_pair("create_by", "who"));
+            fieldValues["tableName"] = TableName;
+
             ret = m_SqliteFaceEncap.updateTable("sys_o_tables", fieldValues);
         }
 

--
Gitblit v1.8.0