RunHttpGet_getInfo.cpp 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #include "RunHttpGet_getInfo.h"
  2. #include <QDebug>
  3. #include "../user/config.h"
  4. extern config *pconfig;
  5. RunHttpGet_getInfo::RunHttpGet_getInfo(InteractiveTask *task, QMutex *mutex)
  6. : RunAbstract(task, mutex)
  7. {
  8. }
  9. void RunHttpGet_getInfo::run()
  10. {
  11. QByteArray outData = InteractiveHttp::http_get_getInfo();
  12. // 关键调试输出
  13. qDebug() << "HTTP raw response:" << outData;
  14. InteractiveData *pSingletonData = SINGLETON_CREATE(InteractiveData)();
  15. // 进行数据写操作
  16. QWriteLocker locker(&pSingletonData->m_dataCacheLock);
  17. // 如果数据发生改变,缓存信息
  18. if (!outData.isEmpty())
  19. {
  20. pSingletonData->m_roles.clear();
  21. pSingletonData->m_permissions.clear();
  22. QJsonParseError error;
  23. QJsonDocument jsonDoc = QJsonDocument::fromJson(outData, &error);
  24. if (error.error == QJsonParseError::NoError)
  25. {
  26. if(!(jsonDoc.isNull() || jsonDoc.isEmpty()))
  27. {
  28. QJsonObject jsonObjRoot = jsonDoc.object();
  29. if(jsonObjRoot.contains("code") && jsonObjRoot.contains("user"))
  30. {
  31. if (jsonObjRoot.value("code").toInt() == 200)
  32. {
  33. if (jsonObjRoot.value("user").isObject())
  34. {
  35. QJsonObject jsonObjUser = jsonObjRoot.value("user").toObject();
  36. pconfig->userId = jsonObjUser.value("userId").toString();
  37. // pconfig->username = jsonObjUser.value("userName").toString();
  38. pSingletonData->m_userName = jsonObjUser.value("userName").toString();
  39. }
  40. if (jsonObjRoot.value("roles").isArray())
  41. {
  42. QJsonArray jsonArrRoles = jsonObjRoot.value("roles").toArray();
  43. for (int i = 0; i < jsonArrRoles.size(); ++i)
  44. {
  45. QString jsonStrRole = jsonArrRoles.at(i).toString();
  46. pSingletonData->m_roles.insert(jsonStrRole);
  47. }
  48. }
  49. if (jsonObjRoot.value("permissions").isArray())
  50. {
  51. QJsonArray jsonArrPermissions = jsonObjRoot.value("permissions").toArray();
  52. for (int i = 0; i < jsonArrPermissions.size(); ++i)
  53. {
  54. QString jsonStrPermission = jsonArrPermissions.at(i).toString();
  55. pSingletonData->m_permissions.insert(jsonStrPermission);
  56. }
  57. }
  58. }
  59. }
  60. }
  61. }
  62. }
  63. }