提交测试,基本完成

This commit is contained in:
Mike Solar
2023-08-13 12:16:22 +08:00
parent b8da134809
commit 098e06a39b
40 changed files with 3219 additions and 1782 deletions

View File

@ -60,7 +60,7 @@ RequestBodyBase::RequestBodyBase(){
if(!infFile->open(QIODevice::ReadOnly|QIODevice::Text)){
QMessageBox::critical(nullptr,QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), QString::fromLocal8Bit("<EFBFBD>޷<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>"));
delete infFile;
exit(1);
exit_manager.exit(1);
}
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
QByteArray bytes;
@ -73,19 +73,19 @@ RequestBodyBase::RequestBodyBase(){
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ݣ<EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>Ӧ<EFBFBD>ֶ<EFBFBD>
QJsonObject obj_root=qJsonDocument.object();
if(obj_root.value("product")==QJsonValue::Undefined){
QMessageBox::warning(nullptr, QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
exit(1);
QMessageBox::critical(nullptr, QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
exit_manager.exit(1);
}
product=obj_root.value("product").toString();
if(obj_root.value("parter_id")==QJsonValue::Undefined){
QMessageBox::warning(nullptr, QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
exit(1);
if(obj_root.value("partner_id")==QJsonValue::Undefined){
QMessageBox::critical(nullptr , QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
exit_manager.exit(1);
}
parter_id=obj_root.value("parter_id").toString();
parter_id=obj_root.value("partner_id").toString();
}else{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
QMessageBox::warning(nullptr, QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
exit(1);
QMessageBox::critical(nullptr, QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
exit_manager.exit(1);
}
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ϵͳ<CFB5>
this->os="Windows";
@ -188,6 +188,13 @@ RequestBodyBase::RequestBodyBase(){
void ConfigRequest::sendRequest(ConfigResponse *configResponse) {
timer = new QTimer(this);
if(agree)
{
QJsonObject obj_root = qJsonDocument.object();
obj_root.insert("autostart", autostart);
qJsonDocument.setObject(obj_root);
}
QNetworkAccessManager *httpMgr = new QNetworkAccessManager();
QNetworkRequest requestInfo;
//HTTP<54><50><EFBFBD><EFBFBD>
@ -208,12 +215,13 @@ void ConfigRequest::sendRequest(ConfigResponse *configResponse) {
timer->stop();
//delete httpMgr;
QJsonDocument result;
QByteArray buffer;
configResponse->succeed = false;
//memset(configResponse,0,sizeof(*configResponse));
auto error = reply->error();
//<2F><><EFBFBD><EFBFBD>û<EFBFBD>д<EFBFBD><D0B4><EFBFBD>
if(reply->error() == QNetworkReply::NoError) {
result = QJsonDocument::fromJson(reply->readAll());
buffer = reply->readAll();
}else{
//<2F><><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD>
configResponse->succeed=false;
@ -223,7 +231,7 @@ void ConfigRequest::sendRequest(ConfigResponse *configResponse) {
return;
}
//qDebug() << result.toJson();
result = QJsonDocument::fromJson(buffer);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if(result.isObject()){
QJsonObject obj_root=result.object();
@ -264,6 +272,7 @@ void ConfigRequest::sendRequest(ConfigResponse *configResponse) {
delete httpMgr;
}
void RequestBodyBase::cancelDownload() {
downloadSuccess = false;
disconnect(reply, &QNetworkReply::finished, &eventLoop, &QEventLoop::quit);
eventLoop.quit();
reply->abort();
@ -575,7 +584,7 @@ DeviceRequest::DeviceRequest() : RequestBodyBase() {
eventLoop.exec();
delete httpMgr;
}
bool SoftwareRequest::sendRequest(QHash<QString, Record> *records)
bool SoftwareRequest::sendRequest(QHash<QString,QString>&startMenu, QHash<QString, Record> *records)
{
timer = new QTimer(this);
QNetworkAccessManager* httpMgr = new QNetworkAccessManager();
@ -590,8 +599,20 @@ bool SoftwareRequest::sendRequest(QHash<QString, Record> *records)
object.insert("path", record.path);
array.append(object);
}
QJsonArray menu_list;
for(auto name:startMenu.keys())
{
QJsonObject object;
object.insert("name", name);
object.insert("path", startMenu[name]);
menu_list.append(object);
}
QJsonObject obj_root = qJsonDocument.object();
obj_root.insert("software", array);
QJsonObject object;
object.insert("reg", array);
object.insert("start", menu_list);
obj_root.insert("data", object);
obj_root.insert("type", "update");
qJsonDocument.setObject(obj_root);
QString url = SOFTWARE_URL;
requestInfo.setUrl(url);
@ -607,15 +628,16 @@ bool SoftwareRequest::sendRequest(QHash<QString, Record> *records)
//<2F><><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD>
eventLoop.exec();
timer->stop();
delete timer;
QJsonDocument result;
// auto error = reply->error();
//<2F><><EFBFBD><EFBFBD>û<EFBFBD>д<EFBFBD><D0B4><EFBFBD>
qDebug() << reply->error();
if (reply->error() == QNetworkReply::NoError) {
result = QJsonDocument::fromJson(reply->readAll());
}
else {
//<2F><><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD>
delete timer;
delete httpMgr;
return false;
}
@ -628,15 +650,51 @@ bool SoftwareRequest::sendRequest(QHash<QString, Record> *records)
for (auto value : array) {
QJsonObject object = value.toObject();
QString orig_name = object.value("orig_name").toString();
(*records)[orig_name].logo = object.value("img").toString();
if (orig_name.isEmpty())
{
delete httpMgr;
return false;
}
QNetworkAccessManager manager;
downloadSuccess = true;
QUrl url_logo(object.value("img").toString());
QNetworkRequest* request_logo = new QNetworkRequest(url_logo);
reply = manager.get(*request_logo);
QTimer timer;
timer.setInterval(5000);
connect(reply, &QNetworkReply::finished, &eventLoop, &QEventLoop::quit);
connect(&timer, &QTimer::timeout, this, &SoftwareRequest::cancelDownload);
eventLoop.exec();
timer.stop();
QByteArray buffer;
delete request_logo;
reply->close();
QString dir = QApplication::applicationDirPath() + "/images/software/";
if (downloadSuccess == true) {
buffer = reply->readAll();
QFile file(dir + orig_name + ".svg");
if (file.open(QIODevice::WriteOnly | QIODevice::Text))
{
file.write(buffer);
file.close();
}
}
(*records)[orig_name].logo = dir + orig_name + ".svg";
(*records)[orig_name].name = object.value("name").toString();
(*records)[orig_name].locked = object.value("locked").toBool();
(*records)[orig_name].url = object.value("url").toString();
(*records)[orig_name].path = object.value("path").toString();
if ((*records)[orig_name].path.isEmpty())
{
delete httpMgr;
return false;
}
}
}
else {
//<2F><><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD><EFBFBD><EFBFBD>
//delete reply;
delete timer;
delete httpMgr;
return false;
}
@ -644,3 +702,64 @@ bool SoftwareRequest::sendRequest(QHash<QString, Record> *records)
return true;
}
QString OpenWeChatRequest::sendRequest(bool notuse)
{
timer = new QTimer(this);
QNetworkAccessManager* httpMgr = new QNetworkAccessManager();
QNetworkRequest requestInfo;
//HTTP<54><50><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD>ͷ
requestInfo.setUrl(QUrl(WECHAT_URL));
requestInfo.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/json"));
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD>
reply = httpMgr->post(requestInfo, 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, this, &OpenWeChatRequest::cancelDownload);
//<2F><><EFBFBD>ö<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ֹ<EFBFBD><D6B9>ʱ
connect(timer, &QTimer::timeout, &eventLoop, &QEventLoop::quit);
timer->start(5000);
//<2F><><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD>
eventLoop.exec();
timer->stop();
QByteArray buffer = reply->readAll();
QJsonDocument reply_json = QJsonDocument::fromJson(buffer);
if(!reply_json.isObject())
{
delete timer;
delete httpMgr;
delete reply;
return "ok";
}
delete timer;
delete httpMgr;
delete reply;
return reply_json.object().value("msg").toString();
}
void OpRequest::sendRequest()
{
timer = new QTimer(this);
QJsonObject object = qJsonDocument.object();
object.insert(op, op_value);
qJsonDocument.setObject(object);
QNetworkAccessManager* httpMgr = new QNetworkAccessManager();
QNetworkRequest requestInfo;
//HTTP<54><50><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD>ͷ
requestInfo.setUrl(QUrl(OP_URL));
requestInfo.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/json"));
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD>
reply = httpMgr->post(requestInfo, 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, this, &OpRequest::cancelDownload);
//<2F><><EFBFBD>ö<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ֹ<EFBFBD><D6B9>ʱ
connect(timer, &QTimer::timeout, &eventLoop, &QEventLoop::quit);
timer->start(5000);
//<2F><><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD>
eventLoop.exec();
timer->stop();
delete timer;
delete httpMgr;
delete reply;
}