#include "RunHttpGet_getInfo.h" #include #include "../user/config.h" extern config *pconfig; RunHttpGet_getInfo::RunHttpGet_getInfo(InteractiveTask *task, QMutex *mutex) : RunAbstract(task, mutex) { } void RunHttpGet_getInfo::run() { QByteArray outData = InteractiveHttp::http_get_getInfo(); // 关键调试输出 qDebug() << "HTTP raw response:" << outData; InteractiveData *pSingletonData = SINGLETON_CREATE(InteractiveData)(); // 进行数据写操作 QWriteLocker locker(&pSingletonData->m_dataCacheLock); // 如果数据发生改变,缓存信息 if (!outData.isEmpty()) { pSingletonData->m_roles.clear(); pSingletonData->m_permissions.clear(); QJsonParseError error; QJsonDocument jsonDoc = QJsonDocument::fromJson(outData, &error); if (error.error == QJsonParseError::NoError) { if(!(jsonDoc.isNull() || jsonDoc.isEmpty())) { QJsonObject jsonObjRoot = jsonDoc.object(); if(jsonObjRoot.contains("code") && jsonObjRoot.contains("user")) { if (jsonObjRoot.value("code").toInt() == 200) { if (jsonObjRoot.value("user").isObject()) { QJsonObject jsonObjUser = jsonObjRoot.value("user").toObject(); pconfig->userId = jsonObjUser.value("userId").toString(); // pconfig->username = jsonObjUser.value("userName").toString(); pSingletonData->m_userName = jsonObjUser.value("userName").toString(); } if (jsonObjRoot.value("roles").isArray()) { QJsonArray jsonArrRoles = jsonObjRoot.value("roles").toArray(); for (int i = 0; i < jsonArrRoles.size(); ++i) { QString jsonStrRole = jsonArrRoles.at(i).toString(); pSingletonData->m_roles.insert(jsonStrRole); } } if (jsonObjRoot.value("permissions").isArray()) { QJsonArray jsonArrPermissions = jsonObjRoot.value("permissions").toArray(); for (int i = 0; i < jsonArrPermissions.size(); ++i) { QString jsonStrPermission = jsonArrPermissions.at(i).toString(); pSingletonData->m_permissions.insert(jsonStrPermission); } } } } } } } }