pans
2019-01-25 d8bfb8df31a5d7fde92015ee23d1d44875737f0e
QiaoJiaSystem/DataManagerServer/http_configserver.cpp
@@ -1863,8 +1863,12 @@
        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;
        bool ret = false;
        FieldValues fieldValues;
        fieldValues.insert(std::make_pair("uuid", Uuid));
@@ -1991,10 +1995,10 @@
            subJson.append("\"bwType\":\"" + item.second.bwType + "\",");
            //#todo modify
            subJson.append("\"start_time\":\"" + item.second.startTime + "\",");
            subJson.append("\"end_time\":\"" + item.second.endTime + "\"");
            subJson.append("\"end_time\":\"" + item.second.endTime + "\",");
            subJson.append("\"IsSync\":\"" + item.second.uploadFlag + "\"");
            subJson.append("\"threshold\":\"" + item.second.cmpThreshold + "\"");
            subJson.append("\"IsSync\":\"" + item.second.uploadFlag + "\",");
            subJson.append("\"threshold\":\"" + item.second.cmpThreshold + "\",");
            subJson.append("\"enabled\":\"" + item.second.enabled + "\"");
            subJson.append("},");
            json.append(subJson);
@@ -2037,9 +2041,9 @@
            subJson.append("\"tableType\":\"" + item.tableType + "\",");
            subJson.append("\"bwType\":\"" + item.bwType + "\",");
            subJson.append("\"start_time\":\"" + item.startTime + "\",");
            subJson.append("\"end_time\":\"" + item.endTime + "\"");
            subJson.append("\"IsSync\":\"" + item.uploadFlag + "\"");
            subJson.append("\"threshold\":\"" + item.cmpThreshold + "\"");
            subJson.append("\"end_time\":\"" + item.endTime + "\",");
            subJson.append("\"IsSync\":\"" + item.uploadFlag + "\",");
            subJson.append("\"threshold\":\"" + item.cmpThreshold + "\",");
            subJson.append("\"enabled\":\"" + item.enabled + "\"");
            subJson.append("},");
            json.append(subJson);
@@ -2079,6 +2083,7 @@
        std::string idcard = value["idcard"].asString();
        std::string strUUID = value["uuid"].asString();
        std::string UploadFlag = value["IsSync"].asString();
//        #todo
        cv::Mat image;
        if (img_url.size() > 0) {
@@ -2129,13 +2134,15 @@
        }
        for (auto &item : faceResults) {
            //#todo 去重
            feature_base64 = base64.Encode(item.feature.data(), item.feature.size());
            int x = item.left;
            int y = item.top;
            int w = item.width;
            int h = item.height;
            cv::Rect t_rect = {x, y, w, h};
            auto t_image = image(CvUtil::zoomRect(t_rect, 1.5, 1.5) & cv::Rect(0, 0, image.cols, image.rows)).clone();
            auto t_image = image(CvUtil::zoomRect(t_rect, 2, 2) & cv::Rect(0, 0, image.cols, image.rows)).clone();
            std::vector<uchar> buffer;
            cvutil.cvMat2Buffer(t_image, buffer);
            img_url = "http://";
@@ -2159,16 +2166,16 @@
//        std::string uuid = "";
        bool ret_addPerson = false;
        FieldValues fieldValues;
        AddFaceData addFaceData;
        if (TableName.find("lt_") == 0) {
            FieldValues fieldValues;
            AddFaceData addFaceData;
            addFaceData.feature.resize(faceResults[0].feature.size());
            memcpy(addFaceData.feature.data(), faceResults[0].feature.data(), faceResults[0].feature.size());
            //#todo uuid have value is update
            if (strUUID.size() <= 0) {
                // get Person id
                addFaceData.feature.resize(faceResults[0].feature.size());
                memcpy(addFaceData.feature.data(), faceResults[0].feature.data(), faceResults[0].feature.size());
                // get Person id
                strUUID = AppUtil::getPersonId(m_batch, m_SerialNumber);
                addFaceData.uuid = strUUID;
                addFaceData.faceUrl = img_url;
@@ -2184,14 +2191,22 @@
                fieldValues.insert(std::make_pair("uuid", strUUID));
                fieldValues.insert(std::make_pair("idCard", idcard));
                m_SqliteFaceEncap.updateFace(TableName, addFaceData, fieldValues);
                ret_addPerson = m_SqliteFaceEncap.updateFace(TableName, addFaceData, fieldValues);
            }
        } else {
            //#todo update data
            // get Person id
            strUUID = strUUID.size() > 0 ? strUUID : AppUtil::getPersonId(m_batch, m_SerialNumber);
            ret_addPerson = erlangDbTool->addPerson(strUUID, TableName, feature_base64, img_url, idcard);
            if (strUUID.size() <= 0) {
                strUUID = strUUID.size() > 0 ? strUUID : AppUtil::getPersonId(m_batch, m_SerialNumber);
                ret_addPerson = erlangDbTool->addPerson(strUUID, TableName, feature_base64, img_url, idcard);
            } else {
                addFaceData.uuid = strUUID;
                addFaceData.faceUrl = img_url;
                fieldValues.insert(std::make_pair("uuid", strUUID));
                fieldValues.insert(std::make_pair("idCard", idcard));
//                #todo update
                ret_addPerson = erlangDbTool->updatePerson(TableName, addFaceData, fieldValues);
            }
        }
        if (ret_addPerson && strUUID.size() > 0) {
@@ -2203,7 +2218,17 @@
            if (UploadFlag == "1") {
//                #todo db queue upload to server
                std::thread sendPerson(uploadPersonToServer, this, strUUID, img_url, idcard, feature_base64);
                std::string str_serUrl;
                if (1) {
                    str_serUrl = GET_STR_CONFIG("uploadPersonUrl");
//                string sendUrl = "192.168.1.203:3697/addPerson/uploadToTemporary";
                } else {
                    str_serUrl = GET_STR_CONFIG("uploadPersonUrl");
//                string sendUrl = "192.168.1.203:3697/addPerson/uploadToTemporary";
                }
                std::thread sendPerson(uploadPersonToServer, this, str_serUrl, strUUID, img_url, idcard,
                                       feature_base64);
                sendPerson.detach();
            }
@@ -2326,10 +2351,6 @@
        //#更新底库管理表
        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));
@@ -2343,9 +2364,14 @@
        if (TableType == "person") {
            if (SyncType == 1) {
                fieldValues.insert(std::make_pair("tableName", TableName));
                //同步库
                ret = erlangDbTool->updateDatabase("sys_o_tables", fieldValues);
            } else if (SyncType == 0) {
                if (TableName.find("lt_") != 0) {
                    TableName.insert(0, "lt_");
                }
                fieldValues.insert(std::make_pair("tableName", TableName));
                //本地库
                ret = m_SqliteFaceEncap.updateTable("sys_o_tables", fieldValues);
            }
@@ -3105,9 +3131,8 @@
    }
}
void devHttpServer_c::uploadPersonToServer(devHttpServer_c *t_ptrThis, std::string parm_uuid, std::string parm_img_url,
                                           std::string parm_idcard,
                                           std::string parm_fea) {
void devHttpServer_c::uploadPersonToServer(devHttpServer_c *t_ptrThis, std::string sendUrl, std::string parm_uuid,
                                           std::string parm_img_url, std::string parm_idcard, std::string parm_fea) {
    HttpRequestWithCrul m_requestWithCrul;
    Json::Value perInfos;
    Json::Value perInfo;
@@ -3124,12 +3149,7 @@
    perInfo["cardId"] = parm_idcard;//图片描述
    perInfos.append(perInfo);
    std::string str_serIp = GET_STR_CONFIG("mainServerIp");
    std::string str_serPort = GET_STR_CONFIG("mainServerPort");
//                string sendUrl = "192.168.1.203:3697/addPerson/uploadToTemporary";
    string sendUrl = str_serIp;
    sendUrl.append(":").append(str_serPort).append("/addPerson/uploadToTemporary");
    string postParams = perInfos.toStyledString();
    string str_addRes;