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

新建分支

克隆代码

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地址,端口,用户名和密码

相关推荐
oradh41 分钟前
Oracle XTTS实现跨版本迁移和升级(Oracle 11g单库升级至19C RAC集群)
数据库·oracle·11g升级19c·xtts跨版本迁移和升级
z123456789862 小时前
2026最新两款AI编程工具深度对比实测
java·数据库·ai编程
程序猿DD2 小时前
一个 API Key,统一调用大模型、生图和联网搜索
数据库·网关
TlSfoward3 小时前
抓包代理链路下的 TLS 指纹变化分析 TLSFOWARD抓包工具
数据库·爬虫·网络协议·搜索引擎·php
数智化管理手记3 小时前
账龄分析手工统计易遗漏?自动账龄分析工具怎么搭建
大数据·网络·数据库·人工智能·数据挖掘
LabVIEW开发3 小时前
NI Package Manager安装LabVIEW时InternalServerError错误
网络·数据库·labview·labview知识·labview功能·labview程序
SelectDB3 小时前
PostgreSQL 实时同步到 Apache Doris:一站式 CDC 解决方案
数据库
Database_Cool_4 小时前
AI Agent 长期记忆怎么存?阿里云 PolarDB-X 对接 Mem0 记忆框架实践
数据库·阿里云
会编程的土豆4 小时前
数据库范式
数据库·oracle
L1624764 小时前
MySQL 全环境生产快速安装 + 完整配置手册(整合国产银河麒麟适配 + 主从补充版)
数据库·mysql