#include "sysusermgtv1thread.h" #include #include #include #include #include #include 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"); // 将传入的值的id与sys_user中的id进行比较,要相等,并且contact_id不能为空,在这种条件下,如果有contcat_id,那么select语句就将它选出来 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()); }