| | |
| | | #include <QClipboard> |
| | | #include <QDateTime> |
| | | #include <QDebug> |
| | | #include <QDesktopServices> |
| | | #include <QFileDialog> |
| | | #include <QMessageBox> |
| | | #include <QProcess> |
| | |
| | | ui->pushButton_dateset->setVisible(false); |
| | | ui->pushButton_adddate->setVisible(false); |
| | | ui->pushButton_reducedate->setVisible(false); |
| | | ui->lineEdit_basenum->setVisible(false); |
| | | ui->lineEdit_biosnum->setVisible(false); |
| | | ui->lineEdit_basenum_2->setVisible(false); |
| | | ui->lineEdit_biosnum_2->setVisible(false); |
| | | ui->label_basenum->setVisible(false); |
| | | ui->label_biosnum->setVisible(false); |
| | | ui->label_basenum_2->setVisible(false); |
| | | ui->label_biosnum_2->setVisible(false); |
| | | //前七条是简化加密数据必用的,在这里设定好方便对应 |
| | | m_numToInfo.insert("1","Baseboard_Uuid"); |
| | | m_numToInfo.insert("2","CPU_Processorid"); |
| | |
| | | m_numToInfo.insert("12","IsEnabled_pipe"); |
| | | m_numToInfo.insert("13","IsEnabled_network"); |
| | | m_numToInfo.insert("14","Baseboard_Serialnumber"); |
| | | changeUIstate(); |
| | | } |
| | | |
| | | QString MainWindow::toUpperAndLower(QString src) |
| | |
| | | QString hashkey32 = EncryptData(hashkey64,QCryptographicHash::Md5); |
| | | QString AESresult = AES_decryption(b64result,hashkey32); |
| | | decodedText = DecodebyBase64(AESresult); |
| | | qDebug()<<"AESresult"<<AESresult; |
| | | qDebug()<<"decodedText"<<decodedText; |
| | | //添加解压缩的操作 |
| | | QByteArray text = decodedText.toLocal8Bit(); |
| | | QByteArray jsonData = qUncompress(text.fromBase64(text)); |
| | | qDebug()<<"jsonData"<<jsonData; |
| | | // decodedText = DecodebyBase64(QString::fromLocal8Bit(jsonData)); |
| | | decodedText = QString(jsonData); |
| | | return decodedText; |
| | |
| | | // ui->label_isaquifer_2->setText(licenseinfo.IsEnabled_aquifer==0?QStringLiteral("未激活"):QStringLiteral("已激活")); |
| | | // ui->label_ispipe_2->setText(licenseinfo.IsEnabled_pipe==0?QStringLiteral("未激活"):QStringLiteral("已激活")); |
| | | // ui->label_isnetwork_2->setText(licenseinfo.IsEnabled_network==0?QStringLiteral("未激活"):QStringLiteral("已激活")); |
| | | ui->label_iscell_2->setText(localinfo.ActiveState==0?QStringLiteral("未激活"):QStringLiteral("已激活")); |
| | | ui->label_isaquifer_2->setText(localinfo.ActiveState==0?QStringLiteral("未激活"):QStringLiteral("已激活")); |
| | | ui->label_ispipe_2->setText(localinfo.ActiveState==0?QStringLiteral("未激活"):QStringLiteral("已激活")); |
| | | ui->label_isnetwork_2->setText(localinfo.ActiveState==0?QStringLiteral("未激活"):QStringLiteral("已激活")); |
| | | ui->label_iscell_2->setText(licenseinfo.ActiveState==0?QStringLiteral("未激活"):QStringLiteral("已激活")); |
| | | ui->label_isaquifer_2->setText(licenseinfo.ActiveState==0?QStringLiteral("未激活"):QStringLiteral("已激活")); |
| | | ui->label_ispipe_2->setText(licenseinfo.ActiveState==0?QStringLiteral("未激活"):QStringLiteral("已激活")); |
| | | ui->label_isnetwork_2->setText(licenseinfo.ActiveState==0?QStringLiteral("未激活"):QStringLiteral("已激活")); |
| | | } |
| | | } |
| | | |
| | |
| | | { |
| | | QString encryptlocalid = ui->textEdit_localid->toPlainText(); |
| | | QString localid = getDecrypt(encryptlocalid,key); |
| | | qDebug()<<"localid"<<localid; |
| | | QByteArray localidbyte = localid.toLocal8Bit(); |
| | | qDebug()<<"localidbyte"<<localidbyte; |
| | | QJsonParseError err_rpt; |
| | | QJsonDocument localidjsondoc(QJsonDocument::fromJson(localid.toUtf8(), &err_rpt));//字符串格式化为JSON |
| | | if(err_rpt.error != QJsonParseError::NoError) |
| | |
| | | // localinfo.Versionid = localid_Obj.value("Versionid").toString(); |
| | | |
| | | //与之前的加密对应,且去掉冗余信息 |
| | | // localinfo.Baseboard_Serialnumber = localid_Obj.value(m_numToInfo.key("Baseboard_Serialnumber")).toString(); |
| | | localinfo.Baseboard_Uuid = localid_Obj.value(m_numToInfo.key("Baseboard_Uuid")).toString(); |
| | | // localinfo.Bios_Serialnumber = localid_Obj.value(m_numToInfo.key("Bios_Serialnumber")).toString(); |
| | | localinfo.CPU_Processorid = localid_Obj.value(m_numToInfo.key("CPU_Processorid")).toString(); |
| | | localinfo.Username = localid_Obj.value(m_numToInfo.key("Username")).toString(); |
| | | // localinfo.IsEnabled_cell = localid_Obj.value(m_numToInfo.key("IsEnabled_cell")).toInt(); |
| | | // localinfo.IsEnabled_aquifer = localid_Obj.value(m_numToInfo.key("IsEnabled_aquifer")).toInt(); |
| | | // localinfo.IsEnabled_pipe = localid_Obj.value(m_numToInfo.key("IsEnabled_pipe")).toInt(); |
| | | // localinfo.IsEnabled_network = localid_Obj.value(m_numToInfo.key("IsEnabled_network")).toInt(); |
| | | localinfo.LicensedDuration_end = localid_Obj.value(m_numToInfo.key("LicensedDuration_end")).toString(); |
| | | localinfo.LicensedDuration_start = localid_Obj.value(m_numToInfo.key("LicensedDuration_start")).toString(); |
| | | localinfo.Productid = localid_Obj.value(m_numToInfo.key("Productid")).toString(); |
| | |
| | | // licensekey_Obj[m_numToInfo.key("IsEnabled_pipe")] = 1; |
| | | // licensekey_Obj[m_numToInfo.key("IsEnabled_network")] = 1; |
| | | licensekey_Obj[m_numToInfo.key("ActiveState")] = 1; |
| | | QDateTime licensedate = QDateTime::fromString(licensekey_Obj[m_numToInfo.key("LicensedDuration_end")].toString(),"yyyy-MM-dd hh:mm:ss"); |
| | | if(licensedate.isNull()){ |
| | | qDebug()<<"licenseTime is Null"; |
| | | licensedate = QDateTime::currentDateTime(); |
| | | } |
| | | // QDateTime licensedate = QDateTime::fromString(licensekey_Obj[m_numToInfo.key("LicensedDuration_end")].toString(),"yyyy-MM-dd hh:mm:ss"); |
| | | // if(licensedate.isNull()){ |
| | | // qDebug()<<"licenseTime is Null"; |
| | | // licensedate = QDateTime::currentDateTime(); |
| | | // } |
| | | //现在点击授权是从当前的时间加授权时间 |
| | | QDateTime licensedate = QDateTime::currentDateTime(); |
| | | QDateTime newlicensedate = licensedate.addMonths(time); |
| | | QString licensedatestr = newlicensedate.toString("yyyy-MM-dd hh:mm:ss"); |
| | | licensekey_Obj[m_numToInfo.key("LicensedDuration_start")] = licensedate.toString("yyyy-MM-dd hh:mm:ss"); |
| | | licensekey_Obj[m_numToInfo.key("LicensedDuration_end")] = licensedatestr; |
| | | workingjsondoc.setObject(licensekey_Obj); |
| | | //数据压缩,去空格换行等多余无用信息 |
| | |
| | | //将授权信息记录到excel表中 |
| | | QString edition =""; |
| | | if(time == 3){ |
| | | edition = "normal"; |
| | | edition = QStringLiteral("普通版"); |
| | | }else if(time == 6){ |
| | | edition = "educational"; |
| | | edition = QStringLiteral("教育版"); |
| | | }else if(time == 12){ |
| | | edition = "professional"; |
| | | edition = QStringLiteral("专业版"); |
| | | } |
| | | ActiveRecord(licensekey_Obj,edition,ui->textEdit_licensekey->toPlainText()); |
| | | } |
| | | |
| | | void MainWindow::ActiveRecord(QJsonObject jsonObj,QString edition, QString licenseKey) |
| | | { |
| | | qDebug()<<"ActiveRecord"<<edition<<licenseKey; |
| | | QString Baseboard_Uuid = jsonObj[m_numToInfo.key("Baseboard_Uuid")].toString(); |
| | | QString src = QApplication::applicationDirPath(); |
| | | QDir dir(src); |
| | | QString file_name("activeList.xlsx"); |
| | | QString file_name(QStringLiteral("安全评价软件授权人数统计表.xlsx")); |
| | | QString filepath=dir.path()+"/"+file_name; |
| | | if(!dir.exists(file_name)){ |
| | | Document xlsx; |
| | | // 设置列标题 |
| | | QStringList headers = { |
| | | "Baseboard_Uuid", |
| | | "edition", |
| | | "LicensedDuration_start", |
| | | "LicensedDuration_end", |
| | | "Productid", |
| | | "Versionid", |
| | | "licenseKey" |
| | | "id", |
| | | QStringLiteral("主板唯一标识"), |
| | | QStringLiteral("版本"), |
| | | QStringLiteral("许可起始时间"), |
| | | QStringLiteral("许可截止时间"), |
| | | QStringLiteral("产品号"), |
| | | QStringLiteral("版本号"), |
| | | QStringLiteral("许可密钥") |
| | | }; |
| | | // 写入标题行 |
| | | for (int col = 1; col <= headers.size(); ++col) { |
| | |
| | | int uuidColumn = -1; |
| | | //先查找是否已经存在该项记录 |
| | | for(int i = 2; i <= xlsx.dimension().rowCount(); i++){ |
| | | QXlsx::Cell* headerCell = xlsx.cellAt(i, 1); |
| | | QXlsx::Cell* headerCell = xlsx.cellAt(i, 2); |
| | | if (headerCell) { |
| | | QString headerValue = headerCell->value().toString(); |
| | | qDebug()<<"headerValue"<<headerValue<<Baseboard_Uuid; |
| | | if (headerValue.compare(Baseboard_Uuid, Qt::CaseInsensitive) == 0) { |
| | | uuidColumn = i; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | qDebug()<<"uuidColumn"<<uuidColumn; |
| | | if(uuidColumn == -1){ |
| | | //如果没有这条记录就写入新的 |
| | | qDebug()<<"here"; |
| | | int rowCount = xlsx.dimension().rowCount()+1; |
| | | xlsx.write(rowCount, 1, jsonObj[m_numToInfo.key("Baseboard_Uuid")].toString()); |
| | | xlsx.write(rowCount, 2, edition); |
| | | xlsx.write(rowCount, 3, jsonObj[m_numToInfo.key("LicensedDuration_start")].toString()); |
| | | xlsx.write(rowCount, 4, jsonObj[m_numToInfo.key("LicensedDuration_end")].toString()); |
| | | xlsx.write(rowCount, 5, jsonObj[m_numToInfo.key("Productid")].toString()); |
| | | xlsx.write(rowCount, 6, jsonObj[m_numToInfo.key("Versionid")].toString()); |
| | | xlsx.write(rowCount, 7, licenseKey); |
| | | int id = xlsx.read(rowCount-1,1).toInt(); |
| | | xlsx.write(rowCount, 1, id+1); |
| | | xlsx.write(rowCount, 2, jsonObj[m_numToInfo.key("Baseboard_Uuid")].toString()); |
| | | xlsx.write(rowCount, 3, edition); |
| | | xlsx.write(rowCount, 4, jsonObj[m_numToInfo.key("LicensedDuration_start")].toString()); |
| | | xlsx.write(rowCount, 5, jsonObj[m_numToInfo.key("LicensedDuration_end")].toString()); |
| | | xlsx.write(rowCount, 6, jsonObj[m_numToInfo.key("Productid")].toString()); |
| | | xlsx.write(rowCount, 7, jsonObj[m_numToInfo.key("Versionid")].toString()); |
| | | xlsx.write(rowCount, 8, licenseKey); |
| | | }else{ |
| | | //如果存在这条记录就更新数据信息 |
| | | xlsx.write(uuidColumn, 1, jsonObj[m_numToInfo.key("Baseboard_Uuid")].toString()); |
| | | xlsx.write(uuidColumn, 2, edition); |
| | | xlsx.write(uuidColumn, 3, jsonObj[m_numToInfo.key("LicensedDuration_start")].toString()); |
| | | xlsx.write(uuidColumn, 4, jsonObj[m_numToInfo.key("LicensedDuration_end")].toString()); |
| | | xlsx.write(uuidColumn, 5, jsonObj[m_numToInfo.key("Productid")].toString()); |
| | | xlsx.write(uuidColumn, 6, jsonObj[m_numToInfo.key("Versionid")].toString()); |
| | | xlsx.write(uuidColumn, 7, licenseKey); |
| | | xlsx.write(uuidColumn, 2, jsonObj[m_numToInfo.key("Baseboard_Uuid")].toString()); |
| | | xlsx.write(uuidColumn, 3, edition); |
| | | xlsx.write(uuidColumn, 4, jsonObj[m_numToInfo.key("LicensedDuration_start")].toString()); |
| | | xlsx.write(uuidColumn, 5, jsonObj[m_numToInfo.key("LicensedDuration_end")].toString()); |
| | | xlsx.write(uuidColumn, 6, jsonObj[m_numToInfo.key("Productid")].toString()); |
| | | xlsx.write(uuidColumn, 7, jsonObj[m_numToInfo.key("Versionid")].toString()); |
| | | xlsx.write(uuidColumn, 8, licenseKey); |
| | | } |
| | | xlsx.save(); |
| | | } |
| | |
| | | { |
| | | giveLicense(12); |
| | | } |
| | | |
| | | void MainWindow::on_pushButton_viewUsers_clicked() |
| | | { |
| | | QString excelPath = QApplication::applicationDirPath()+QStringLiteral("/安全评价软件授权人数统计表.xlsx"); |
| | | |
| | | QUrl fileUrl = QUrl::fromLocalFile(excelPath); |
| | | |
| | | // 2. 调用系统服务打开文件管理器并选中文件 |
| | | QDesktopServices::openUrl(fileUrl); |
| | | } |