diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index dcc0bf5..bf365b9 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -1,5 +1,10 @@ #include "basecommonapi.h" #include +#include +#include +#include +#include + BaseCommonApi::BaseCommonApi() { @@ -9,6 +14,7 @@ const QString BaseCommonApi::measure_person_id="1695282436182188034"; + //sys_user表的id转换为measure_person_id 检定人id(meter_staff表id) StaffInfo BaseCommonApi::ConvertStaffInfo(QString userId) { @@ -58,6 +64,45 @@ return result; } +//登录接口 + +QString privateKey = "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAK7mTyBxMUnLlS0x+a0qJHd/8RxR73eTN+15GPr6wzl8dG86Jvzb66pAyOBpFmIxyvceIcgVjm8Dpz5F9vlHYI6K2g6HHID1TZ4teSfPEtRAgCpcC8pA7wqd6sDVCNx2zvGEkHZc+FYWVjhFW0xPbCvaUx3b1AMTgX+TPIOE0GnHAgMBAAECgYEAhJApfzRsIDu++L99N4POmgiOLmHn+CDMbiCwD2LLX6H1+mwAKv1hVOy/lF/ySEDnToA3KJk2GOyS8X9EH1K7WmxRcJ1am1JLwy+spHkExQzvAO9mrEhtavpwAZLiBoCUB4uQazETHncM0lNXtUYY8Ydd/zKodCMVPN4tql84f0kCQQDrPEgk6vdAc8vW1JL3ldhRkbl7DKuvDhhoixGEbXrsXXiKN6iB0A3lNTptMxcd1TjSJz8CF8piGRpVyLGoZOYLAkEAvlaXoVXndT+hbsStjORp2RGxZWMPyyyJ4Kw2TnMaUuODXA0PtnYcSA5lI6SpVAvTthSX7VDi5C9xLyc+QRvMtQJAVjzhTfd98XkCL536yx16El1UHFJG1oRaWmkxYNUqDWEvAazp770weukKpGHohZ1XmWOd68yA+3msd+p9hviGhQJAUIntgUwLM3aoRWmdkhd4nmw5JxCCt1LySIo2NH3J7rbsd3/jXS6fCvJkY2+iYrjabZpLKxTl3O4iM3SkiAJOXQJBAN++IAMMs7HVTQnsIN+L+tQwcWM5jn0sSRLGFvSkPjlT2W++qJNTW/oswmcQTPFn7Vf3GaE5JF6XAxrZMOZBG00="; +QString publicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCu5k8gcTFJy5UtMfmtKiR3f/EcUe93kzfteRj6+sM5fHRvOib82+uqQMjgaRZiMcr3HiHIFY5vA6c+Rfb5R2COitoOhxyA9U2eLXknzxLUQIAqXAvKQO8KnerA1Qjcds7xhJB2XPhWFlY4RVtMT2wr2lMd29QDE4F/kzyDhNBpxwIDAQAB"; + +// 加密 +QString BaseCommonApi::encrypt(const QString &str, const QString &publicKey) { + QByteArray pubKey = QByteArray::fromBase64(publicKey.toUtf8()); + QString outStr; + QString command = "openssl rsautl -encrypt -pubin -inkey <(echo \"" + pubKey + "\")"; + + QProcess process; + process.setProcessChannelMode(QProcess::MergedChannels); + process.start(command); + process.write(str.toUtf8()); + process.closeWriteChannel(); + process.waitForFinished(-1); + outStr = QString::fromUtf8(process.readAll()); + return outStr.trimmed().toUtf8().toBase64(); +} + +// 解密 +QString decrypt(const QString &str, const QString &privateKey) { + QByteArray inputByte = QByteArray::fromBase64(str.toUtf8()); + QByteArray priKey = QByteArray::fromBase64(privateKey.toUtf8()); + QString outStr; + QString command = "openssl rsautl -decrypt -inkey <(echo \"" + priKey + "\")"; + + QProcess process; + process.setProcessChannelMode(QProcess::MergedChannels); + process.start(command); + process.write(inputByte); + process.closeWriteChannel(); + process.waitForFinished(-1); + outStr = QString::fromUtf8(process.readAll()); + return outStr.trimmed(); +} + + @@ -1429,7 +1474,7 @@ bool BaseCommonApi::InsertInstructionLib(InstructionLib instructionLib) { QSqlQuery query; - query.prepare("INSERT INTO zd_instruction_library (id,device_id,device_name,instruct_config,instruct_read,type,verification_id,check_id,create_time,update_time) " + query.prepare("INSERT INTO zd_instruction_library (id,device_id,device_name,instruct_config,instruct_read,type,belong_vername,belong_checkname,create_time,update_time) " " VALUES (:id,:device_id,:device_name,:instruct_config,:instruct_read,:type,:belong_vername,:belong_checkname,:create_time,:update_time)"); query.bindValue(":id", instructionLib.id); @@ -1443,6 +1488,7 @@ query.bindValue(":create_time", instructionLib.create_time); query.bindValue(":update_time", instructionLib.update_time); bool isSuccess = query.exec(); + qDebug() << "InsertTaskBasic query failed: " << query.lastQuery(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); } @@ -1888,14 +1934,14 @@ return isSuccess; } - //自动检定和自动核查 查询实验室及温湿度 最新的1条 TODO 待修改 查指定表的地点或者介质 -LocationInfo BaseCommonApi::getLocationInfo() + //自动检定和自动核查 查询实验室及温湿度 +QList BaseCommonApi::getLocationInfo() { - LocationInfo result; + QList result; QSqlQuery query; bool isSuccess = query.exec("SELECT * FROM env_location_info eli LEFT JOIN ( SELECT temperature, humidity, location_id AS locationId " " FROM env_environment_record_data ) ethd ON ethd.locationId = eli.id " - " ORDER BY update_time DESC LIMIT 1"); + " ORDER BY update_time DESC"); if (isSuccess) { while (query.next()) { LocationInfo info; @@ -1911,7 +1957,7 @@ info.temperature = query.value("temperature").toString(); info.humidity = query.value("humidity").toString(); info.location_id = query.value("location_id").toString(); - result = info; + result.append(info); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); @@ -1943,7 +1989,7 @@ } return result; } - //查询所有用户,用于自动检定/核查 结果保存 地点下拉框查询 + //查询所有用户,用于自动检定/核查 结果保存 QList BaseCommonApi::getUser() { QList result; diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.cpp b/softwareDirectory/AutoVerScheme/basecommonapi.cpp index dcc0bf5..bf365b9 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.cpp +++ b/softwareDirectory/AutoVerScheme/basecommonapi.cpp @@ -1,5 +1,10 @@ #include "basecommonapi.h" #include +#include +#include +#include +#include + BaseCommonApi::BaseCommonApi() { @@ -9,6 +14,7 @@ const QString BaseCommonApi::measure_person_id="1695282436182188034"; + //sys_user表的id转换为measure_person_id 检定人id(meter_staff表id) StaffInfo BaseCommonApi::ConvertStaffInfo(QString userId) { @@ -58,6 +64,45 @@ return result; } +//登录接口 + +QString privateKey = "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAK7mTyBxMUnLlS0x+a0qJHd/8RxR73eTN+15GPr6wzl8dG86Jvzb66pAyOBpFmIxyvceIcgVjm8Dpz5F9vlHYI6K2g6HHID1TZ4teSfPEtRAgCpcC8pA7wqd6sDVCNx2zvGEkHZc+FYWVjhFW0xPbCvaUx3b1AMTgX+TPIOE0GnHAgMBAAECgYEAhJApfzRsIDu++L99N4POmgiOLmHn+CDMbiCwD2LLX6H1+mwAKv1hVOy/lF/ySEDnToA3KJk2GOyS8X9EH1K7WmxRcJ1am1JLwy+spHkExQzvAO9mrEhtavpwAZLiBoCUB4uQazETHncM0lNXtUYY8Ydd/zKodCMVPN4tql84f0kCQQDrPEgk6vdAc8vW1JL3ldhRkbl7DKuvDhhoixGEbXrsXXiKN6iB0A3lNTptMxcd1TjSJz8CF8piGRpVyLGoZOYLAkEAvlaXoVXndT+hbsStjORp2RGxZWMPyyyJ4Kw2TnMaUuODXA0PtnYcSA5lI6SpVAvTthSX7VDi5C9xLyc+QRvMtQJAVjzhTfd98XkCL536yx16El1UHFJG1oRaWmkxYNUqDWEvAazp770weukKpGHohZ1XmWOd68yA+3msd+p9hviGhQJAUIntgUwLM3aoRWmdkhd4nmw5JxCCt1LySIo2NH3J7rbsd3/jXS6fCvJkY2+iYrjabZpLKxTl3O4iM3SkiAJOXQJBAN++IAMMs7HVTQnsIN+L+tQwcWM5jn0sSRLGFvSkPjlT2W++qJNTW/oswmcQTPFn7Vf3GaE5JF6XAxrZMOZBG00="; +QString publicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCu5k8gcTFJy5UtMfmtKiR3f/EcUe93kzfteRj6+sM5fHRvOib82+uqQMjgaRZiMcr3HiHIFY5vA6c+Rfb5R2COitoOhxyA9U2eLXknzxLUQIAqXAvKQO8KnerA1Qjcds7xhJB2XPhWFlY4RVtMT2wr2lMd29QDE4F/kzyDhNBpxwIDAQAB"; + +// 加密 +QString BaseCommonApi::encrypt(const QString &str, const QString &publicKey) { + QByteArray pubKey = QByteArray::fromBase64(publicKey.toUtf8()); + QString outStr; + QString command = "openssl rsautl -encrypt -pubin -inkey <(echo \"" + pubKey + "\")"; + + QProcess process; + process.setProcessChannelMode(QProcess::MergedChannels); + process.start(command); + process.write(str.toUtf8()); + process.closeWriteChannel(); + process.waitForFinished(-1); + outStr = QString::fromUtf8(process.readAll()); + return outStr.trimmed().toUtf8().toBase64(); +} + +// 解密 +QString decrypt(const QString &str, const QString &privateKey) { + QByteArray inputByte = QByteArray::fromBase64(str.toUtf8()); + QByteArray priKey = QByteArray::fromBase64(privateKey.toUtf8()); + QString outStr; + QString command = "openssl rsautl -decrypt -inkey <(echo \"" + priKey + "\")"; + + QProcess process; + process.setProcessChannelMode(QProcess::MergedChannels); + process.start(command); + process.write(inputByte); + process.closeWriteChannel(); + process.waitForFinished(-1); + outStr = QString::fromUtf8(process.readAll()); + return outStr.trimmed(); +} + + @@ -1429,7 +1474,7 @@ bool BaseCommonApi::InsertInstructionLib(InstructionLib instructionLib) { QSqlQuery query; - query.prepare("INSERT INTO zd_instruction_library (id,device_id,device_name,instruct_config,instruct_read,type,verification_id,check_id,create_time,update_time) " + query.prepare("INSERT INTO zd_instruction_library (id,device_id,device_name,instruct_config,instruct_read,type,belong_vername,belong_checkname,create_time,update_time) " " VALUES (:id,:device_id,:device_name,:instruct_config,:instruct_read,:type,:belong_vername,:belong_checkname,:create_time,:update_time)"); query.bindValue(":id", instructionLib.id); @@ -1443,6 +1488,7 @@ query.bindValue(":create_time", instructionLib.create_time); query.bindValue(":update_time", instructionLib.update_time); bool isSuccess = query.exec(); + qDebug() << "InsertTaskBasic query failed: " << query.lastQuery(); if (!isSuccess) { qDebug() << "InsertTaskBasic query failed: " << query.lastError().text(); } @@ -1888,14 +1934,14 @@ return isSuccess; } - //自动检定和自动核查 查询实验室及温湿度 最新的1条 TODO 待修改 查指定表的地点或者介质 -LocationInfo BaseCommonApi::getLocationInfo() + //自动检定和自动核查 查询实验室及温湿度 +QList BaseCommonApi::getLocationInfo() { - LocationInfo result; + QList result; QSqlQuery query; bool isSuccess = query.exec("SELECT * FROM env_location_info eli LEFT JOIN ( SELECT temperature, humidity, location_id AS locationId " " FROM env_environment_record_data ) ethd ON ethd.locationId = eli.id " - " ORDER BY update_time DESC LIMIT 1"); + " ORDER BY update_time DESC"); if (isSuccess) { while (query.next()) { LocationInfo info; @@ -1911,7 +1957,7 @@ info.temperature = query.value("temperature").toString(); info.humidity = query.value("humidity").toString(); info.location_id = query.value("location_id").toString(); - result = info; + result.append(info); } } else { qDebug() << "Query execution failed: " << query.lastError().text(); @@ -1943,7 +1989,7 @@ } return result; } - //查询所有用户,用于自动检定/核查 结果保存 地点下拉框查询 + //查询所有用户,用于自动检定/核查 结果保存 QList BaseCommonApi::getUser() { QList result; diff --git a/softwareDirectory/AutoVerScheme/basecommonapi.h b/softwareDirectory/AutoVerScheme/basecommonapi.h index 6ff8519..a132816 100644 --- a/softwareDirectory/AutoVerScheme/basecommonapi.h +++ b/softwareDirectory/AutoVerScheme/basecommonapi.h @@ -824,6 +824,9 @@ const static QString temporary_costomer_id; const static QString measure_person_id; + + QString encrypt(const QString &str, const QString &publicKey); + //判断检定装置表并查询 参数设备id static QList Search_CalibrationTable(QString DeiverId,QStringList *HeadList); @@ -970,8 +973,8 @@ static bool InsertStandardCheckDatePistonGauge(StandardCheckDatePistonGauge gauge); //自动核查-结果保存-基本信息 static bool InsertCheckDataManageBasicInfo(CheckDataManageBasicInfo baseInfo); - //查询实验室及温湿度 最新的1条,即上次 待修改 禁用 - static LocationInfo getLocationInfo(); + //查询实验室及温湿度 + static QList getLocationInfo(); //查询出所有实验室地点,用于自动检定/核查 结果保存 地点下拉框查询 static QList getLocationInfoList(); //查询所有用户,用于自动检定/核查 结果保存 地点下拉框查询