updatesysdb.cpp 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #include "updatesysdb.h"
  2. #include "SNCDataBase.h"
  3. #include "loghelper.h"
  4. UpdateSysDb::UpdateSysDb()
  5. {
  6. this->data_config_url = SNCDataBase::getDataConfigUrl();
  7. manager = 0;
  8. }
  9. UpdateSysDb::~UpdateSysDb()
  10. {
  11. qDebug()<<QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")\
  12. <<"UpdateSysDb Destroyed.";
  13. if(manager)
  14. delete manager;
  15. }
  16. bool UpdateSysDb::updateDataBase()
  17. {
  18. if(!getServerConfig())
  19. return false;
  20. qDebug()<<QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")\
  21. <<"data xml fetched";
  22. if(!parser.banner_ad.isEmpty())
  23. SNCDataBase::updateBannerAd(parser.banner_ad);
  24. if(parser.page_ads.count()!=0)
  25. SNCDataBase::updatePageAd(parser.page_ads);
  26. if(parser.text_ads.count()!=0)
  27. SNCDataBase::updateTextAd(parser.text_ads);
  28. if(parser.corp_prefix.count()!=0)
  29. SNCDataBase::updateCorpPrefix(parser.corp_prefix);
  30. if(parser.client_config.count()!=0 && !parser.client_default_host.isEmpty() && !parser.client_default_port.isEmpty())
  31. SNCDataBase::updateClientConfig(parser.client_config,parser.client_default_host,parser.client_default_port);
  32. if(!parser.website_title.isEmpty() && !parser.website_url.isEmpty())
  33. {
  34. SNCDataBase::updateWebsiteUrl(parser.website_url);
  35. SNCDataBase::updateWebsiteTitle(parser.website_title);
  36. }
  37. if(!parser.helpme_url.isEmpty())
  38. SNCDataBase::updateHelpmeUrl(parser.helpme_url);
  39. if(!parser.banner_topad.isEmpty())
  40. SNCDataBase::updateBannerTopAd(parser.banner_topad);
  41. if(!parser.banner_bottomad.isEmpty())
  42. SNCDataBase::updateBannerBottomAd(parser.banner_bottomad);
  43. if(!parser.riddle_url.isEmpty())
  44. SNCDataBase::updateRiddleUrl(parser.riddle_url);
  45. if(!parser.sso_account_url.isEmpty())
  46. SNCDataBase::updateSSOAccountUrl(parser.sso_account_url);
  47. if(!parser.sso_reg_url.isEmpty())
  48. SNCDataBase::updateSSORegUrl(parser.sso_reg_url);
  49. if(!parser.sso_pay_url.isEmpty())
  50. SNCDataBase::updateSSOPayUrl(parser.sso_pay_url);
  51. return true;
  52. }
  53. bool UpdateSysDb::getServerConfig()
  54. {
  55. QString config_url = data_config_url;
  56. QString content = downloadFile(config_url);
  57. return parser.readConfig(content);
  58. }
  59. QString UpdateSysDb::downloadFile(QString http_url)
  60. {
  61. QUrl url(http_url);
  62. QNetworkAccessManager manager;
  63. QNetworkReply *reply = manager.get(QNetworkRequest(url));
  64. QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf8"));
  65. QObject::connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
  66. QTimer::singleShot(10000, &loop, SLOT(quit()));
  67. loop.exec();
  68. QString content = reply->readAll();
  69. QTextCodec::setCodecForCStrings(QTextCodec::codecForName("system"));
  70. QTextCodec::setCodecForTr(QTextCodec::codecForName("system"));
  71. if(reply)
  72. delete reply;
  73. return content;
  74. }