#include "syscontactmgtthread.h" #include <tbaseutil/tdataresponse.h> #include <tdatabaseutil/tsqlconnectionpoolv2.h> #include <tdatabaseutil/tsqlqueryv2.h> #include <tdatabaseutil/tsqlselectorv2.h> SysontactMgtThread::SysontactMgtThread(QObject *iParent) : TopClassThreadAbs(iParent) { } SysontactMgtThread::~SysontactMgtThread() { } void SysontactMgtThread::run() { if (invokeName() == "DELETE_USER") { deleteUser(); } else if (invokeName() == "GET_TABLE_FIELD") { getTableField(invokeParameter().toString()); } else if (invokeName() == "BATCH_INSERT") { batchInsertData(invokeParameter().toMap()); } } void SysontactMgtThread::deleteUser() { TDataResponse dataRes; TSqlQueryV2 sqlQuery(T_SQLCNT_POOL->getSqlDatabase()); sqlQuery.begin(); try { TSqlDeleterV2 sqlDeleter; sqlDeleter.setTable("pub_contacts"); sqlDeleter.setWhere("id", invokeParameter()); sqlQuery.deleteRow(sqlDeleter); if (sqlQuery.lastError().isValid()) { throw sqlQuery.lastError(); } sqlDeleter.setTable("pub_contacts_lnk_related"); sqlDeleter.setWhere("contact_id", invokeParameter()); sqlQuery.deleteRow(sqlDeleter); if (sqlQuery.lastError().isValid()) { throw sqlQuery.lastError(); } sqlDeleter.setTable("pub_contacts_lnk_related"); sqlDeleter.setWhere("related_id", invokeParameter()); sqlQuery.deleteRow(sqlDeleter); if (sqlQuery.lastError().isValid()) { throw sqlQuery.lastError(); } sqlDeleter.setTable("pub_customer_lnk_contact"); sqlDeleter.setWhere("contact_id", invokeParameter()); sqlQuery.deleteRow(sqlDeleter); if (sqlQuery.lastError().isValid()) { throw sqlQuery.lastError(); } sqlDeleter.setTable("pub_supplier_lnk_contact"); sqlDeleter.setWhere("contact_id", invokeParameter()); sqlQuery.deleteRow(sqlDeleter); if (sqlQuery.lastError().isValid()) { throw sqlQuery.lastError(); } sqlQuery.commit(); setInvokeResult(dataRes.toVariantMap()); return; } catch (const TError &err) { dataRes.setError(err); } catch (...) { dataRes.setErrText(ttr("Unknow Error!")); } sqlQuery.rollback(); setInvokeResult(dataRes.toVariantMap()); } void SysontactMgtThread::batchInsertData(const QVariantMap &iDataMap) { TDataResponse dataRes; TSqlQueryV2 sqlQuery(T_SQLCNT_POOL->getSqlDatabase()); sqlQuery.begin(); try { QString table = iDataMap.value("table").toString(); QStringList fields = iDataMap.value("field").toStringList(); QVariantList data = iDataMap.value("data").toList(); sqlQuery.batchInsert(table,fields,data); if (sqlQuery.lastError().isValid()) { throw sqlQuery.lastError(); } sqlQuery.commit(); dataRes.setData(QVariant()); setInvokeResult(dataRes.toVariantMap()); return; } catch (const TError &err) { dataRes.setError(err); } catch (...) { dataRes.setErrText(ttr("Unknow Error!")); } sqlQuery.rollback(); setInvokeResult(dataRes.toVariantMap()); } void SysontactMgtThread::getTableField(const QString iTableNameStr) { TDataResponse dataRes; TSqlQueryV2 sqlQuery(T_SQLCNT_POOL->getSqlDatabase()); sqlQuery.begin(); try { QStringList fieldList = sqlQuery.getFieldList(iTableNameStr); if (sqlQuery.lastError().isValid()) { throw sqlQuery.lastError(); } sqlQuery.commit(); dataRes.setData(fieldList); setInvokeResult(dataRes.toVariantMap()); return; } catch (const TError &err) { dataRes.setError(err); } catch (...) { dataRes.setErrText(ttr("Unknow Error!")); } sqlQuery.rollback(); setInvokeResult(dataRes.toVariantMap()); }