完成1.更新数据库2.获取导航栏

This commit is contained in:
Mike Solar
2023-08-08 15:15:19 +08:00
parent 4220083ac3
commit 0ecf1bdf6a
22 changed files with 1365 additions and 636 deletions

View File

@ -23,6 +23,7 @@
#include <ctime>
#include <qDebug>
#include "globalvariables.h"
#include "buttonstruct.h"
#pragma comment(lib, "wbemuuid.lib")
#ifdef _DEBUG
#pragma comment(lib, "Qt5Networkd.lib")
@ -221,7 +222,7 @@ void ConfigRequest::sendRequest(ConfigResponse *configResponse) {
delete httpMgr;
return;
}
qDebug() << result.toJson();
//qDebug() << result.toJson();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if(result.isObject()){
@ -240,13 +241,15 @@ void ConfigRequest::sendRequest(ConfigResponse *configResponse) {
auto i=0;
for(auto value:array){
QJsonObject object=value.toObject();
Menu menu;
menu.img=object.value("img").toString();
menu.img_cover=object.value("img_cover").toString();
menu.title=object.value("title").toString();
menu.func=object.value("func").toString();
menu.url=object.value("url").toString();
configResponse->menus << menu;
Button button;
button.img=object.value("img").toString();
// button.img_cover=object.value("img_cover").toString();
button.title=object.value("title").toString();
button.categroy_id = object.value("category_id").toString();
button.op = object.value("op").toString();
button.func=object.value("func").toString();
button.url=object.value("url").toString();
configResponse->buttons << button;
i++;
}
configResponse->succeed = true;
@ -572,3 +575,70 @@ DeviceRequest::DeviceRequest() : RequestBodyBase() {
eventLoop.exec();
delete httpMgr;
}
bool SoftwareRequest::sendRequest(QHash<QString, Record> *records)
{
timer = new QTimer(this);
QNetworkAccessManager* httpMgr = new QNetworkAccessManager();
QNetworkRequest requestInfo;
//HTTP<54><50><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD>ͷ
QJsonArray array;
for(auto record : *records)
{
array.append(record.orig_name);
}
QJsonObject obj_root = qJsonDocument.object();
obj_root.insert("orig_names", array);
qJsonDocument.setObject(obj_root);
QString url = SOFTWARE_URL;
requestInfo.setUrl(url);
requestInfo.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/json"));
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD>
reply = httpMgr->post(requestInfo, qJsonDocument.toJson());
qDebug() << qJsonDocument.toJson();
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>߻<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊֹ
connect(reply, &QNetworkReply::finished, &eventLoop, &QEventLoop::quit);
//<2F><><EFBFBD>ö<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ֹ<EFBFBD><D6B9>ʱ
connect(timer, &QTimer::timeout, this, &SoftwareRequest::cancelDownload);
timer->start(5000);
//<2F><><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD>
eventLoop.exec();
timer->stop();
QJsonDocument result;
// auto error = reply->error();
//<2F><><EFBFBD><EFBFBD>û<EFBFBD>д<EFBFBD><D0B4><EFBFBD>
if (reply->error() == QNetworkReply::NoError) {
result = QJsonDocument::fromJson(reply->readAll());
}
else {
//<2F><><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD>
delete timer;
delete httpMgr;
return false;
}
//qDebug() << result.toJson();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (result.isObject()) {
QJsonObject obj_root2 = result.object();
QJsonArray array = obj_root2.value("data").toObject().value("menu").toArray();
for (auto value : array) {
QJsonObject object = value.toObject();
QString orig_name = object.value("orig_name").toString();
(*records)[orig_name].logo = object.value("img").toString();
(*records)[orig_name].op = object.value("op").toString();
(*records)[orig_name].func = object.value("func").toString();
(*records)[orig_name].url = object.value("url").toString();
}
}
else {
//<2F><><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD><EFBFBD><EFBFBD>
//delete reply;
delete timer;
delete httpMgr;
return false;
}
delete httpMgr;
return true;
}