数据传输,数据解析与写数据库

新建分支

克隆代码

git clone http://10.18.30.102:9091/zhangchengshun/datacenterserver.git

切换分支

git checkout v1.4.0

修改代码

cpp 复制代码
void ImageServiceHandler::sendSample(Response &_return, const SampleData &data)
{
    int64 uid = -1;
    int ret = verifyToken(data.token, uid);
    if(0 != ret)
    {
        _return.__set_iRetCode(RET_INVALID_TOKEN);
        cout<<"error invalid token"<<endl;
        return;
    }
    if(m_pThreadPool)
    {
        std::string sqlbuffer;
        if((int)data.deviceType == DEVICE_JMMINI)
        {
            std::string sampleNum = data.sampleNum;
            //解析JSON串

            int dsmode = -1;
            std::string batchNum;
            std::string jmmodel;

            Json::Value root;
            //定义reader对象
            Json::Reader read;
            if(read.parse(sampleNum, root))
            {
                Json::Value dsmodeValue = root["dsmode"];
                Json::Value batchNumValue = root["batchnum"];
                Json::Value jmmodelValue = root["jmmodel"];
                if(!dsmodeValue.isNull())
                {
                    dsmode = dsmodeValue.asInt();
                }
                if(!batchNumValue.isNull())
                {
                    batchNum = batchNumValue.asString();
                }
                if(!jmmodelValue.isNull())
                {
                    jmmodel = jmmodelValue.asString();
                }
            }


            sampleNum = "";//样本编号设为空
            sqlbuffer = (boost::format("insert into %1% (user_id, device_type, device_id, sample_id, detect_time, sample_num, sample_type,"
                          " detector, dilution, model_type, settle_time, dye_level, sample_info, device_code, dsmode, batchnum, jmmodel)"
                          " values(%2%, %3%, %4%, \'%5%\', %6%, \'%7%\', \'%8%\', \'%9%\', %10%, %11%, %12%, %13%, \'%14%\', \'%15%\'"
                          " , %16%, \'%17%\', \'%18%\');")
                    %PRE_SAMPLE_TABLE %uid %(int)data.deviceType %data.deviceId %data.sampleId %data.detectTime
                    %sampleNum %data.sampleType %data.detector %data.dilution %data.modelType
                    %data.depositionTime %data.dyeNo %data.sampleInfo %data.sampleDescription
                    %dsmode %batchNum %jmmodel).str();
        }
        else
        {
            sqlbuffer = (boost::format("insert into %1% (user_id, device_type, device_id, sample_id, detect_time, sample_num, sample_type,"
                          " detector, dilution, model_type, settle_time, dye_level, sample_info, device_code)"
                          " values(%2%, %3%, %4%, \'%5%\', %6%, \'%7%\', \'%8%\', \'%9%\', %10%, %11%, %12%, %13%, \'%14%\', \'%15%\');")
                    %PRE_SAMPLE_TABLE %uid %(int)data.deviceType %data.deviceId %data.sampleId %data.detectTime
                    %data.sampleNum %data.sampleType %data.detector %data.dilution %data.modelType
                    %data.depositionTime %data.dyeNo %data.sampleInfo %data.sampleDescription).str();
        }

        //key uid+devicetype+deviceid+detectTime
        std::string key = to_string(uid) +"_" +to_string(data.deviceType) +"_" +
                to_string(data.deviceId)+ "_" + to_string(data.detectTime);
        m_mapSampleSql[key] = sqlbuffer;
        _return.__set_iRetCode(RET_SUCCESS);
    }
}

部署服务,先停止再启动服务

配置server IP和端口,以及存储目录

配置DB地址,端口,用户名和密码

相关推荐
7***99872 小时前
GaussDB数据库中SQL诊断解析之配置SQL限流
数据库·sql·gaussdb
Wang's Blog3 小时前
MongoDB小课堂: 文档操作核心技术指南:主键机制、CRUD操作与最佳实践
数据库·mongodb
g***26793 小时前
最新SQL Server 2022保姆级安装教程【附安装包】
数据库·性能优化
风123456789~4 小时前
【OceanBase专栏】OB背景知识
数据库·笔记·oceanbase
4***72135 小时前
【玩转全栈】----Django模板语法、请求与响应
数据库·python·django
c***42105 小时前
Django视图与URLs路由详解
数据库·django·sqlite
数据库学啊5 小时前
团队小希望运维简单,时序数据库选型有什么推荐?
运维·数据库·时序数据库
2***65636 小时前
数据库操作与数据管理——Rust 与 SQLite 的集成
数据库·rust·sqlite
V***u4536 小时前
如何查看PostgreSQL的版本
数据库·postgresql