RunHttpGet_getIsMaterialsPage.cpp 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. #include "RunHttpGet_getIsMaterialsPage.h"
  2. RunHttpGet_getIsMaterialsPage::RunHttpGet_getIsMaterialsPage(InteractiveTask *task, QMutex *mutex)
  3. : RunAbstract(task, mutex)
  4. {
  5. }
  6. void RunHttpGet_getIsMaterialsPage::run()
  7. {
  8. QByteArray outData = InteractiveHttp::http_get_getIsMaterialsPage();
  9. InteractiveData *pSingletonData = SINGLETON_CREATE(InteractiveData)();
  10. // 进行数据写操作
  11. QWriteLocker locker(&pSingletonData->m_dataCacheLock);
  12. if (pSingletonData->m_jsonCacheMaterialInfo != outData)
  13. {
  14. // 清理缓存数据
  15. pSingletonData->m_dataCacheMaterialInfoId.clear();
  16. pSingletonData->m_dataCacheMaterialInfoName.clear();
  17. pSingletonData->m_dataCacheMaterialInfoRfid.clear();
  18. pSingletonData->m_dataCacheMaterialInfoLoan.clear();
  19. pSingletonData->m_dataCacheMaterialInfoStat.clear();
  20. pSingletonData->m_dataCacheMaterialInfoDate.clear();
  21. pSingletonData->m_dataCacheMaterialInfoTypeId.clear();
  22. pSingletonData->m_dataCacheMaterialInfoPropId.clear();
  23. pSingletonData->m_dataCacheMaterialInfoCabinetId.clear();
  24. QJsonParseError error;
  25. QJsonDocument jsonDoc = QJsonDocument::fromJson(outData, &error);
  26. if (error.error == QJsonParseError::NoError)
  27. {
  28. if(!(jsonDoc.isNull() || jsonDoc.isEmpty()))
  29. {
  30. QJsonObject jsonObjRoot = jsonDoc.object();
  31. if(jsonObjRoot.contains("code") && jsonObjRoot.contains("data"))
  32. {
  33. QJsonObject jsonObjData = jsonObjRoot.value("data").toObject();
  34. if(jsonObjRoot.value("code").toInt() == 200 && jsonObjData.contains("records"))
  35. {
  36. QJsonArray jsonArrRecords = jsonObjData.value("records").toArray();
  37. for (int i = 0; i < jsonArrRecords.count(); ++i)
  38. {
  39. if (!jsonArrRecords.at(i).isObject())
  40. {
  41. continue;
  42. }
  43. QJsonObject jsonObjRecord = jsonArrRecords.at(i).toObject();
  44. QString materialsId = jsonObjRecord.value("materialsId").toString();
  45. QString materialsName = jsonObjRecord.value("materialsName").toString();
  46. QString materialsRfid = jsonObjRecord.value("materialsRfid").toString();
  47. QString loanState = jsonObjRecord.value("loanState").toString();
  48. QString status = jsonObjRecord.value("status").toString();
  49. QString expirationDate = jsonObjRecord.value("expirationDate").toString();
  50. QString materialsTypeId = jsonObjRecord.value("materialsTypeId").toString();
  51. QString propertiesValueId = jsonObjRecord.value("propertiesValueId").toString();
  52. QString materialsCabinetId = jsonObjRecord.value("materialsCabinetId").toString();
  53. if (!pSingletonData->m_dataCacheMaterialInfoId.contains(materialsId))
  54. {
  55. pSingletonData->m_dataCacheMaterialInfoId.append(materialsId);
  56. pSingletonData->m_dataCacheMaterialInfoName.insert(materialsId, materialsName);
  57. pSingletonData->m_dataCacheMaterialInfoRfid.insert(materialsId, materialsRfid);
  58. pSingletonData->m_dataCacheMaterialInfoLoan.insert(materialsId, loanState);
  59. pSingletonData->m_dataCacheMaterialInfoStat.insert(materialsId, status);
  60. pSingletonData->m_dataCacheMaterialInfoDate.insert(materialsId, expirationDate);
  61. pSingletonData->m_dataCacheMaterialInfoTypeId.insert(materialsId, materialsTypeId);
  62. pSingletonData->m_dataCacheMaterialInfoPropId.insert(materialsId, propertiesValueId);
  63. pSingletonData->m_dataCacheMaterialInfoCabinetId.insert(materialsId, materialsCabinetId);
  64. }
  65. }
  66. }
  67. }
  68. }
  69. }
  70. }
  71. }