RunHttpGet_severity_level.cpp 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #include "RunHttpGet_severity_level.h"
  2. RunHttpGet_severity_level::RunHttpGet_severity_level(InteractiveTask *task, QMutex *mutex)
  3. : RunAbstract(task, mutex)
  4. {
  5. }
  6. void RunHttpGet_severity_level::run()
  7. {
  8. InteractiveData *pSingletonData = SINGLETON_CREATE(InteractiveData)();
  9. QByteArray outData = InteractiveHttp::http_get_severity_level();
  10. // 进行数据写操作
  11. QWriteLocker locker(&pSingletonData->m_dataCacheLock);
  12. // 如果数据发生改变,缓存信息
  13. if (pSingletonData->m_jsonCacheSeverityLevelDict != outData)
  14. {
  15. // 缓存json信息
  16. pSingletonData->m_jsonCacheSeverityLevelDict = outData;
  17. // 异常类型字典清理数据缓存
  18. pSingletonData->m_dataCacheSeverityLevelDictCode.clear();
  19. pSingletonData->m_dataCacheSeverityLevelDictLabel.clear();
  20. pSingletonData->m_dataCacheSeverityLevelDictValue.clear();
  21. QJsonParseError error;
  22. QJsonDocument jsonDoc = QJsonDocument::fromJson(outData, &error);
  23. if (error.error == QJsonParseError::NoError)
  24. {
  25. if(!(jsonDoc.isNull() || jsonDoc.isEmpty()))
  26. {
  27. QJsonObject jsonObjRoot = jsonDoc.object();
  28. if(jsonObjRoot.contains("code") && jsonObjRoot.contains("data"))
  29. {
  30. if (jsonObjRoot.value("code").toInt() == 200 && jsonObjRoot.value("data").isArray())
  31. {
  32. QJsonArray jsonArrData = jsonObjRoot.value("data").toArray();
  33. for (int i = 0; i < jsonArrData.size(); ++i)
  34. {
  35. if (!jsonArrData.at(i).isObject())
  36. {
  37. continue;
  38. }
  39. QJsonObject jsonObjData = jsonArrData.at(i).toObject();
  40. QString dictCode = jsonObjData.value("dictCode").toString();
  41. QString dictLabel = jsonObjData.value("dictLabel").toString();
  42. QString dictValue = jsonObjData.value("dictValue").toString();
  43. if (pSingletonData->m_dataCacheSeverityLevelDictCode.contains(dictCode))
  44. {
  45. continue;
  46. }
  47. pSingletonData->m_dataCacheSeverityLevelDictCode.append(dictCode);
  48. pSingletonData->m_dataCacheSeverityLevelDictLabel.insert(dictCode, dictLabel);
  49. pSingletonData->m_dataCacheSeverityLevelDictValue.insert(dictCode, dictValue);
  50. }
  51. }
  52. }
  53. }
  54. }
  55. }
  56. }