pansen
2018-12-18 42afa2b1a90ae47f75d69073294beaf6746fb401
管理服务器下发人员后通知对比服务
1个文件已删除
1个文件已修改
10565 ■■■■■ 已修改文件
QiaoJiaSystem/DataManagerServer/http_configserver.cpp 172 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/build/erl_crash.dump 10393 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/DataManagerServer/http_configserver.cpp
@@ -21,6 +21,7 @@
//#include "HcRecord.h"
#include <time.h>
#include <dirent.h>
using namespace std;
devHttpServer_c::devHttpServer_c()
@@ -2317,14 +2318,14 @@
            std::string picDate = value["picDate"].asString();
            //std::string path_uuid = videoPath;//value["path_uuid"].asString();
            qint64 sub ;
            std::string  path = getVideoPathByTime(picDate,devId,sub);
            qint64 sub;
            std::string path = getVideoPathByTime(picDate, devId, sub);
            if (path.empty()) {
                ERR("{\"error\":\"not find path\"}");
                return "{\"error\":\"未查到视频路径\"}";
            }
            DBG("path="<<path);
            DBG("path=" << path);
            videoPath.clear();
            videoPath = path;
@@ -2332,10 +2333,10 @@
            // sub = (dt.toMSecsSinceEpoch() - dtFile.toMSecsSinceEpoch());
            //#yanchi buchong
           // sub = sub > 3000 ? sub - 3000 : 0000;
            // sub = sub > 3000 ? sub - 3000 : 0000;
            //shijian yuejie buchang
           // sub = sub < 0 ? 0000 : sub;
           int haomiao = sub % 1000;
            // sub = sub < 0 ? 0000 : sub;
            int haomiao = sub % 1000;
            sub /= 1000;
            int m = sub;
            int shi, fen, miao;
@@ -2414,25 +2415,19 @@
    Json::Reader reader;
    Json::Value value;
    if (reader.parse(content, value))
    {
    if (reader.parse(content, value)) {
        std::string devId = value["videoNum"].asString();
        std::string picDate = value["picDate"].asString();
       qint64 sub;
       std::string path=getVideoPathByTime(picDate,devId,sub);
        if (path.empty())
        {
        qint64 sub;
        std::string path = getVideoPathByTime(picDate, devId, sub);
        if (path.empty()) {
            return "{\"ret_status\":\"内容有误,请检查!\"}";
        }
        else
        {
        } else {
            std::string result = "{\"file_path\":\"" + path + "\"}";
            return result;
        }
    }
    else
    {
    } else {
        return "{\"ret_status\":\"传输错误,请检查!\"}";
    }
}
@@ -2513,90 +2508,83 @@
    return true;
}
 std::string devHttpServer_c::getVideoPathByTime(const std::string& time,const std::string& camId,qint64& sub)
 {
     std::string t_FilePath = appConfig.getStringProperty("cutPath");
std::string devHttpServer_c::getVideoPathByTime(const std::string &time, const std::string &camId, qint64 &sub) {
    std::string t_FilePath = appConfig.getStringProperty("cutPath");
     bool find=false;;
     if (t_FilePath.back() != '/') {
         t_FilePath.push_back('/');
     }
    bool find = false;;
    if (t_FilePath.back() != '/') {
        t_FilePath.push_back('/');
    }
     QDateTime dt = QDateTime::fromString(QString::fromStdString(time), "yyyy-MM-dd hh:mm:ss:zzz");
    QDateTime dt = QDateTime::fromString(QString::fromStdString(time), "yyyy-MM-dd hh:mm:ss:zzz");
      std::string t_strTime=dt.toString("yyyyMMddhh").toStdString();
        //# ./camIndex/YYYYMM/DD/
      t_FilePath.append(camId + "/" + t_strTime.substr(0, 6)+ "/" +t_strTime.substr(6, 2) + "/");
      //YYYYMMDDHH
       t_FilePath.append(t_strTime.substr(0,10) + "/");
    std::string t_strTime = dt.toString("yyyyMMddhh").toStdString();
    //# ./camIndex/YYYYMM/DD/
    t_FilePath.append(camId + "/" + t_strTime.substr(0, 6) + "/" + t_strTime.substr(6, 2) + "/");
    //YYYYMMDDHH
    t_FilePath.append(t_strTime.substr(0, 10) + "/");
     qint64 t=dt.toMSecsSinceEpoch();
     std::vector<std::string> vec=forEachFile(t_FilePath);
     std::sort(vec.begin(),vec.end());
     DBG("t_FilePath" << t_FilePath);
     DBG("vec.size()" << vec.size());
     int size=vec.size();
     for(int i=0;i<size;++i)
     {
         qint64 t1=QDateTime::fromString(QString::fromStdString(vec[i]), "yyyy-MM-dd hh:mm:ss:zzz").toMSecsSinceEpoch();
         if(i+1<size)
         {
             qint64 t2=QDateTime::fromString(QString::fromStdString(vec[i+1]), "yyyy-MM-dd hh:mm:ss:zzz").toMSecsSinceEpoch();
             if(t>=t1 && t<t2)
             {
                 DBG("path="<<vec[i]);
                 t_FilePath+=vec[i]+".mp4";
                 sub=t-t1;
                 find=true;
                 break;
             }
    qint64 t = dt.toMSecsSinceEpoch();
    std::vector<std::string> vec = forEachFile(t_FilePath);
    std::sort(vec.begin(), vec.end());
    DBG("t_FilePath" << t_FilePath);
    DBG("vec.size()" << vec.size());
    int size = vec.size();
    for (int i = 0; i < size; ++i) {
        qint64 t1 = QDateTime::fromString(QString::fromStdString(vec[i]),
                                          "yyyy-MM-dd hh:mm:ss:zzz").toMSecsSinceEpoch();
        if (i + 1 < size) {
            qint64 t2 = QDateTime::fromString(QString::fromStdString(vec[i + 1]),
                                              "yyyy-MM-dd hh:mm:ss:zzz").toMSecsSinceEpoch();
            if (t >= t1 && t < t2) {
                DBG("path=" << vec[i]);
                t_FilePath += vec[i] + ".mp4";
                sub = t - t1;
                find = true;
                break;
            }
         }
         else
         {
             sub=t-t1;
             if(t>=t1 && sub<=3000)
             {
                 DBG("path="<<vec[i]);
                 t_FilePath+=vec[i]+".mp4";
                 find=true;
                 break;
             }
         }
        } else {
            sub = t - t1;
            if (t >= t1 && sub <= 3000) {
                DBG("path=" << vec[i]);
                t_FilePath += vec[i] + ".mp4";
                find = true;
                break;
            }
        }
     }
     DBG("sub="<<sub);
     if(!find)
     {
         t_FilePath="";
     }
     return t_FilePath;
    }
    DBG("sub=" << sub);
    if (!find) {
        t_FilePath = "";
    }
    return t_FilePath;
 }
 std::vector<std::string> devHttpServer_c::forEachFile(const std::string &dir_name)
 {
     std::vector<std::string> v;
     auto dir = opendir(dir_name.data());
     struct dirent *ent;
     int len = 0;
     if (dir) {
         while ((ent = readdir(dir)) != NULL) {
             std::string filename = std::string(ent->d_name);
             std::string temp;
             if(filename!="."&&filename!="..")
             {
}
                 temp = filename.substr(0, filename.rfind('.'));
                 v.push_back(temp);
             }
std::vector<std::string> devHttpServer_c::forEachFile(const std::string &dir_name) {
    std::vector<std::string> v;
    auto dir = opendir(dir_name.data());
    struct dirent *ent;
    int len = 0;
    if (dir) {
        while ((ent = readdir(dir)) != NULL) {
            std::string filename = std::string(ent->d_name);
            std::string temp;
            if (filename != "." && filename != "..") {
         }
         closedir(dir);
     }
     return v;
 }
                temp = filename.substr(0, filename.rfind('.'));
                v.push_back(temp);
            }
        }
        closedir(dir);
    }
    return v;
}
std::string devHttpServer_c::addPersons(std::string ip, unsigned int port, std::string content, PResponse &response) {
    DBG("ip:" << ip << "; port:" << port);
@@ -2644,6 +2632,7 @@
        } else {
            str_result = "[]";
        }
        erlangDbTool->sendMessage();
        return str_result;
    } else {
        response->write(SimpleWeb::StatusCode::server_error_not_implemented, "{\"error\":\"传输错误,请检查!\"}");
@@ -2778,6 +2767,7 @@
            str_res = "{\"result\":\"-1\",\"msg\":\"error\",\"existDataBase\":[]}";
            ERR(ex.what());
        }
        erlangDbTool->sendMessage();
        return str_res;
    } else {
        response->write(SimpleWeb::StatusCode::server_error_not_implemented, "{\"error\":\"传输错误,请检查!\"}");
QiaoJiaSystem/build/erl_crash.dump
File was deleted