#include "sysusermgtv1thread.h" #include <topcore/topcore.h> #include <tbaseutil/tdataresponse.h> #include <tbaseutil/tdataparse.h> #include <tdatabaseutil/tsqlconnectionpoolv2.h> #include <tdatabaseutil/tsqlqueryv2.h> #include <tdatabaseutil/tsqlselectorv2.h> SysUserMgtV1Thread::SysUserMgtV1Thread(QObject *iParent) : TopClassThreadAbs(iParent) { } void SysUserMgtV1Thread::run() { if (invokeName() == "DELETE_USER") { deleteUser(); } } void SysUserMgtV1Thread::deleteUser() { TDataResponse dataRes; TSqlQueryV2 sqlQuery(T_SQLCNT_POOL->getSqlDatabase()); sqlQuery.begin(); try { TSqlDeleterV2 sqlDeleter; sqlDeleter.setTable("pub_contacts"); sqlDeleter.setWhere(QString("id IN (SELECT contcat_id FROM sys_user WHERE id IN (%1) AND contcat_id IS NOT NULL)").arg(invokeParameter().toStringList().join(","))); sqlQuery.deleteRow(sqlDeleter); if (sqlQuery.lastError().isValid()) { throw sqlQuery.lastError(); } sqlDeleter.clear(); sqlDeleter.setTable("sys_user"); sqlDeleter.setWhere("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()); }