git-svn-id: svn://192.168.0.12/source@1 8346c931-da38-4b9b-9d4c-e48b93cbd075
This commit is contained in:
18
Filter/Filter.pro
Normal file
18
Filter/Filter.pro
Normal file
@@ -0,0 +1,18 @@
|
||||
#-------------------------------------------------
|
||||
#
|
||||
# Project created by QtCreator 2015-01-02T18:19:23
|
||||
#
|
||||
#-------------------------------------------------
|
||||
|
||||
QT += core gui sql
|
||||
|
||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
|
||||
|
||||
TARGET = Filter
|
||||
TEMPLATE = app
|
||||
|
||||
|
||||
SOURCES += main.cpp\
|
||||
widget.cpp \
|
||||
|
||||
HEADERS += widget.h \
|
||||
11
Filter/main.cpp
Normal file
11
Filter/main.cpp
Normal file
@@ -0,0 +1,11 @@
|
||||
#include "widget.h"
|
||||
#include <QApplication>
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
QApplication a(argc, argv);
|
||||
Widget w;
|
||||
w.show();
|
||||
|
||||
return a.exec();
|
||||
}
|
||||
58
Filter/sgetthread.cpp
Normal file
58
Filter/sgetthread.cpp
Normal file
@@ -0,0 +1,58 @@
|
||||
#include "sgetthread.h"
|
||||
#include <QObject>
|
||||
#include <QSqlDatabase>
|
||||
#include <QSqlQuery>
|
||||
#include <QSqlError>
|
||||
#include <QDebug>
|
||||
|
||||
SGetThread::SGetThread()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
SGetThread::~SGetThread()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void SGetThread::run()
|
||||
{
|
||||
QString strSelect;
|
||||
strSelect = "select ";
|
||||
strSelect += "CONVERT(body_articleid USING utf8),";
|
||||
strSelect += "CONVERT(body_nickname USING utf8),";
|
||||
strSelect += "CONVERT(body_date USING utf8),";
|
||||
strSelect += "CONVERT(body_articletitle USING utf8),";
|
||||
strSelect += "CONVERT(body_data USING utf8),";
|
||||
strSelect += "CONVERT(body_platformid USING utf8),";
|
||||
strSelect += "CONVERT(body_platformtitle USING utf8),";
|
||||
strSelect += "CONVERT(url USING utf8),";
|
||||
strSelect += "CONVERT(reply_nickname USING utf8),";
|
||||
strSelect += "CONVERT(reply_parent USING utf8),";
|
||||
strSelect += "CONVERT(reply_date USING utf8),";
|
||||
strSelect += "CONVERT(reply_data USING utf8),";
|
||||
strSelect += "CONVERT(reply_urlreply USING utf8),";
|
||||
strSelect += "CONVERT(keyword_id USING utf8),";
|
||||
strSelect += "CONVERT(platformname USING utf8),";
|
||||
strSelect += "CONVERT(platformform USING utf8),";
|
||||
strSelect += "CONVERT(articleform USING utf8),";
|
||||
strSelect += "CONVERT(reply_rownum USING utf8)";
|
||||
strSelect += " from ";
|
||||
strSelect += m_strTable;
|
||||
strSelect += " Order by body_date";
|
||||
|
||||
QSqlQuery query(strSelect);
|
||||
while(query.next())
|
||||
{
|
||||
QStringList strList;
|
||||
for(int i = 0; i < 18; i++)
|
||||
strList << query.value(i).toString();
|
||||
m_pData->append(strList);
|
||||
}
|
||||
}
|
||||
|
||||
void SGetThread::SetData(QString _strTable,QVector <QStringList> *_pData)
|
||||
{
|
||||
m_strTable = _strTable;
|
||||
m_pData = _pData;
|
||||
}
|
||||
18
Filter/sgetthread.h
Normal file
18
Filter/sgetthread.h
Normal file
@@ -0,0 +1,18 @@
|
||||
#ifndef SGETTHREAD_H
|
||||
#define SGETTHREAD_H
|
||||
#include <QThread>
|
||||
|
||||
class SGetThread : public QThread
|
||||
{
|
||||
public:
|
||||
SGetThread();
|
||||
~SGetThread();
|
||||
void SetData(QString _strTable,QVector <QStringList> *_pData);
|
||||
private:
|
||||
QVector <QStringList> *m_pData;
|
||||
QString m_strTable;
|
||||
protected:
|
||||
void run();
|
||||
};
|
||||
|
||||
#endif // SGETTHREAD_H
|
||||
82
Filter/sputthread.cpp
Normal file
82
Filter/sputthread.cpp
Normal file
@@ -0,0 +1,82 @@
|
||||
#include "sputthread.h"
|
||||
#include <QObject>
|
||||
#include <QSqlQuery>
|
||||
#include <QSqlError>
|
||||
#include <QDebug>
|
||||
#include <QFile>
|
||||
|
||||
SPutThread::SPutThread()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
SPutThread::~SPutThread()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void SPutThread::SetData(QString _strTable,QVector<QStringList> *_pData,int _nStart,int _nEnd)
|
||||
{
|
||||
m_nStart = _nStart;
|
||||
m_nEnd = _nEnd;
|
||||
m_strTable = _strTable;
|
||||
m_pData = _pData;
|
||||
}
|
||||
|
||||
QString SPutThread::SqlString(QString _str)
|
||||
{
|
||||
_str.replace("\\","\\\\");
|
||||
_str.replace("'","");
|
||||
_str.replace(",","\\,");
|
||||
return _str;
|
||||
}
|
||||
|
||||
void SPutThread::Debug(QString _strFilename,QString _strData)
|
||||
{
|
||||
QFile file(_strFilename);
|
||||
if (!file.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append))
|
||||
return;
|
||||
QTextStream out(&file);
|
||||
out << _strData;
|
||||
file.close();
|
||||
}
|
||||
|
||||
|
||||
void SPutThread::run()
|
||||
{
|
||||
QString strInsert = "insert into " + m_strTable + " ( company_name , category_name , platform_name , platform_form , platform_title ,"
|
||||
"article_num , article_rownum , article_form , article_title , article_url , article_id , article_nickname , "
|
||||
"article_date , article_body , article_reply ) value (";
|
||||
|
||||
for (int i = m_nStart ; i < m_nEnd ; i++)
|
||||
{
|
||||
QString query = strInsert;
|
||||
query += "'',"; //company_name
|
||||
query += "'',"; //category_name
|
||||
query += "'" + m_pData->at(i).at(14) + "',"; //platform_name
|
||||
query += "'" + m_pData->at(i).at(15) + "',"; //platform_form
|
||||
query += "'" + SqlString(m_pData->at(i).at(6)) + "',"; //platform_title
|
||||
query += "'0',"; //article_num
|
||||
query += "'" + m_pData->at(i).at(17) + "',"; //article_rownum
|
||||
query += "'" + m_pData->at(i).at(16) + "',"; //article_type
|
||||
query += "'" + SqlString(m_pData->at(i).at(3)) + "',"; //article_title
|
||||
query += "'" + m_pData->at(i).at(7) + "',"; //article_url
|
||||
query += "'" + m_pData->at(i).at(0) + "',"; //article_id
|
||||
QString str = m_pData->at(i).at(1);
|
||||
str.replace("var isInitial","");
|
||||
str.replace(";","");
|
||||
query += "'" + SqlString(str.trimmed()) + "',"; //article_nickname
|
||||
if (m_pData->at(i).at(16) == "reply")
|
||||
query += "'" + m_pData->at(i).at(10) + "',"; //article_date
|
||||
else
|
||||
query += "'" + m_pData->at(i).at(2) + "',"; //article_date
|
||||
query += "'" + SqlString(m_pData->at(i).at(4)) + "',"; //article_body
|
||||
query += "'" + SqlString(m_pData->at(i).at(11)) + "')"; //article_reply
|
||||
QSqlQuery sql;
|
||||
if (sql.exec(query.toUtf8())==false)
|
||||
{
|
||||
Debug("error.txt",query);
|
||||
Debug("error.txt",sql.lastError().text());
|
||||
}
|
||||
}
|
||||
}
|
||||
24
Filter/sputthread.h
Normal file
24
Filter/sputthread.h
Normal file
@@ -0,0 +1,24 @@
|
||||
#ifndef SPUTTHREAD_H
|
||||
#define SPUTTHREAD_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QThread>
|
||||
|
||||
class SPutThread : public QThread
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
SPutThread();
|
||||
~SPutThread();
|
||||
void SetData(QString _strTable,QVector <QStringList> *_pData,int _nStart,int _nEnd);
|
||||
QString SqlString(QString _str);
|
||||
void Debug(QString _strFilename,QString _strData);
|
||||
private:
|
||||
QVector<QStringList>*m_pData;
|
||||
QString m_strTable;
|
||||
int m_nStart,m_nEnd;
|
||||
protected:
|
||||
void run();
|
||||
};
|
||||
|
||||
#endif // SPUTTHREAD_H
|
||||
659
Filter/widget.cpp
Normal file
659
Filter/widget.cpp
Normal file
@@ -0,0 +1,659 @@
|
||||
#include "widget.h"
|
||||
#include <QVBoxLayout>
|
||||
#include <QLabel>
|
||||
#include <QSqlDatabase>
|
||||
#include <QSqlError>
|
||||
#include <QSqlQuery>
|
||||
#include <QDebug>
|
||||
#include <QPushButton>
|
||||
#include <QThread>
|
||||
#include <QTime>
|
||||
|
||||
#define D_NONE -1
|
||||
|
||||
Widget::Widget(QWidget *parent)
|
||||
: QWidget(parent)
|
||||
{
|
||||
QVBoxLayout *vMainLayout = new QVBoxLayout;
|
||||
{
|
||||
{
|
||||
QHBoxLayout *hLayout = new QHBoxLayout;
|
||||
QStringList strList;
|
||||
strList << "Data" << "Filter" << "Company" << "Catalog";
|
||||
m_plw = new QListWidget[E_LIST_MAX];
|
||||
int i = 0;
|
||||
foreach(QString str , strList)
|
||||
{
|
||||
QVBoxLayout *vLayout = new QVBoxLayout;
|
||||
vLayout->addWidget(new QLabel(str));
|
||||
vLayout->addWidget(&m_plw[i++]);
|
||||
hLayout->addLayout(vLayout);
|
||||
}
|
||||
connect(&m_plw[E_LIST_COMPANY],SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)),this,SLOT(CompanyItemChanged(QListWidgetItem*,QListWidgetItem*)));
|
||||
vMainLayout->addLayout(hLayout);
|
||||
}
|
||||
{
|
||||
QHBoxLayout *hLayout = new QHBoxLayout;
|
||||
{
|
||||
QVBoxLayout *vLayout = new QVBoxLayout;
|
||||
vLayout->addWidget(new QLabel("Filter Process"));
|
||||
m_plwFilterProcess = new QListWidget;
|
||||
vLayout->addWidget(m_plwFilterProcess);
|
||||
{
|
||||
QHBoxLayout *hLayoutEdit = new QHBoxLayout;
|
||||
hLayoutEdit->addWidget(new QLabel("Cycle : "));
|
||||
m_pleCycle = new QLineEdit;
|
||||
hLayoutEdit->addWidget(m_pleCycle);
|
||||
m_pleCycle->setText("172800");
|
||||
m_pleCycle->setEnabled(false);
|
||||
QPushButton *ppbInsert = new QPushButton("Insert");
|
||||
connect(ppbInsert, SIGNAL(released()),this, SLOT(on_insert()));
|
||||
hLayoutEdit->addWidget(ppbInsert);
|
||||
QPushButton *ppbDelete = new QPushButton("Delete");
|
||||
connect(ppbDelete, SIGNAL(released()),this, SLOT(on_delete()));
|
||||
hLayoutEdit->addWidget(ppbDelete);
|
||||
vLayout->addLayout(hLayoutEdit);
|
||||
}
|
||||
hLayout->addLayout(vLayout);
|
||||
}
|
||||
{
|
||||
QVBoxLayout *vLayout = new QVBoxLayout;
|
||||
vLayout->addWidget(new QLabel("Log"));
|
||||
m_plwLog = new QListWidget;
|
||||
vLayout->addWidget(m_plwLog);
|
||||
hLayout->addLayout(vLayout);
|
||||
}
|
||||
vMainLayout->addLayout(hLayout);
|
||||
}
|
||||
QPushButton *ppbRefresh = new QPushButton("Refresh");
|
||||
connect(ppbRefresh, SIGNAL(released()),this, SLOT(on_refresh()));
|
||||
vMainLayout->addWidget(ppbRefresh);
|
||||
}
|
||||
/*
|
||||
QPushButton *ppbSend = new QPushButton("Send");
|
||||
vMainLayout->addWidget(ppbSend);
|
||||
connect(ppbSend, SIGNAL(released()),this, SLOT(on_send()));
|
||||
*/
|
||||
connect(&m_timer, SIGNAL(timeout()), this, SLOT(Update()));
|
||||
//m_pThread = new SGetThread;
|
||||
setLayout(vMainLayout);
|
||||
//m_pPutThread = new SPutThread[QThread::idealThreadCount()];
|
||||
m_nMode = 0;
|
||||
db = QSqlDatabase::addDatabase("QMYSQL");
|
||||
m_timer.start(100);
|
||||
Refresh();
|
||||
FilterProcssRefresh();
|
||||
}
|
||||
|
||||
Widget::~Widget()
|
||||
{
|
||||
}
|
||||
|
||||
void Widget::InsertLog(QString str)
|
||||
{
|
||||
QTime time = QTime::currentTime();
|
||||
QString strOut = time.toString("[hh:mm:ss] ") + str;
|
||||
m_plwLog->addItem(strOut);
|
||||
|
||||
if (m_plwLog->count() > 1024)
|
||||
{
|
||||
m_plwLog->removeItemWidget(m_plwLog->item(0));
|
||||
QListWidgetItem* item = m_plwLog->takeItem(0);
|
||||
delete item;
|
||||
}
|
||||
m_plwLog->setCurrentRow( m_plwLog->count() - 1 );
|
||||
m_plwLog->repaint();
|
||||
}
|
||||
|
||||
void Widget::Refresh()
|
||||
{
|
||||
db.setHostName("bigbird.iptime.org");
|
||||
db.setUserName("admin");
|
||||
db.setPassword("admin123");
|
||||
db.setDatabaseName("concepters");
|
||||
if (db.open() == false)
|
||||
{
|
||||
InsertLog(db.lastError().text());
|
||||
return;
|
||||
}
|
||||
|
||||
for (int i = 0; i < E_LIST_MAX ; i++)
|
||||
m_plw[i].clear();
|
||||
|
||||
{
|
||||
QSqlQuery query("select id,name from filtergroup");
|
||||
while (query.next())
|
||||
{
|
||||
QListWidgetItem *pItem = new QListWidgetItem(query.value(1).toString(),&m_plw[E_LIST_FILTER]);
|
||||
pItem->setData(Qt::UserRole, QVariant(query.value(0)));
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
QSqlQuery query("select id,name FROM datagroup");
|
||||
while(query.next())
|
||||
{
|
||||
QListWidgetItem *pItem = new QListWidgetItem(query.value(1).toString(),&m_plw[E_LIST_DATA]);
|
||||
pItem->setData(Qt::UserRole, QVariant(query.value(0)));
|
||||
}
|
||||
}
|
||||
db.close();
|
||||
|
||||
db.setHostName("db.big-bird.co.kr");
|
||||
db.setUserName("concepters");
|
||||
db.setPassword("con97996655");
|
||||
db.setDatabaseName("dbconcepters");
|
||||
|
||||
if (db.open() == false)
|
||||
{
|
||||
qDebug() << db.lastError().text();
|
||||
return;
|
||||
}
|
||||
|
||||
{
|
||||
QSqlQuery query("select num,name FROM company");
|
||||
while(query.next())
|
||||
{
|
||||
QListWidgetItem *pItem = new QListWidgetItem(query.value(1).toString(),&m_plw[E_LIST_COMPANY]);
|
||||
pItem->setData(Qt::UserRole, QVariant(query.value(0)));
|
||||
}
|
||||
}
|
||||
db.close();
|
||||
}
|
||||
|
||||
void Widget::CompanyItemChanged(QListWidgetItem* _current,QListWidgetItem*)
|
||||
{
|
||||
if (_current == 0) return;
|
||||
db.setHostName("db.big-bird.co.kr");
|
||||
db.setUserName("concepters");
|
||||
db.setPassword("con97996655");
|
||||
db.setDatabaseName("dbconcepters");
|
||||
if (db.open() == false)
|
||||
{
|
||||
qDebug() << db.lastError().text();
|
||||
return;
|
||||
}
|
||||
m_plw[E_LIST_CATALOG].clear();
|
||||
QSqlQuery query("select num,name FROM category where company_num = '" +_current->data(Qt::UserRole).toString()+ "'");
|
||||
while(query.next())
|
||||
{
|
||||
QListWidgetItem *pItem = new QListWidgetItem(query.value(1).toString(),&m_plw[E_LIST_CATALOG]);
|
||||
pItem->setData(Qt::UserRole, QVariant(query.value(0)));
|
||||
}
|
||||
db.close();
|
||||
}
|
||||
|
||||
void Widget::on_send()
|
||||
{
|
||||
//if (m_nMode != 0) return ;
|
||||
//m_nMode = 1;
|
||||
}
|
||||
|
||||
void Widget::on_insert()
|
||||
{
|
||||
if (m_pleCycle->text().isEmpty())
|
||||
{
|
||||
InsertLog("Cycle is null");
|
||||
return;
|
||||
}
|
||||
|
||||
int aId[E_LIST_MAX];
|
||||
QString aStr[E_LIST_MAX];
|
||||
for (int i = 0; i < E_LIST_MAX;i++)
|
||||
{
|
||||
aId[i] = D_NONE;
|
||||
foreach (QListWidgetItem *item,m_plw[i].selectedItems())
|
||||
{
|
||||
aId[i] = item->data(Qt::UserRole).toInt();
|
||||
aStr[i] = item->text();
|
||||
}
|
||||
if (aId[i] == D_NONE) return;
|
||||
}
|
||||
|
||||
/*
|
||||
db.setHostName("bigbird.iptime.org");
|
||||
db.setUserName("admin");
|
||||
db.setPassword("admin123");
|
||||
db.setDatabaseName("concepters");
|
||||
if (db.open() == false)
|
||||
{
|
||||
InsertLog(db.lastError().text());
|
||||
return;
|
||||
}
|
||||
QString sql("insert into filterprocess (datagroup_id,datagroup_name,filtergroup_id,filtergroup_name, company_num, company_name , category_name , cycletime , lastruntime ) value (");
|
||||
sql += QString::number(aId[E_LIST_DATA]) + ","; // datagroup_id
|
||||
sql += "'" + aStr[E_LIST_DATA] + "',"; // datagroup_name
|
||||
sql += QString::number(aId[E_LIST_FILTER]) + ","; // filtergroup_id
|
||||
sql += "'" + aStr[E_LIST_FILTER] + "',"; // datagroup_name
|
||||
sql += QString::number(aId[E_LIST_COMPANY]) + ","; // company_num
|
||||
sql += "'" +aStr[E_LIST_COMPANY]+ "'," ; // company_name
|
||||
sql += "'" +aStr[E_LIST_CATALOG]+ "'," ; // category_name
|
||||
sql += m_pleCycle->text() + ","; //cycletime
|
||||
QDateTime NowTime(QDateTime::currentDateTime().addDays(-3));
|
||||
sql += "'" + NowTime.toString("yyyy-MM-dd HH:mm:ss") + "')"; //lastruntime
|
||||
QSqlQuery query;
|
||||
if(query.exec(sql) == false)
|
||||
{
|
||||
qDebug() << sql;
|
||||
InsertLog(query.lastError().text());
|
||||
}
|
||||
db.close();
|
||||
*/
|
||||
QStringList list;
|
||||
list.append("0");
|
||||
list.append(QString::number(aId[E_LIST_DATA]));
|
||||
list.append(aStr[E_LIST_DATA]);
|
||||
list.append(QString::number(aId[E_LIST_FILTER]));
|
||||
list.append(aStr[E_LIST_FILTER]);
|
||||
list.append(QString::number(aId[E_LIST_COMPANY]));
|
||||
list.append(aStr[E_LIST_COMPANY]); // company_name
|
||||
list.append(aStr[E_LIST_CATALOG]);// category_name
|
||||
list.append(m_pleCycle->text());
|
||||
InsertLog("Run (" + list.at(2) + "," + list.at(4) + ") -> (" + list.at(6) + "," + list.at(7) +")" );
|
||||
InsertLog("Data Get ..." );
|
||||
m_mainData.clear();
|
||||
DataGet(list);
|
||||
InsertLog("Data Filter ..." );
|
||||
DataFilter(list);
|
||||
InsertLog("Data Put ..." );
|
||||
DataPut(list);
|
||||
InsertLog("Finish");
|
||||
FilterProcssRefresh();
|
||||
}
|
||||
|
||||
void Widget::on_delete()
|
||||
{
|
||||
db.setHostName("bigbird.iptime.org");
|
||||
db.setUserName("admin");
|
||||
db.setPassword("admin123");
|
||||
db.setDatabaseName("concepters");
|
||||
if (db.open() == false)
|
||||
{
|
||||
InsertLog(db.lastError().text());
|
||||
return;
|
||||
}
|
||||
foreach (QListWidgetItem *item,m_plwFilterProcess->selectedItems())
|
||||
{
|
||||
QSqlQuery query;
|
||||
QString sql("delete from filterprocess where id = " + item->data(Qt::UserRole).toString());
|
||||
if(query.exec(sql) == false)
|
||||
{
|
||||
InsertLog(query.lastError().text());
|
||||
}
|
||||
}
|
||||
db.close();
|
||||
FilterProcssRefresh();
|
||||
}
|
||||
|
||||
void Widget::FilterProcssRefresh()
|
||||
{
|
||||
db.setHostName("bigbird.iptime.org");
|
||||
db.setUserName("admin");
|
||||
db.setPassword("admin123");
|
||||
db.setDatabaseName("concepters");
|
||||
if (db.open() == false)
|
||||
{
|
||||
InsertLog(db.lastError().text());
|
||||
return;
|
||||
}
|
||||
|
||||
QString sql("select id,datagroup_name,filtergroup_name,company_name,category_name,cycletime,lastruntime from filterprocess");
|
||||
QSqlQuery query;
|
||||
|
||||
if(query.exec(sql) == false)
|
||||
{
|
||||
InsertLog(query.lastError().text());
|
||||
}
|
||||
m_plwFilterProcess->clear();
|
||||
while(query.next())
|
||||
{
|
||||
QString str;
|
||||
str += "(Data : " + query.value(1).toString();
|
||||
str += ",Filter : " + query.value(2).toString();
|
||||
str += ") -> (Company : " + query.value(3).toString();
|
||||
str += ",Category : " + query.value(4).toString();
|
||||
str += ") (Cycle : " + query.value(5).toString();
|
||||
str += " sec, Last Run Time : " + query.value(6).toString() +")";
|
||||
QListWidgetItem *pItem = new QListWidgetItem(str,m_plwFilterProcess);
|
||||
pItem->setData(Qt::UserRole, QVariant(query.value(0)));
|
||||
}
|
||||
db.close();
|
||||
//datagroup,filtergroup company category cycletime , lastruntime
|
||||
}
|
||||
|
||||
QString Widget::SqlString(QString _str)
|
||||
{
|
||||
_str.replace("\\","\\\\");
|
||||
_str.replace("'","");
|
||||
_str.replace(",","\\,");
|
||||
return _str;
|
||||
}
|
||||
|
||||
void Widget::Update()
|
||||
{
|
||||
/*
|
||||
db.setHostName("bigbird.iptime.org");
|
||||
db.setUserName("admin");
|
||||
db.setPassword("admin123");
|
||||
db.setDatabaseName("concepters");
|
||||
if (db.open() == false)
|
||||
{
|
||||
InsertLog(db.lastError().text());
|
||||
return;
|
||||
}
|
||||
QString sql("select id,datagroup_id,datagroup_name,filtergroup_id,filtergroup_name,company_num,company_name,category_name,cycletime,lastruntime from filterprocess");
|
||||
QSqlQuery query;
|
||||
if(query.exec(sql) == false) { InsertLog(query.lastError().text());return;}
|
||||
QVector <QStringList> vecData;
|
||||
while(query.next())
|
||||
{
|
||||
QDateTime nextDateTime = query.value(9).toDateTime().addSecs(query.value(8).toInt());
|
||||
if (QDateTime::currentDateTime() >= nextDateTime)
|
||||
{
|
||||
QStringList strlist;
|
||||
for(int i = 0; i < 10 ; i++)
|
||||
strlist.push_back(query.value(i).toString());
|
||||
vecData.push_back(strlist);
|
||||
}
|
||||
}
|
||||
db.close();
|
||||
foreach(QStringList list,vecData)
|
||||
{
|
||||
InsertLog("Run (" + list.at(2) + "," + list.at(4) + ") -> (" + list.at(6) + "," + list.at(7) +")" );
|
||||
InsertLog("Data Get ..." );
|
||||
m_mainData.clear();
|
||||
DataGet(list);
|
||||
InsertLog("Data Filter ..." );
|
||||
DataFilter(list);
|
||||
InsertLog("Data Put ..." );
|
||||
DataPut(list);
|
||||
InsertLog("Finish");
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
void Widget::DataGet(QStringList _list)
|
||||
{
|
||||
db.setHostName("bigbird.iptime.org");
|
||||
db.setUserName("admin");
|
||||
db.setPassword("admin123");
|
||||
db.setDatabaseName("concepters");
|
||||
if (db.open() == false)
|
||||
{
|
||||
InsertLog(db.lastError().text());
|
||||
return;
|
||||
}
|
||||
QString sql;
|
||||
QSqlQuery query;
|
||||
sql = "update filterprocess set lastruntime = '" + QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss") +"' where id = " + _list.at(0);
|
||||
query.exec(sql);
|
||||
if(query.exec(sql) == false) { InsertLog(query.lastError().text());return;}
|
||||
|
||||
QString strSelect;
|
||||
strSelect = "select ";
|
||||
strSelect += "CONVERT(body_articleid USING utf8),";
|
||||
strSelect += "CONVERT(body_nickname USING utf8),";
|
||||
strSelect += "CONVERT(body_date USING utf8),";
|
||||
strSelect += "CONVERT(body_articletitle USING utf8),";
|
||||
strSelect += "CONVERT(body_data USING utf8),";
|
||||
strSelect += "CONVERT(body_platformid USING utf8),";
|
||||
strSelect += "CONVERT(body_platformtitle USING utf8),";
|
||||
strSelect += "CONVERT(url USING utf8),";
|
||||
strSelect += "CONVERT(reply_nickname USING utf8),";
|
||||
strSelect += "CONVERT(reply_parent USING utf8),";
|
||||
strSelect += "CONVERT(reply_date USING utf8),";
|
||||
strSelect += "CONVERT(reply_data USING utf8),";
|
||||
strSelect += "CONVERT(reply_urlreply USING utf8),";
|
||||
strSelect += "CONVERT(keyword_id USING utf8),";
|
||||
strSelect += "CONVERT(platformname USING utf8),";
|
||||
strSelect += "CONVERT(platformform USING utf8),";
|
||||
strSelect += "CONVERT(articleform USING utf8),";
|
||||
strSelect += "CONVERT(reply_rownum USING utf8)";
|
||||
strSelect += " from ";
|
||||
strSelect += "data_" + _list.at(1);
|
||||
strSelect += " Order by body_date";
|
||||
|
||||
if(query.exec(strSelect) == false) { InsertLog(query.lastError().text());return;}
|
||||
while(query.next())
|
||||
{
|
||||
QStringList strList;
|
||||
for(int i = 0; i < 18; i++)
|
||||
strList << " " + query.value(i).toString() + " ";
|
||||
m_mainData.append(strList);
|
||||
}
|
||||
db.close();
|
||||
}
|
||||
|
||||
void Widget::FilterDate(int _nCategory,QDate _dateStart,QDate _dateEnd)
|
||||
{
|
||||
int nColumn;
|
||||
switch(_nCategory)
|
||||
{
|
||||
case 0:nColumn = 2;break; // main
|
||||
case 1:nColumn = 10;break; // comment
|
||||
default : return;
|
||||
}
|
||||
|
||||
QVector <QStringList> copyData;
|
||||
foreach(QStringList strList , m_mainData)
|
||||
{
|
||||
bool bFlag = false;
|
||||
QString strTime = strList.at(nColumn).trimmed();
|
||||
if (strTime.size() >= 10)
|
||||
{
|
||||
QChar ch = strTime.at(4);
|
||||
QString strFormat = QString("yyyy")+ch+QString("MM")+ch+QString("dd");
|
||||
QDate date = QDate::fromString(strTime.left(10),strFormat);
|
||||
if (_dateStart <= date && _dateEnd >= date)
|
||||
bFlag = true;
|
||||
}
|
||||
if (bFlag)
|
||||
copyData.push_back(strList);
|
||||
}
|
||||
m_mainData.clear();
|
||||
m_mainData = copyData;
|
||||
}
|
||||
|
||||
void Widget::FilterSeracher(int _nCatalog,int _nMethod , int _nKeyword , QString _strSearch)
|
||||
{
|
||||
QStringList strListKeyword = _strSearch.split(" ");
|
||||
if (_nMethod == 1)
|
||||
{
|
||||
for (int i = 0 ; i < strListKeyword.size(); i++ )
|
||||
strListKeyword[i] = " " + strListKeyword[i] + " ";
|
||||
}
|
||||
|
||||
QVector <QStringList> copyData;
|
||||
foreach(QStringList strList , m_mainData)
|
||||
{
|
||||
bool bFlag = false;
|
||||
QString strData = strList.at(_nCatalog);
|
||||
switch(_nKeyword)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
foreach(QString strKey , strListKeyword)
|
||||
if (strData.contains(strKey)){bFlag = true;break;}
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
int nKeyCount = 0;
|
||||
foreach(QString strKey , strListKeyword)
|
||||
if (strData.contains(strKey)) nKeyCount++;
|
||||
if (nKeyCount == strListKeyword.size())
|
||||
bFlag = true;
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
bFlag = true;
|
||||
foreach(QString strKey , strListKeyword)
|
||||
if (strData.contains(strKey)){bFlag = false;break;}
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
foreach(QString strKey , strListKeyword)
|
||||
strList[_nCatalog].replace(strKey,"");
|
||||
bFlag = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (bFlag) copyData.push_back(strList);
|
||||
}
|
||||
m_mainData.clear();
|
||||
m_mainData = copyData;
|
||||
}
|
||||
|
||||
void Widget::DataFilter(QStringList _list)
|
||||
{
|
||||
db.setHostName("bigbird.iptime.org");
|
||||
db.setUserName("admin");
|
||||
db.setPassword("admin123");
|
||||
db.setDatabaseName("concepters");
|
||||
if (db.open() == false)
|
||||
{
|
||||
InsertLog(db.lastError().text());
|
||||
return;
|
||||
}
|
||||
QString sql = "select id,type,timecategory,timestart,timeend,searchescategory,searchesmethod,searcheskeyword,searchesstring from filter where filtergroup_id = " + _list.at(3);
|
||||
QSqlQuery query;
|
||||
if(query.exec(sql) == false) { InsertLog(query.lastError().text());return;}
|
||||
while (query.next())
|
||||
{
|
||||
QString str;
|
||||
switch(query.value(1).toInt())
|
||||
{
|
||||
case 0://Date
|
||||
FilterDate(query.value(2).toInt(),query.value(3).toDate(),query.value(4).toDate());
|
||||
break;
|
||||
case 1:
|
||||
FilterSeracher(query.value(5).toInt(),query.value(6).toInt(),query.value(7).toInt(),query.value(8).toString());
|
||||
break;
|
||||
}
|
||||
}
|
||||
db.close();
|
||||
}
|
||||
|
||||
void Widget::DataPut(QStringList _list)
|
||||
{
|
||||
db.setHostName("db.big-bird.co.kr");
|
||||
db.setUserName("concepters");
|
||||
db.setPassword("con97996655");
|
||||
db.setDatabaseName("dbconcepters");
|
||||
if (db.open() == false)
|
||||
{
|
||||
InsertLog(db.lastError().text());
|
||||
return;
|
||||
}
|
||||
|
||||
QSqlQuery query;
|
||||
|
||||
QString strDelete = "delete from data where company_name = '" + _list.at(6) + "' AND category_name = '" + _list.at(7) + "'";
|
||||
if(query.exec(strDelete.toUtf8()) == false) {
|
||||
InsertLog(query.lastError().text());
|
||||
return;}
|
||||
|
||||
//qDebug() << strDelete;
|
||||
|
||||
QString strInsert = "insert into data ( company_name , category_name , platform_name , platform_form , platform_title ,"
|
||||
"article_num , article_rownum , article_form , article_title , article_url , article_id , article_nickname , "
|
||||
"article_date , article_body , article_reply ) value (";
|
||||
|
||||
foreach(QStringList strList , m_mainData)
|
||||
{
|
||||
for (int i = 0; i < strList.size(); i++)
|
||||
strList[i] = strList[i].trimmed();
|
||||
QString strQuery = strInsert;
|
||||
strQuery += "'"+_list.at(6)+ "',"; //company_name
|
||||
strQuery += "'"+_list.at(7)+ "',"; //category_name
|
||||
strQuery += "'" + strList.at(14) + "',"; //platform_name
|
||||
strQuery += "'" + strList.at(15) + "',"; //platform_form
|
||||
strQuery += "'" + SqlString(strList.at(6)) + "',"; //platform_title
|
||||
strQuery += "'0',"; //article_num
|
||||
strQuery += "'" + strList.at(17) + "',"; //article_rownum
|
||||
strQuery += "'" + strList.at(16) + "',"; //article_type
|
||||
strQuery += "'" + SqlString(strList.at(3)) + "',"; //article_title
|
||||
strQuery += "'" + strList.at(7) + "',"; //article_url
|
||||
strQuery += "'" + strList.at(0) + "',"; //article_id
|
||||
QString str = strList.at(1);
|
||||
str.replace("var isInitial","");
|
||||
str.replace(";","");
|
||||
strQuery += "'" + SqlString(str.trimmed()) + "',"; //article_nickname
|
||||
if (strList.at(16) == "reply")
|
||||
strQuery += "'" + strList.at(10) + "',"; //article_date
|
||||
else
|
||||
strQuery += "'" + strList.at(2) + "',"; //article_date
|
||||
strQuery += "'" + SqlString(strList.at(4)) + "',"; //article_body
|
||||
strQuery += "'" + SqlString(strList.at(11)) + "')"; //article_reply
|
||||
|
||||
if(query.exec(strQuery) == false){ InsertLog(query.lastError().text());return;}
|
||||
}
|
||||
db.close();
|
||||
}
|
||||
|
||||
void Widget::on_refresh()
|
||||
{
|
||||
Refresh();
|
||||
FilterProcssRefresh();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
void Widget::Update()
|
||||
{
|
||||
switch(m_nMode)
|
||||
{
|
||||
case 1:
|
||||
m_data.clear();
|
||||
db.setHostName("bigbird.iptime.org");
|
||||
db.setUserName("admin");
|
||||
db.setPassword("admin123");
|
||||
db.setDatabaseName("concepters");
|
||||
if (db.open() == false)
|
||||
{
|
||||
InsertLog(db.lastError().text());
|
||||
return;
|
||||
}
|
||||
|
||||
foreach (QListWidgetItem *item,m_plw[E_LIST_DATA].selectedItems())
|
||||
{
|
||||
m_pThread->SetData(QString("data_"+item->data(Qt::UserRole).toString()),&m_data);
|
||||
}
|
||||
m_pThread->start();
|
||||
m_nMode = 2;
|
||||
InsertLog("Data Read Start");
|
||||
break;
|
||||
case 2:
|
||||
if (m_pThread->isRunning() == false)
|
||||
{
|
||||
db.close();
|
||||
InsertLog("Data Read End");
|
||||
InsertLog("Data Write Web Start");
|
||||
db.setHostName("db.big-bird.co.kr");
|
||||
db.setUserName("concepters");
|
||||
db.setPassword("con97996655");
|
||||
db.setDatabaseName("dbconcepters");
|
||||
if (db.open() == false)
|
||||
{
|
||||
InsertLog(db.lastError().text());
|
||||
return;
|
||||
}
|
||||
db.exec("delete from data");
|
||||
qDebug() << QString::number(m_data.size());
|
||||
m_pPutThread[0].SetData("data",&m_data,0,m_data.size());
|
||||
m_pPutThread[0].start();
|
||||
m_nMode = 3;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (m_pPutThread[0].isRunning() == false)
|
||||
{
|
||||
m_nMode = 0;
|
||||
InsertLog("Data Write Web End");
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
*/
|
||||
59
Filter/widget.h
Normal file
59
Filter/widget.h
Normal file
@@ -0,0 +1,59 @@
|
||||
#ifndef WIDGET_H
|
||||
#define WIDGET_H
|
||||
|
||||
#include <QListWidget>
|
||||
#include <QWidget>
|
||||
#include <QProgressBar>
|
||||
#include <QTimer>
|
||||
#include <QSqlDatabase>
|
||||
#include <QLineEdit>
|
||||
|
||||
//#include "SGetThread.h"
|
||||
//#include "SPutThread.h"
|
||||
|
||||
class Widget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
Widget(QWidget *parent = 0);
|
||||
~Widget();
|
||||
enum E_LIST
|
||||
{
|
||||
E_LIST_DATA = 0,
|
||||
E_LIST_FILTER,
|
||||
E_LIST_COMPANY,
|
||||
E_LIST_CATALOG,
|
||||
E_LIST_MAX
|
||||
};
|
||||
void Refresh();
|
||||
private:
|
||||
QListWidget *m_plw;
|
||||
QListWidget *m_plwLog;
|
||||
QListWidget *m_plwFilterProcess;
|
||||
QLineEdit *m_pleCycle;
|
||||
QProgressBar *m_pProg;
|
||||
QTimer m_timer;
|
||||
int m_nMode;
|
||||
QVector <QStringList> m_data;
|
||||
//SGetThread *m_pThread;
|
||||
//SPutThread *m_pPutThread;
|
||||
QSqlDatabase db;
|
||||
void InsertLog(QString str);
|
||||
void FilterProcssRefresh();
|
||||
QVector <QStringList> m_mainData;
|
||||
void DataGet(QStringList _list);
|
||||
void DataFilter(QStringList _list);
|
||||
void DataPut(QStringList _list);
|
||||
QString SqlString(QString _str);
|
||||
void FilterDate(int _nCategory,QDate _dateStart,QDate _dateEnd);
|
||||
void FilterSeracher(int _nCatalog,int _nMethod , int _nKeyword , QString _strSearch);
|
||||
private slots:
|
||||
void CompanyItemChanged(QListWidgetItem*,QListWidgetItem* _prev = 0);
|
||||
void on_send();
|
||||
void on_insert();
|
||||
void on_delete();
|
||||
void on_refresh();
|
||||
void Update();
|
||||
};
|
||||
|
||||
#endif // WIDGET_H
|
||||
Reference in New Issue
Block a user