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

新建分支

克隆代码

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

相关推荐
星星也在雾里4 小时前
PgBouncer 解决 PostgreSQL 连接数超限 + 可视化监控
数据库·postgresql
雨辰AI6 小时前
SpringBoot3 + 人大金仓读写分离 + 分库分表 + 集群高可用 全栈实战
java·数据库·mysql·政务
长城20246 小时前
关于MySql的ONLY_FULL_GROUP_BY问题
数据库·mysql·聚合列
常常有6 小时前
MySQL 底层执行原理:输入SQL语句到两阶段提交
数据库·sql·mysql
Mr. zhihao7 小时前
深入解析redis基本数据结构
数据结构·数据库·redis
m0_748839497 小时前
利用天正暖通CAD快速掌握风管数量统计的方法
数据库
随身数智备忘录7 小时前
什么是设备管理体系?设备管理体系包含哪些核心模块?
网络·数据库·人工智能
海市公约8 小时前
MySQL更新语句执行全流程:从Buffer Pool修改到二阶段提交
数据库·mysql·binlog·innodb·undo log·二阶段提交·update执行原理
颂love8 小时前
MySQL的执行流程
android·数据库·mysql
程序leo源8 小时前
Qt窗口详解
开发语言·数据库·c++·qt·青少年编程·c#