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

新建分支

克隆代码

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

相关推荐
歪歪10017 分钟前
如何在SQLite中实现事务处理?
java·开发语言·jvm·数据库·sql·sqlite
瑶总迷弟21 分钟前
静默安装 Oracle Database 21c on CentOS 7.6
数据库·oracle·centos
博睿谷IT99_2 小时前
SQL SELECT 语句怎么用?COMPANY 表查询案例(含条件 / 模糊 / 分页)
数据库·sql·mysql
浅拾光º2 小时前
mysql字符串截取,如何在MySQL备份文件中安全截取敏感字符串?
数据库·mysql·安全
鸠摩智首席音效师2 小时前
如何删除 MySQL 数据库中的所有数据表 ?
数据库·mysql·oracle
Hey! Hey!2 小时前
DBA 系统学习计划(从入门到进阶)
数据库·学习·dba
没有bug.的程序员2 小时前
SQL 执行计划解析:从 EXPLAIN 到性能优化的完整指南
java·数据库·sql·性能优化·explain·执行计划
qqxhb3 小时前
系统架构设计师备考第30天——关系数据库
数据库·系统架构·数据库设计·关系模式·范式·关系远算·完整性规则
小心草里有鬼3 小时前
Linux 数据库 Mysql8 主从复制
linux·运维·数据库·sql·mysql
chen_note3 小时前
Keepalived两个集群实验
linux·服务器·数据库·keepalived·高可用集群