pointthread.cpp 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. #include "pointthread.h"
  2. #include <QSettings>
  3. PointThread::PointThread(QObject *parent) : QThread(parent)
  4. {
  5. naManagerPoint = new QNetworkAccessManager(this);
  6. //QNetworkAccessManager 向前台发送消息,等消息finished之后,才可以触发收前台返回的数据(不能把发送前台消息操作和前台返回数据操作放在一个函数里处理,有先后顺序)
  7. QObject::connect(naManagerPoint, &QNetworkAccessManager::finished, this, &PointThread::getData);
  8. }
  9. void PointThread::SendJSONData(QByteArray m_httpData)
  10. {
  11. QNetworkRequest request;
  12. QSettings sets("sys.ini", QSettings::IniFormat);
  13. QString pointUrl = sets.value("POINT_HTTPURL").toString();
  14. //前端测试环境
  15. request.setUrl(QUrl(pointUrl));
  16. //前端生产环境
  17. //request.setUrl(QUrl("http://121.40.217.77:8081/pt/patrollingPointPush"));
  18. reply = naManagerPoint->post(request, m_httpData);
  19. }
  20. void PointThread::getData(QNetworkReply*)
  21. {
  22. QString responseData;
  23. reply->attribute(QNetworkRequest::HttpStatusCodeAttribute);
  24. reply->attribute(QNetworkRequest::RedirectionTargetAttribute);
  25. QNetworkReply::NetworkError err = reply->error();
  26. if(err != QNetworkReply::NoError) {
  27. responseData.append(QString("Failed: %1").arg(reply->errorString()));
  28. }
  29. else {
  30. // 获取返回内容
  31. QString string = QString::fromUtf8(reply->readAll());
  32. responseData.append(QString::fromUtf8("%1").arg(string));
  33. }
  34. reply->deleteLater();
  35. logList.append(responseData);
  36. QDate today = QDate::currentDate();
  37. QFile file(QString("log/responsePointData-%1%2%3.txt").arg(today.year(),4,10,QChar('0')).arg(today.month(),2,10,QChar('0')).arg(today.day(),2,10,QChar('0')));
  38. if(file.open(QIODevice::Text|QIODevice::Append|QIODevice::WriteOnly)){
  39. while (logList.length()>0) {
  40. file.write(logList.first().toUtf8()+"\n");
  41. logList.removeFirst();
  42. usleep(10000);
  43. }
  44. file.close();
  45. }
  46. }
  47. void PointThread::DealAccessDBData(QString pId,QString pCard,QString pName,QString pNumber,QString pType)
  48. {
  49. if(db.open()){
  50. bool found = false;
  51. QStringList tables = db.tables();
  52. for(int i=0;i<tables.length();i++){
  53. if(QString::compare(tables.at(i),"usky_point_data")==0){
  54. found = true;
  55. break;
  56. }
  57. }
  58. if(!found){
  59. if(db.transaction()){
  60. db.exec("create table usky_point_data (pId text,pCard text,pName text,pNumber text,pType text,createTime text);");
  61. db.exec(QString("insert into usky_point_data (pId,pCard, pName,pNumber,pType,createTime) values ('%1', '%2', '%3', '%4', '%5', '%6');").arg(pId).arg(pCard).arg(pName).arg(pNumber).arg(pType).arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")));
  62. db.commit();
  63. }
  64. }else{
  65. db.exec(QString("insert into usky_point_data (pId,pCard, pName,pNumber,pType,createTime) values ('%1', '%2', '%3', '%4', '%5', '%6');").arg(pId).arg(pCard).arg(pName).arg(pNumber).arg(pType).arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")));
  66. db.commit();
  67. }
  68. }
  69. db.close();
  70. }
  71. void PointThread::deletePointData()
  72. {
  73. //新创建数据库
  74. //db = QSqlDatabase::addDatabase("QSQLITE","landwell_db");
  75. //db.setDatabaseName("landwell.db");
  76. //建立现有数据库连接(这个是在已存在数据库的基础上)
  77. db = QSqlDatabase::database("landwell_db");
  78. //直接操作表 在插入数据之前,先清空表中的数据
  79. //db.exec("delete from usky_point_data");
  80. if(db.open()){
  81. bool found = false;
  82. QStringList tables = db.tables();
  83. for(int i=0;i<tables.length();i++){
  84. if(QString::compare(tables.at(i),"usky_point_data")==0){
  85. found = true;
  86. break;
  87. }
  88. }
  89. if(!found){
  90. }else{
  91. db.exec("delete from usky_point_data");
  92. db.commit();
  93. }
  94. }
  95. db.close();
  96. }