From 7385aaf07fbeb0febc5e6e434cd9374b7daf2f45 Mon Sep 17 00:00:00 2001
From: ccy <3140717620@qq.com>
Date: 星期四, 14 五月 2026 09:47:48 +0800
Subject: [PATCH] 1.简化了授权按钮,只剩下普通版、教育版、专业版三个按钮 2.授权时对授权进行记录或者更新 3.加密解密同步进行简化,采用与中核软件统一的加密解密流程

---
 mainwindow.cpp |  351 ++++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 292 insertions(+), 59 deletions(-)

diff --git a/mainwindow.cpp b/mainwindow.cpp
index 6b3d78a..de265c1 100644
--- a/mainwindow.cpp
+++ b/mainwindow.cpp
@@ -8,18 +8,53 @@
 #include <QFileDialog>
 #include <QMessageBox>
 #include <QProcess>
-
+#include <qbytearray.h>
+#include "QtXlsx/xlsxdocument.h"
+#include "QtXlsx/xlsxworksheet.h"
+#include "QtXlsx/xlsxformat.h"
+using namespace QXlsx;
 MainWindow::MainWindow(QWidget *parent)
     : QMainWindow(parent)
     , ui(new Ui::MainWindow)
 {
     ui->setupUi(this);
     setFixedSize(680, 600);
+    initUI();
 }
 
 MainWindow::~MainWindow()
 {
     delete ui;
+}
+
+void MainWindow::initUI()
+{
+    //灏嗘棫鐗堟湰鐨勬寜閽殣钘�
+    ui->pushButton_accreditall->setVisible(false);
+    ui->pushButton_accreditcell->setVisible(false);
+    ui->pushButton_accreditaquifer->setVisible(false);
+    ui->pushButton_deaccreditall->setVisible(false);
+    ui->pushButton_accreditpipe->setVisible(false);
+    ui->pushButton_accreditnetwork->setVisible(false);
+    ui->pushButton_dateset->setVisible(false);
+    ui->pushButton_adddate->setVisible(false);
+    ui->pushButton_reducedate->setVisible(false);
+    //鍓嶄竷鏉℃槸绠�鍖栧姞瀵嗘暟鎹繀鐢ㄧ殑,鍦ㄨ繖閲岃瀹氬ソ鏂逛究瀵瑰簲
+    m_numToInfo.insert("1","Baseboard_Uuid");
+    m_numToInfo.insert("2","CPU_Processorid");
+    m_numToInfo.insert("3","Username");
+    m_numToInfo.insert("4","LicensedDuration_start");
+    m_numToInfo.insert("5","LicensedDuration_end");
+    m_numToInfo.insert("6","Productid");
+    m_numToInfo.insert("7","Versionid");
+    m_numToInfo.insert("8","ActiveState");
+    //鍚庤竟鐨勬槸鎺掗櫎鍚庝笉鍙備笌鍔犲瘑鐨勬暟鎹俊鎭�
+    m_numToInfo.insert("9","Bios_Serialnumber");
+    m_numToInfo.insert("10","IsEnabled_cell");
+    m_numToInfo.insert("11","IsEnabled_aquifer");
+    m_numToInfo.insert("12","IsEnabled_pipe");
+    m_numToInfo.insert("13","IsEnabled_network");
+    m_numToInfo.insert("14","Baseboard_Serialnumber");
 }
 
 QString MainWindow::toUpperAndLower(QString src)
@@ -81,6 +116,14 @@
     return QString::fromLatin1(QAESEncryption::RemovePadding(deBA, QAESEncryption::PKCS7));
 }
 
+QByteArray MainWindow::AES_decryption_byte(const QString &data, const QString &key)
+{
+    QAESEncryption encryption(QAESEncryption::AES_256, QAESEncryption::ECB, QAESEncryption::PKCS7);
+    QByteArray  enBA = QByteArray::fromBase64(data.toUtf8());
+    QByteArray deBA = encryption.decode(enBA, key.toUtf8());
+    return deBA;
+}
+
 QString MainWindow::getEncrypt(const QString &data, QString key)
 {
     QString str_encode_text;
@@ -100,6 +143,14 @@
     QString hashkey32 = EncryptData(hashkey64,QCryptographicHash::Md5);
     QString AESresult = AES_decryption(b64result,hashkey32);
     decodedText = DecodebyBase64(AESresult);
+    qDebug()<<"AESresult"<<AESresult;
+    qDebug()<<"decodedText"<<decodedText;
+    //娣诲姞瑙e帇缂╃殑鎿嶄綔
+    QByteArray text = decodedText.toLocal8Bit();
+    QByteArray jsonData = qUncompress(text.fromBase64(text));
+    qDebug()<<"jsonData"<<jsonData;
+//    decodedText = DecodebyBase64(QString::fromLocal8Bit(jsonData));
+    decodedText = QString(jsonData);
     return decodedText;
 }
 
@@ -119,6 +170,9 @@
         ui->pushButton_setproid->setEnabled(false);
         ui->lineEdit_setversion->setEnabled(false);
         ui->lineEdit_setproid->setEnabled(false);
+        ui->pushButton_normal->setEnabled(false);
+        ui->pushButton_education->setEnabled(false);
+        ui->pushButton_profession->setEnabled(false);
 
         ui->lineEdit_basenum->setText("");
         ui->lineEdit_baseuuid->setText("");
@@ -148,6 +202,9 @@
         ui->pushButton_setproid->setEnabled(true);
         ui->lineEdit_setversion->setEnabled(true);
         ui->lineEdit_setproid->setEnabled(true);
+        ui->pushButton_normal->setEnabled(true);
+        ui->pushButton_education->setEnabled(true);
+        ui->pushButton_profession->setEnabled(true);
 
         ui->lineEdit_basenum->setText(localinfo.Baseboard_Serialnumber);
         ui->lineEdit_baseuuid->setText(localinfo.Baseboard_Uuid);
@@ -157,10 +214,15 @@
         ui->lineEdit_date->setText(localinfo.LicensedDuration_end);
         ui->lineEdit_version->setText(localinfo.Versionid);
         ui->lineEdit_proid->setText(localinfo.Productid);
-        ui->label_iscell->setText(localinfo.IsEnabled_cell==0?QStringLiteral("鏈縺娲�"):QStringLiteral("宸叉縺娲�"));
-        ui->label_isaquifer->setText(localinfo.IsEnabled_aquifer==0?QStringLiteral("鏈縺娲�"):QStringLiteral("宸叉縺娲�"));
-        ui->label_ispipe->setText(localinfo.IsEnabled_pipe==0?QStringLiteral("鏈縺娲�"):QStringLiteral("宸叉縺娲�"));
-        ui->label_isnetwork->setText(localinfo.IsEnabled_network==0?QStringLiteral("鏈縺娲�"):QStringLiteral("宸叉縺娲�"));
+//        ui->label_iscell->setText(localinfo.IsEnabled_cell==0?QStringLiteral("鏈縺娲�"):QStringLiteral("宸叉縺娲�"));
+//        ui->label_isaquifer->setText(localinfo.IsEnabled_aquifer==0?QStringLiteral("鏈縺娲�"):QStringLiteral("宸叉縺娲�"));
+//        ui->label_ispipe->setText(localinfo.IsEnabled_pipe==0?QStringLiteral("鏈縺娲�"):QStringLiteral("宸叉縺娲�"));
+//        ui->label_isnetwork->setText(localinfo.IsEnabled_network==0?QStringLiteral("鏈縺娲�"):QStringLiteral("宸叉縺娲�"));
+        //褰撳墠鎺堟潈鏄粺涓�鐨勶紝鍙渶瑕佸垽鏂竴涓槸鍚︽縺娲荤殑鍙傛暟灏辫
+        ui->label_iscell->setText(localinfo.ActiveState==0?QStringLiteral("鏈縺娲�"):QStringLiteral("宸叉縺娲�"));
+        ui->label_isaquifer->setText(localinfo.ActiveState==0?QStringLiteral("鏈縺娲�"):QStringLiteral("宸叉縺娲�"));
+        ui->label_ispipe->setText(localinfo.ActiveState==0?QStringLiteral("鏈縺娲�"):QStringLiteral("宸叉縺娲�"));
+        ui->label_isnetwork->setText(localinfo.ActiveState==0?QStringLiteral("鏈縺娲�"):QStringLiteral("宸叉縺娲�"));
     }
     if(licenseinfo.Username==""){
         ui->lineEdit_basenum_2->setText("");
@@ -186,10 +248,14 @@
         ui->lineEdit_setversion->setText(licenseinfo.Versionid);
         ui->lineEdit_proid_2->setText(licenseinfo.Productid);
         ui->lineEdit_setproid->setText(licenseinfo.Productid);
-        ui->label_iscell_2->setText(licenseinfo.IsEnabled_cell==0?QStringLiteral("鏈縺娲�"):QStringLiteral("宸叉縺娲�"));
-        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(licenseinfo.IsEnabled_cell==0?QStringLiteral("鏈縺娲�"):QStringLiteral("宸叉縺娲�"));
+//        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("宸叉縺娲�"));
     }
 }
 
@@ -197,9 +263,11 @@
 {
     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(localidbyte, &err_rpt));//瀛楃涓叉牸寮忓寲涓篔SON
+    QJsonDocument localidjsondoc(QJsonDocument::fromJson(localid.toUtf8(), &err_rpt));//瀛楃涓叉牸寮忓寲涓篔SON
     if(err_rpt.error != QJsonParseError::NoError)
     {
         localinfo = LicenseInfo();
@@ -221,20 +289,35 @@
         workingjsondoc = QJsonDocument(QJsonDocument::fromJson(localidbyte));
 
         QJsonObject localid_Obj = localidjsondoc.object();
-        localinfo.Baseboard_Serialnumber = localid_Obj.value("Baseboard_Serialnumber").toString();
-        localinfo.Baseboard_Uuid = localid_Obj.value("Baseboard_Uuid").toString();
-        localinfo.Bios_Serialnumber = localid_Obj.value("Bios_Serialnumber").toString();
-        localinfo.CPU_Processorid = localid_Obj.value("CPU_Processorid").toString();
-        localinfo.Username = localid_Obj.value("Username").toString();
-        localinfo.IsEnabled_cell = localid_Obj.value("IsEnabled_cell").toInt();
-        localinfo.IsEnabled_aquifer = localid_Obj.value("IsEnabled_aquifer").toInt();
-        localinfo.IsEnabled_pipe = localid_Obj.value("IsEnabled_pipe").toInt();
-        localinfo.IsEnabled_network = localid_Obj.value("IsEnabled_network").toInt();
-        localinfo.LicensedDuration_end = localid_Obj.value("LicensedDuration_end").toString();
-        localinfo.LicensedDuration_start = localid_Obj.value("LicensedDuration_start").toString();
-        localinfo.Productid = localid_Obj.value("Productid").toString();
-        localinfo.Versionid = localid_Obj.value("Versionid").toString();
+//        localinfo.Baseboard_Serialnumber = localid_Obj.value("Baseboard_Serialnumber").toString();
+//        localinfo.Baseboard_Uuid = localid_Obj.value("Baseboard_Uuid").toString();
+//        localinfo.Bios_Serialnumber = localid_Obj.value("Bios_Serialnumber").toString();
+//        localinfo.CPU_Processorid = localid_Obj.value("CPU_Processorid").toString();
+//        localinfo.Username = localid_Obj.value("Username").toString();
+//        localinfo.IsEnabled_cell = localid_Obj.value("IsEnabled_cell").toInt();
+//        localinfo.IsEnabled_aquifer = localid_Obj.value("IsEnabled_aquifer").toInt();
+//        localinfo.IsEnabled_pipe = localid_Obj.value("IsEnabled_pipe").toInt();
+//        localinfo.IsEnabled_network = localid_Obj.value("IsEnabled_network").toInt();
+//        localinfo.LicensedDuration_end = localid_Obj.value("LicensedDuration_end").toString();
+//        localinfo.LicensedDuration_start = localid_Obj.value("LicensedDuration_start").toString();
+//        localinfo.Productid = localid_Obj.value("Productid").toString();
+//        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();
+        localinfo.Versionid = localid_Obj.value(m_numToInfo.key("Versionid")).toString();
+        localinfo.ActiveState = localid_Obj.value(m_numToInfo.key("ActiveState")).toInt();
         licenseinfo = LicenseInfo(localinfo);
         changeUIstate();
     }
@@ -278,7 +361,8 @@
 void MainWindow::on_pushButton_accreditpipe_clicked()
 {
     QJsonObject licensekey_Obj = workingjsondoc.object();
-    licensekey_Obj["IsEnabled_pipe"] = 1;
+//    licensekey_Obj["IsEnabled_pipe"] = 1;
+    licensekey_Obj["8"] = 1;
     workingjsondoc.setObject(licensekey_Obj);
     QByteArray jsonbytearray = workingjsondoc.toJson();
     ui->textEdit_licensekey->setPlainText("");
@@ -333,19 +417,20 @@
 
 void MainWindow::setLicenseinfo(const QJsonObject licensekey_Obj)
 {
-    licenseinfo.Baseboard_Serialnumber = licensekey_Obj.value("Baseboard_Serialnumber").toString();
-    licenseinfo.Baseboard_Uuid = licensekey_Obj.value("Baseboard_Uuid").toString();
-    licenseinfo.Bios_Serialnumber = licensekey_Obj.value("Bios_Serialnumber").toString();
-    licenseinfo.CPU_Processorid = licensekey_Obj.value("CPU_Processorid").toString();
-    licenseinfo.Username = licensekey_Obj.value("Username").toString();
-    licenseinfo.IsEnabled_cell = licensekey_Obj.value("IsEnabled_cell").toInt();
-    licenseinfo.IsEnabled_aquifer = licensekey_Obj.value("IsEnabled_aquifer").toInt();
-    licenseinfo.IsEnabled_pipe = licensekey_Obj.value("IsEnabled_pipe").toInt();
-    licenseinfo.IsEnabled_network = licensekey_Obj.value("IsEnabled_network").toInt();
-    licenseinfo.LicensedDuration_end = licensekey_Obj.value("LicensedDuration_end").toString();
-    licenseinfo.LicensedDuration_start = licensekey_Obj.value("LicensedDuration_start").toString();
-    licenseinfo.Productid = licensekey_Obj.value("Productid").toString();
-    licenseinfo.Versionid = licensekey_Obj.value("Versionid").toString();
+    licenseinfo.Baseboard_Serialnumber = licensekey_Obj.value(m_numToInfo.key("Baseboard_Serialnumber")).toString();
+    licenseinfo.Baseboard_Uuid = licensekey_Obj.value(m_numToInfo.key("Baseboard_Uuid")).toString();
+    licenseinfo.Bios_Serialnumber = licensekey_Obj.value(m_numToInfo.key("Bios_Serialnumber")).toString();
+    licenseinfo.CPU_Processorid = licensekey_Obj.value(m_numToInfo.key("CPU_Processorid")).toString();
+    licenseinfo.Username = licensekey_Obj.value(m_numToInfo.key("Username")).toString();
+    licenseinfo.IsEnabled_cell = licensekey_Obj.value(m_numToInfo.key("IsEnabled_cell")).toInt();
+    licenseinfo.IsEnabled_aquifer = licensekey_Obj.value(m_numToInfo.key("IsEnabled_aquifer")).toInt();
+    licenseinfo.IsEnabled_pipe = licensekey_Obj.value(m_numToInfo.key("IsEnabled_pipe")).toInt();
+    licenseinfo.IsEnabled_network = licensekey_Obj.value(m_numToInfo.key("IsEnabled_network")).toInt();
+    licenseinfo.LicensedDuration_end = licensekey_Obj.value(m_numToInfo.key("LicensedDuration_end")).toString();
+    licenseinfo.LicensedDuration_start = licensekey_Obj.value(m_numToInfo.key("LicensedDuration_start")).toString();
+    licenseinfo.Productid = licensekey_Obj.value(m_numToInfo.key("Productid")).toString();
+    licenseinfo.Versionid = licensekey_Obj.value(m_numToInfo.key("Versionid")).toString();
+    licenseinfo.ActiveState = licensekey_Obj.value(m_numToInfo.key("ActiveState")).toInt();
     changeUIstate();
 }
 
@@ -368,22 +453,38 @@
 
     QJsonDocument json_doc;//鍒涘缓json鏂囦欢
     QJsonObject json_obj;//鍒涘缓json瀵硅薄
-    json_obj.insert("Username",localinfo.Username);
-    json_obj.insert("CPU_Processorid",localinfo.CPU_Processorid);
-    json_obj.insert("Bios_Serialnumber",localinfo.Bios_Serialnumber);
-    json_obj.insert("Baseboard_Serialnumber",localinfo.Baseboard_Serialnumber);
-    json_obj.insert("Baseboard_Uuid",localinfo.Baseboard_Uuid);
-    json_obj.insert("IsEnabled_cell",localinfo.IsEnabled_cell);
-    json_obj.insert("IsEnabled_aquifer",localinfo.IsEnabled_aquifer);
-    json_obj.insert("IsEnabled_pipe",localinfo.IsEnabled_pipe);
-    json_obj.insert("IsEnabled_network",localinfo.IsEnabled_network);
-    json_obj.insert("LicensedDuration_start",localinfo.LicensedDuration_start);
-    json_obj.insert("LicensedDuration_end",localinfo.LicensedDuration_end);
-    json_obj.insert("Productid",localinfo.Productid);
-    json_obj.insert("Versionid",localinfo.Versionid);
-    json_doc.setObject(json_obj);//灏唈son瀵硅薄杞负json鏂囦欢
-    QByteArray jsonbytearray = json_doc.toJson();
-    localid = QString(jsonbytearray);
+//    json_obj.insert("Username",localinfo.Username);
+//    json_obj.insert("CPU_Processorid",localinfo.CPU_Processorid);
+//    json_obj.insert("Bios_Serialnumber",localinfo.Bios_Serialnumber);
+//    json_obj.insert("Baseboard_Serialnumber",localinfo.Baseboard_Serialnumber);
+//    json_obj.insert("Baseboard_Uuid",localinfo.Baseboard_Uuid);
+//    json_obj.insert("IsEnabled_cell",localinfo.IsEnabled_cell);
+//    json_obj.insert("IsEnabled_aquifer",localinfo.IsEnabled_aquifer);
+//    json_obj.insert("IsEnabled_pipe",localinfo.IsEnabled_pipe);
+//    json_obj.insert("IsEnabled_network",localinfo.IsEnabled_network);
+//    json_obj.insert("LicensedDuration_start",localinfo.LicensedDuration_start);
+//    json_obj.insert("LicensedDuration_end",localinfo.LicensedDuration_end);
+//    json_obj.insert("Productid",localinfo.Productid);
+//    json_obj.insert("Versionid",localinfo.Versionid);
+//    json_doc.setObject(json_obj);//灏唈son瀵硅薄杞负json鏂囦欢
+//    QByteArray jsonbytearray = json_doc.toJson();
+//    localid = QString(jsonbytearray);
+
+    //鍏跺疄涓昏鍔犲瘑鐨勬暟鎹槸value(鐢佃剳鐨勫叿浣撳弬鏁颁俊鎭級锛屽墠杈圭殑鎻忚堪鏄彲浠ョ畝鍐欑殑锛屾寜鐓ц瀹氬ソ鐨勮鍒欙紝鍙瓨鍌ㄧ畝鍗曠殑key鍊�
+    //杩欓噷鍙幏鍙栨垜浠紭鍖栧悗瑕侀�夋嫨鍔犲瘑鐨勬暟鎹�
+    json_obj.insert(m_numToInfo.key("Username"),localinfo.Username);
+    json_obj.insert(m_numToInfo.key("CPU_Processorid"),localinfo.CPU_Processorid);
+    json_obj.insert(m_numToInfo.key("Baseboard_Uuid"),localinfo.Baseboard_Uuid);
+    json_obj.insert(m_numToInfo.key("LicensedDuration_start"),localinfo.LicensedDuration_start);
+    json_obj.insert(m_numToInfo.key("LicensedDuration_end"),localinfo.LicensedDuration_end);
+    json_obj.insert(m_numToInfo.key("Productid"),localinfo.Productid);
+    json_obj.insert(m_numToInfo.key("Versionid"),localinfo.Versionid);
+    json_obj.insert(m_numToInfo.key("ActiveState"),localinfo.ActiveState);
+
+    QByteArray compressedArray = QJsonDocument(json_obj).toJson(QJsonDocument::Compact);
+    QByteArray jsonbytearray = qCompress(compressedArray,9);
+    localid = jsonbytearray.toBase64();
+
     return localid;
 }
 
@@ -401,6 +502,108 @@
     result = result.simplified();
     p.close();
     return result;
+}
+
+void MainWindow::giveLicense(int time)
+{
+    QJsonObject licensekey_Obj = workingjsondoc.object();
+//    licensekey_Obj[m_numToInfo.key("IsEnabled_cell")] = 1;
+//    licensekey_Obj[m_numToInfo.key("IsEnabled_aquifer")] = 1;
+//    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 newlicensedate = licensedate.addMonths(time);
+    QString licensedatestr = newlicensedate.toString("yyyy-MM-dd hh:mm:ss");
+    licensekey_Obj[m_numToInfo.key("LicensedDuration_end")] = licensedatestr;
+    workingjsondoc.setObject(licensekey_Obj);
+    //鏁版嵁鍘嬬缉锛屽幓绌烘牸鎹㈣绛夊浣欐棤鐢ㄤ俊鎭�
+    QByteArray compressedArray = QJsonDocument(licensekey_Obj).toJson(QJsonDocument::Compact);
+    QByteArray jsonbytearray = qCompress(compressedArray,9);
+    QString testid = jsonbytearray.toBase64();
+    ui->textEdit_licensekey->setPlainText("");
+    ui->textEdit_licensekey->setPlainText(getEncrypt(QString(testid),key));
+    setLicenseinfo(licensekey_Obj);
+    //灏嗘巿鏉冧俊鎭褰曞埌excel琛ㄤ腑
+    QString edition ="";
+    if(time == 3){
+        edition = "normal";
+    }else if(time == 6){
+        edition = "educational";
+    }else if(time == 12){
+        edition = "professional";
+    }
+    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 filepath=dir.path()+"/"+file_name;
+    if(!dir.exists(file_name)){
+        Document xlsx;
+        // 璁剧疆鍒楁爣棰�
+        QStringList headers = {
+            "Baseboard_Uuid",
+            "edition",
+            "LicensedDuration_start",
+            "LicensedDuration_end",
+            "Productid",
+            "Versionid",
+            "licenseKey"
+        };
+        // 鍐欏叆鏍囬琛�
+        for (int col = 1; col <= headers.size(); ++col) {
+            xlsx.write(1, col, headers[col - 1]);
+        }
+        xlsx.saveAs(filepath);
+    }
+
+    QXlsx::Document xlsx(filepath);
+    int uuidColumn = -1;
+    //鍏堟煡鎵炬槸鍚﹀凡缁忓瓨鍦ㄨ椤硅褰�
+    for(int i = 2; i <= xlsx.dimension().rowCount(); i++){
+        QXlsx::Cell* headerCell = xlsx.cellAt(i, 1);
+        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);
+    }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.save();
 }
 
 
@@ -522,21 +725,51 @@
 void MainWindow::on_pushButton_setproid_clicked()
 {
     QJsonObject licensekey_Obj = workingjsondoc.object();
-    licensekey_Obj["Productid"] = ui->lineEdit_setproid->text();
+    licensekey_Obj[m_numToInfo.key("Productid")] = ui->lineEdit_setproid->text();
     workingjsondoc.setObject(licensekey_Obj);
-    QByteArray jsonbytearray = workingjsondoc.toJson();
+
+    QByteArray compressedArray = QJsonDocument(licensekey_Obj).toJson(QJsonDocument::Compact);
+    QByteArray jsonbytearray = qCompress(compressedArray,9);
+    QString testid = jsonbytearray.toBase64();
     ui->textEdit_licensekey->setPlainText("");
-    ui->textEdit_licensekey->setPlainText(getEncrypt(QString(jsonbytearray),key));
+    ui->textEdit_licensekey->setPlainText(getEncrypt(QString(testid),key));
+
+//    QByteArray jsonbytearray = workingjsondoc.toJson();
+//    ui->textEdit_licensekey->setPlainText("");
+//    ui->textEdit_licensekey->setPlainText(getEncrypt(QString(jsonbytearray),key));
     setLicenseinfo(licensekey_Obj);
 }
 
 void MainWindow::on_pushButton_setversion_clicked()
 {
     QJsonObject licensekey_Obj = workingjsondoc.object();
-    licensekey_Obj["Versionid"] = ui->lineEdit_setversion->text();
+    licensekey_Obj[m_numToInfo.key("Versionid")] = ui->lineEdit_setversion->text();
     workingjsondoc.setObject(licensekey_Obj);
-    QByteArray jsonbytearray = workingjsondoc.toJson();
+
+    QByteArray compressedArray = QJsonDocument(licensekey_Obj).toJson(QJsonDocument::Compact);
+    QByteArray jsonbytearray = qCompress(compressedArray,9);
+    QString testid = jsonbytearray.toBase64();
     ui->textEdit_licensekey->setPlainText("");
-    ui->textEdit_licensekey->setPlainText(getEncrypt(QString(jsonbytearray),key));
+    ui->textEdit_licensekey->setPlainText(getEncrypt(QString(testid),key));
+
+//    QByteArray jsonbytearray = workingjsondoc.toJson();
+//    ui->textEdit_licensekey->setPlainText("");
+//    ui->textEdit_licensekey->setPlainText(getEncrypt(QString(jsonbytearray),key));
     setLicenseinfo(licensekey_Obj);
 }
+
+void MainWindow::on_pushButton_normal_clicked()
+{
+    giveLicense(3);
+
+}
+
+void MainWindow::on_pushButton_education_clicked()
+{
+    giveLicense(6);
+}
+
+void MainWindow::on_pushButton_profession_clicked()
+{
+    giveLicense(12);
+}

--
Gitblit v1.9.1