syscommugroupmgtthread.cpp 1.53 KB
#include "syscommugroupmgtthread.h"
#include <tbaseutil/tdataresponse.h>
#include <tdatabaseutil/tsqlconnectionpoolv2.h>
#include <tdatabaseutil/tsqlqueryv2.h>
#include <tdatabaseutil/tsqlselectorv2.h>

SysCommuGroupMgtThread::SysCommuGroupMgtThread(QObject *iParent)
    : TopClassThreadAbs(iParent)
{

}

SysCommuGroupMgtThread::~SysCommuGroupMgtThread()
{

}

void SysCommuGroupMgtThread::run()
{
    if (invokeName() == "DELETE_MAILGROUP") {
        deleteMailGroup();
    }
}

void SysCommuGroupMgtThread::deleteMailGroup()
{
    TDataResponse dataRes;

    TSqlQueryV2 sqlQuery(T_SQLCNT_POOL->getSqlDatabase());
    sqlQuery.begin();
    try {
        //删除邮箱组中的数据
        TSqlDeleterV2 sqlDeleter;
        sqlDeleter.setTable("sys_commu_grp");
        sqlDeleter.setWhere("id", invokeParameter());
        sqlQuery.deleteRow(sqlDeleter);
        if (sqlQuery.lastError().isValid()) {
            throw sqlQuery.lastError();
        }

        //删除关联表中的数据
        sqlDeleter.setTable("sys_commu_grp_detail");
        sqlDeleter.setWhere("commu_grp_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());
}