// Msg.cpp : implementation file
|
//
|
|
#include "stdafx.h"
|
#include "mbamdb.h"
|
#include "Msg.h"
|
#include "MBAMDBFun.h"
|
#include "PerfTimer.h"
|
#include "StringTokenizer.h"
|
|
|
extern CCriticalSection m_csConnectDB;
|
|
#define LISTMSG_TYPE_NONE ( 0 ) // ĬÈÏÏÔʾµÄÏûÏ¢
|
#define LISTMSG_TYPE_SIMPLE ( 1 ) // Áгö»ñÈ¡²¿·ÖÏûÏ¢ÄÚÈÝ
|
#define LISTMSG_TYPE_CHAT ( 2 ) // Áгö»ñÈ¡ÁÄÌìÏÔʾµÄÏûÏ¢ÄÚÈÝ
|
#define LISTMSG_TYPE_MAGADMIN ( 3 ) // ÁгöÏûÏ¢ID
|
|
|
IMPLEMENT_DYNAMIC( CMsgItem, CObject )
|
// CMsg
|
CMsgItem::CMsgItem()
|
{
|
m_nRowType = ROWTYPE_MSG;
|
Clear();
|
}
|
|
CMsgItem::~CMsgItem()
|
{
|
}
|
void CMsgItem::operator =( const CMsgItem& item )
|
{
|
m_nRowType = item.m_nRowType;
|
m_strID = item.m_strID;
|
m_strSourceID = item.m_strSourceID;
|
m_strSubject = item.m_strSubject;
|
m_strSender = item.m_strSender;
|
m_strSenderName = item.m_strSenderName;
|
|
m_tmDate = item.m_tmDate;
|
m_nType = item.m_nType;
|
m_nMsgFolder = item.m_nMsgFolder;
|
m_strFolderName = item.m_strFolderName;
|
m_nNeedConfirm = item.m_nNeedConfirm;
|
|
m_strMsgExtType = item.m_strMsgExtType;
|
m_nReadState = item.m_nReadState;
|
m_nAttachCount = item.m_nAttachCount;
|
|
m_strAttitudeset = item.m_strAttitudeset;
|
m_nMsgFlag = item.m_nMsgFlag;
|
|
m_strContentType = item.m_strContentType;
|
m_strContent = item.m_strContent;
|
m_nContentSize = item.m_nContentSize;
|
m_strAppType = item.m_strAppType;
|
m_nIsGroupSend = item.m_nIsGroupSend;
|
m_strReceivers = item.m_strReceivers;
|
m_strReceiverNames = item.m_strReceiverNames;
|
m_tmOpenDate = item.m_tmOpenDate;
|
m_strReceiverAttitude = item.m_strReceiverAttitude;
|
m_arMsgOwners.Copy( item.m_arMsgOwners );
|
m_arMsgAttachments.Copy( item.m_arMsgAttachments );
|
m_arMsgPropertys.Copy( item.m_arMsgPropertys );
|
m_bDownLoaded = item.m_bDownLoaded;
|
m_asResertData.Copy( item.m_asResertData );
|
m_asResertName.Copy( item.m_asResertName );
|
}
|
void CMsgItem::Clear()
|
{
|
m_strID = GUID_EMPTY;
|
m_strSourceID = GUID_EMPTY;
|
m_strSubject = _T("");
|
m_strSender = _T("");
|
m_strSenderName = _T("");
|
m_tmDate = COleDateTime::GetCurrentTime( );
|
m_nType = 0;
|
m_nMsgFolder = 0;
|
m_strFolderName = _T("");
|
m_nMsgFlag = 0;
|
|
m_nNeedConfirm = 0;
|
m_strMsgExtType = _T("");
|
m_strAttitudeset = _T("");
|
|
m_nReadState = 0;
|
m_nAttachCount = 0;
|
m_nPropertyCount = 0;
|
m_nMsgExtState = 0;
|
m_nCharset = 0;
|
m_strAppType = _T("MBC");
|
m_strContentType = _T("");
|
m_strContent = _T("");
|
m_nContentSize = 0;
|
m_nIsGroupSend = 0;
|
m_strReceivers = _T("");
|
m_strReceiverNames = _T("");
|
m_strReceiverAttitude = _T("");
|
m_strContentText = _T("");
|
|
m_arMsgOwners.RemoveAll();
|
m_arMsgAttachments.RemoveAll();
|
m_arMsgPropertys.RemoveAll();
|
m_asResertData.RemoveAll();
|
m_asResertName.RemoveAll();
|
|
m_bDownLoaded = false;
|
}
|
//===========================================
|
// Åжϱ¾ÈËÊÇ·ñ´ò¿ª¹ýÕâ¸öÏûÏ¢
|
//===========================================
|
BOOL CMsgItem::IHaveOpened()
|
{
|
// ĿǰÒÑÏÂÔØ¹ýÁ˾ÍÈÏΪÊÇÒÑ´ò¿ª¹ýµÄ
|
if( m_nReadState & MSG_READSTATE_IOPEN )
|
return true;
|
|
return false;
|
}
|
BOOL CMsgItem::GetItemValue( CString strName, COleVariant &varData )
|
{
|
varData.Clear();
|
if ( strName.IsEmpty() )
|
return false;
|
|
if ( strName.CompareNoCase( _T( "ID" ) ) == 0 )
|
varData = m_strID;
|
else if ( strName.CompareNoCase( _T("SourceID") ) == 0 )
|
varData = m_strSourceID;
|
else if ( strName.CompareNoCase( _T( "Subject" ) ) == 0 )
|
varData = m_strSubject;
|
else if ( strName.CompareNoCase( _T( "Sender" ) ) == 0 )
|
varData = m_strSender;
|
else if ( strName.CompareNoCase( _T( "SenderName" ) ) == 0 )
|
varData = m_strSenderName;
|
else if ( strName.CompareNoCase( _T( "SendDate" ) ) == 0 )
|
{
|
if( !( m_tmDate.GetStatus() == COleDateTime::valid ) )
|
{
|
COleDateTime temptime(2000,1,1, 0, 0, 0);
|
m_tmDate = temptime;
|
}
|
|
COleDateTime oleDate( m_tmDate.GetYear(), m_tmDate.GetMonth(), m_tmDate.GetDay(), m_tmDate.GetHour(),
|
m_tmDate.GetMinute(), m_tmDate.GetSecond() );
|
varData = oleDate;
|
}
|
else if ( strName.CompareNoCase( _T( "Type" ) ) == 0 )
|
varData = (long)m_nType;
|
else if ( strName.CompareNoCase( _T( "MsgFolder" ) ) == 0 )
|
varData = (long)m_nMsgFolder;
|
else if ( strName.CompareNoCase( _T( "NeedConfirm" ) ) == 0 )
|
varData = (long)m_nNeedConfirm;
|
else if ( strName.CompareNoCase( _T( "Attitudeset" ) ) == 0 )
|
varData = m_strAttitudeset;
|
else if ( strName.CompareNoCase( _T( "AttachCount" ) ) == 0 )
|
varData = (long)m_nAttachCount;
|
else if ( strName.CompareNoCase( _T( "AppType" ) ) == 0 )
|
varData = m_strAppType;
|
else if ( strName.CompareNoCase( _T( "IsGroupSend" ) ) == 0 )
|
varData =(long) m_nIsGroupSend;
|
else if ( strName.CompareNoCase( _T( "Receivers" ) ) == 0 )
|
varData = m_strReceivers;
|
else if ( strName.CompareNoCase( _T( "ReceiverNames" ) ) == 0 )
|
varData = m_strReceiverNames;
|
else if ( strName.CompareNoCase( _T( "OpenDate" ) ) == 0 )
|
{
|
if( !( m_tmOpenDate.GetStatus() == COleDateTime::valid ) )
|
{
|
COleDateTime temptime(2000,1,1, 0, 0, 0);
|
m_tmOpenDate = temptime;
|
}
|
COleDateTime oleDate( m_tmOpenDate.GetYear(), m_tmOpenDate.GetMonth(), m_tmOpenDate.GetDay(), m_tmOpenDate.GetHour(),
|
m_tmOpenDate.GetMinute(), m_tmOpenDate.GetSecond() );
|
varData = oleDate;
|
}
|
else if ( strName.CompareNoCase( _T( "ReceiverAttitude" ) ) == 0 )
|
varData = m_strReceiverAttitude;
|
else if ( strName.CompareNoCase( _T( "ContentType" ) ) == 0 )
|
varData = m_strContentType;
|
else if ( strName.CompareNoCase( _T( "ContentSize" ) ) == 0 )
|
varData = (long)m_nContentSize;
|
else if ( strName.CompareNoCase( _T( "Content" ) ) == 0 )
|
varData = m_strContent;
|
else
|
return false;
|
|
return true;
|
}
|
BOOL CMsgItem::InsertRecord( CDBConnect *pAConnect,bool bInsertUnRead)
|
{
|
CString strSQL;
|
BOOL bReturn = true;
|
CString strSourceID;
|
|
if ( m_strSourceID.IsEmpty() )
|
strSourceID = GUID_EMPTY;
|
else
|
strSourceID = m_strSourceID;
|
if ( m_strAppType.IsEmpty() )
|
m_strAppType = _T("MBC");
|
strSQL.Format( _T("INSERT INTO TN_STK_MSG(G_C1,G_C2 ,S_C3,S_C4,S_C5 ,T_C6,N_C7,N_C8,C_C9,S_C10,\
|
N_C11,N_C12,N_C13,N_C14 ,N_C15,S_C16,C_C17 ,S_C18,S_C19,T_C20,\
|
S_C21,S_C22,N_C23,S_C24,S_C25 ) VALUES('%s', '%s', '%s', '%s', '%s', '%s',%d, %d,'%d', '%s',\
|
%d, %d,%d, %d,%d,'%s','%d','%s','%s','%s',\
|
'%s','%s',%d,'%s','%s')"), m_strID, strSourceID, CMBAMDBFun::GetDBReplaceStr( m_strSubject ),
|
CMBAMDBFun::GetDBReplaceStr( m_strSender ), CMBAMDBFun::GetDBReplaceStr( m_strSenderName ),
|
CMBAMDBFun::FormatDBTIMEToStr( m_tmDate ),m_nType, m_nMsgFolder, m_nNeedConfirm,
|
CMBAMDBFun::GetDBReplaceStr( m_strMsgExtType ), m_nReadState, m_nAttachCount,
|
m_nMsgFlag, m_nPropertyCount,m_nMsgExtState,m_strAppType,m_nIsGroupSend,
|
m_strReceivers,m_strReceiverNames, CMBAMDBFun::FormatDBTIMEToStr( m_tmOpenDate ),
|
CMBAMDBFun::GetDBReplaceStr( m_strReceiverAttitude ), CMBAMDBFun::GetDBReplaceStr( m_strContentType),
|
m_nContentSize,CMBAMDBFun::GetDBReplaceStr( m_strContent),CMBAMDBFun::GetDBReplaceStr( m_strContentText) );
|
try
|
{
|
bReturn = CDBSQLiteCommFun::RunSQL(strSQL, pAConnect);
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError = ex.GetErrInfo();
|
CString strErrInfo;
|
|
strErrInfo = _T("InsertRecord - Msg- ") + strError;
|
CMBAMDBFun::WriteDBErrToFile( strErrInfo );
|
return false;
|
}
|
if( !bInsertUnRead)
|
return true;
|
if( m_nReadState < MSG_READSTATE_IOPEN && (m_nMsgFolder== FOLDER_BOX_IN|| m_nMsgFolder== FOLDER_FAVORITE || m_nMsgFolder ==FOLDER_BROADCAST|| m_nMsgFolder> 100 ))
|
InsertUnreadMsg(pAConnect);
|
return true;
|
}
|
|
BOOL CMsgItem::UpdateUserAttitude( CDBConnect *pAConnect, CString strAttitude)
|
{
|
CString strSQL;
|
BOOL bReturn = true;
|
CString strSourceID;
|
|
strSQL.Format( _T("UPDATE TN_STK_MSG SET S_C21 = '%s' WHERE G_C1= '%s'"), CMBAMDBFun::GetDBReplaceStr( strAttitude ), m_strID );
|
try
|
{
|
bReturn = CDBSQLiteCommFun::RunSQL(strSQL, pAConnect);
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError = ex.GetErrInfo();
|
CString strErrInfo;
|
|
strErrInfo.Format( _T("UpdateUserAttitude(%s) - MsgOwner - %s "),strSQL, strError);
|
CMBAMDBFun::WriteDBErrToFile( strErrInfo );
|
return false;
|
}
|
return true;
|
}
|
BOOL CMsgItem::UpdateRecord( CDBConnect *pAConnect )
|
{
|
CString strSQL;
|
BOOL bReturn = true;
|
CString strSourceID;
|
|
if ( m_strSourceID.IsEmpty() )
|
strSourceID = GUID_EMPTY;
|
else
|
strSourceID = m_strSourceID;
|
if ( m_strAppType.IsEmpty() )
|
m_strAppType = _T("MBC");
|
strSQL.Format( _T("UPDATE TN_STK_MSG SET G_C2 = '%s', S_C3 = '%s', S_C4 = '%s', S_C5 = '%s', T_C6 = '%s',\
|
N_C7 = %d, N_C8 = %d, C_C9 = '%d', S_C10 = '%s', N_C11 = %d, N_C12 = %d,N_C13 = %d, N_C14 = %d, N_C15 = %d, \
|
S_C16 = '%s', C_C17 = '%d', S_C18 = '%s', S_C19 = '%s', T_C20 = '%s', \
|
S_C21 = '%s', S_C22 = '%s', N_C23 = %d, S_C24 = '%s', S_C25 = '%s' WHERE G_C1= '%s'"),
|
strSourceID, CMBAMDBFun::GetDBReplaceStr( m_strSubject ), CMBAMDBFun::GetDBReplaceStr( m_strSender ), CMBAMDBFun::GetDBReplaceStr( m_strSenderName ),
|
CMBAMDBFun::FormatDBTIMEToStr( m_tmDate ),m_nType, m_nMsgFolder, m_nNeedConfirm,CMBAMDBFun::GetDBReplaceStr( m_strMsgExtType ),
|
m_nReadState, m_nAttachCount, m_nMsgFlag, m_nPropertyCount,m_nMsgExtState,
|
m_strAppType,m_nIsGroupSend,m_strReceivers,m_strReceiverNames, CMBAMDBFun::FormatDBTIMEToStr( m_tmOpenDate ),
|
CMBAMDBFun::GetDBReplaceStr( m_strReceiverAttitude ),CMBAMDBFun::GetDBReplaceStr( m_strContentType), m_nContentSize,
|
CMBAMDBFun::GetDBReplaceStr( m_strContent), CMBAMDBFun::GetDBReplaceStr( m_strContentText), m_strID );
|
try
|
{
|
bReturn = CDBSQLiteCommFun::RunSQL(strSQL, pAConnect);
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError = ex.GetErrInfo();
|
CString strErrInfo;
|
|
strErrInfo.Format( _T("UpdateRecord(%s) - MsgOwner - %s "),strSQL, strError);
|
CMBAMDBFun::WriteDBErrToFile( strErrInfo );
|
return false;
|
}
|
return true;
|
}
|
|
CString CMsgItem::GetUpdateRecordSQL( )
|
{
|
CString strSQL;
|
BOOL bReturn = true;
|
CString strSourceID;
|
|
if ( m_strSourceID.IsEmpty() )
|
strSourceID = GUID_EMPTY;
|
else
|
strSourceID = m_strSourceID;
|
if ( m_strAppType.IsEmpty() )
|
m_strAppType = _T("MBC");
|
strSQL.Format( _T("UPDATE TN_STK_MSG SET G_C2 = '%s', S_C3 = '%s', S_C4 = '%s', S_C5 = '%s', T_C6 = '%s',\
|
N_C7 = %d, N_C8 = %d, C_C9 = '%d', S_C10 = '%s', N_C11 = %d, N_C12 = %d,N_C13 = %d, N_C14 = %d, N_C15 = %d, \
|
S_C16 = '%s', C_C17 = '%d', S_C18 = '%s', S_C19 = '%s', T_C20 = '%s', \
|
S_C21 = '%s', S_C22 = '%s', N_C23 = %d, S_C24 = '%s', S_C25 = '%s' WHERE G_C1= '%s'"),
|
strSourceID, CMBAMDBFun::GetDBReplaceStr( m_strSubject ), CMBAMDBFun::GetDBReplaceStr( m_strSender ), CMBAMDBFun::GetDBReplaceStr( m_strSenderName ),
|
CMBAMDBFun::FormatDBTIMEToStr( m_tmDate ),m_nType, m_nMsgFolder, m_nNeedConfirm,CMBAMDBFun::GetDBReplaceStr( m_strMsgExtType ),
|
m_nReadState, m_nAttachCount, m_nMsgFlag, m_nPropertyCount,m_nMsgExtState,
|
m_strAppType,m_nIsGroupSend,m_strReceivers,m_strReceiverNames, CMBAMDBFun::FormatDBTIMEToStr( m_tmOpenDate ),
|
CMBAMDBFun::GetDBReplaceStr( m_strReceiverAttitude ),CMBAMDBFun::GetDBReplaceStr( m_strContentType), m_nContentSize,
|
CMBAMDBFun::GetDBReplaceStr( m_strContent), CMBAMDBFun::GetDBReplaceStr( m_strContentText), m_strID );
|
return strSQL;
|
}
|
BOOL CMsgItem::InsertUnreadMsg(CDBConnect *pAConnect)
|
{
|
CString strSQL;
|
BOOL bReturn = true;
|
|
if( !m_strMsgExtType.IsEmpty())
|
return TRUE;
|
strSQL.Format( _T("INSERT INTO TN_STK_UNREADMSG(G_C1,S_C2 ,S_C3,S_C4,T_C5 ) VALUES('%s', '%s', '%s', '%s', '%s')"), m_strID,
|
CMBAMDBFun::GetDBReplaceStr( m_strSender ), CMBAMDBFun::GetDBReplaceStr( m_strSenderName ), CMBAMDBFun::GetDBReplaceStr( m_strSubject ),
|
CMBAMDBFun::FormatDBTIMEToStr( m_tmDate ) );
|
try
|
{
|
bReturn = CDBSQLiteCommFun::RunSQL(strSQL, pAConnect);
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError = ex.GetErrInfo();
|
CString strErrInfo;
|
|
strErrInfo = _T("InsertUnreadMsg - Msg- ") + strError;
|
CMBAMDBFun::WriteDBErrToFile( strErrInfo );
|
return false;
|
}
|
return true;
|
}
|
BOOL CMsgItem::CheckOwnerAllOpen( CDBConnect *pAConnect)
|
{
|
CString strSQL;
|
BOOL bReturn = true;
|
CDBRecord ARecordSet;
|
int nCount = 0;
|
strSQL.Format( _T("SELECT COUNT(*) FROM TN_STK_MSGOWNER WHERE G_C1 = '%s' AND T_C4<'1990-01-01'"), m_strID );
|
|
try
|
{
|
ARecordSet.Close( );
|
ARecordSet.Open(pAConnect,strSQL );
|
while ( S_OK == ARecordSet.MoveNext() )
|
{
|
ARecordSet.GetValue( 1, nCount );
|
break;
|
}
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError = ex.GetErrInfo();
|
CString strErrInfo;
|
strErrInfo = _T("CMsgItem::CheckOwnerAllOpen - ") + strError;
|
return FALSE;
|
}
|
if(nCount < 1)
|
return TRUE;
|
else
|
return FALSE;
|
}
|
int CMsgItem::FindMsgOwnerr( CString strLoginName,int nOwnerType )
|
{
|
CMsgOwnerItem itemMsgOwner;
|
int nCount, nIndex;
|
|
nCount = m_arMsgOwners.GetSize();
|
for ( nIndex = 0; nIndex < nCount; nIndex++ )
|
{
|
itemMsgOwner = m_arMsgOwners.GetAt( nIndex );
|
if ( itemMsgOwner.m_strOwner.CompareNoCase( strLoginName ) == 0 && nOwnerType == itemMsgOwner.m_nOwnerType)
|
return nIndex;
|
}
|
return -1;
|
}
|
int CMsgItem::GetContentType( CString strContentType )
|
{
|
AMMSGCONTENTTYPE nContentType = AM_CONTENTTYPE_TEXT;
|
|
if ( strContentType == CONTYPE_TEXT_PLAIN )
|
nContentType = AM_CONTENTTYPE_MSG;
|
else if ( strContentType == CONTYPE_TEXT_TEXT )
|
nContentType = AM_CONTENTTYPE_TEXT;
|
else if ( strContentType == CONTYPE_TEXT_AML )
|
nContentType = AM_CONTENTTYPE_AML;
|
else if ( strContentType == CONTYPE_TEXT_PDM )
|
nContentType = AM_CONTENTTYPE_PDM;
|
else if ( strContentType == CONTYPE_TEXT_HTML )
|
nContentType = AM_CONTENTTYPE_HTML;
|
else if ( strContentType == CONTYPE_TEXT_URL )
|
nContentType = AM_CONTENTTYPE_URL;
|
else if ( strContentType == CONTYPE_TEXT_XML )
|
nContentType = AM_CONTENTTYPE_XML;
|
else
|
nContentType = AM_CONTENTTYPE_TEXT;
|
|
return nContentType;
|
}
|
|
CString CMsgItem::GetContentType( int AMContentType )
|
{
|
CString strContentType = _T( "" );
|
|
switch ( AMContentType )
|
{
|
case AM_CONTENTTYPE_MSG:
|
strContentType = CONTYPE_TEXT_PLAIN;
|
break;
|
|
case AM_CONTENTTYPE_TEXT:
|
strContentType = CONTYPE_TEXT_TEXT;
|
break;
|
|
case AM_CONTENTTYPE_AML:
|
strContentType = CONTYPE_TEXT_AML;
|
break;
|
|
case AM_CONTENTTYPE_PDM:
|
strContentType = CONTYPE_TEXT_PDM;
|
break;
|
|
case AM_CONTENTTYPE_HTML:
|
strContentType = CONTYPE_TEXT_HTML;
|
break;
|
|
case AM_CONTENTTYPE_URL:
|
strContentType = CONTYPE_TEXT_URL;
|
break;
|
|
case AM_CONTENTTYPE_XML:
|
strContentType = CONTYPE_TEXT_XML;
|
break;
|
|
default:
|
break;
|
}
|
|
return strContentType;
|
}
|
int CMsgItem::GetMsgEnType( )
|
{
|
CString strData;
|
int nMsgEnType = 0;
|
|
GetProp( _T("msgentype"), strData );
|
nMsgEnType = _tstoi( strData );
|
|
return nMsgEnType;
|
}
|
|
void CMsgItem::LoadNtyNewMsgData( CComPtr<ISTKMessage> IMessagePtr, long nFlag )
|
{
|
CString strMsgID;
|
CComBSTR bszMsgID;
|
CComBSTR bszSender;
|
CString strSender;
|
CComBSTR bszSenderName;
|
CString strSenderName;
|
CComBSTR bszSubject;
|
CString strSubject;
|
CComBSTR bszMsgExtType;
|
CString strMsgExtType;
|
CComBSTR bszAppType;
|
CString strAppType;
|
long nMsgType;
|
long nMsgFlag(0);
|
long nAttachCount(0);
|
CComBSTR bszMsg;
|
CString strMsg;
|
CComBSTR bszFolderName;
|
CString strFolderName;
|
CComBSTR bszSendDate;
|
CString strSendDate;
|
CHighTime dtSendDate;
|
SYSTEMTIME tmSystem;
|
AMMSGCONTENTTYPE AMContentType;
|
|
IMessagePtr->get_MsgID(&bszMsgID);
|
strMsgID = (LPCTSTR)(_bstr_t)bszMsgID;
|
bszMsgID.Empty();
|
IMessagePtr->get_SenderName(&bszSenderName);
|
strSenderName = (LPCTSTR)(_bstr_t)bszSenderName;
|
bszSenderName.Empty();
|
IMessagePtr->get_Subject(&bszSubject);
|
strSubject = (LPCTSTR)(_bstr_t)bszSubject;
|
bszSubject.Empty();
|
IMessagePtr->get_Sender(&bszSender);
|
strSender = (LPCTSTR)(_bstr_t)bszSender;
|
bszSender.Empty();
|
strSender.MakeLower();
|
IMessagePtr->GetAttachCount(&nAttachCount);
|
IMessagePtr->get_MsgType(&nMsgType);
|
IMessagePtr->get_SendDate( &bszSendDate );
|
strSendDate = (LPCTSTR)(_bstr_t)bszSendDate;
|
|
bszSendDate.Empty();
|
|
IMessagePtr->get_MsgExtType(&bszMsgExtType);
|
strMsgExtType = (LPCTSTR)_bstr_t(bszMsgExtType);
|
bszMsgExtType.Empty();
|
IMessagePtr->get_MsgFlag(&nMsgFlag);
|
IMessagePtr->get_FolderName( &bszFolderName );
|
m_strFolderName = (LPCTSTR)(_bstr_t)bszFolderName;
|
bszFolderName.Empty();
|
IMessagePtr->get_MsgContentType(&AMContentType);
|
m_strContentType = GetContentType(AMContentType);
|
|
IMessagePtr->get_AppType(&bszAppType);
|
strAppType = (LPCTSTR)(_bstr_t)bszAppType;
|
bszFolderName.Empty();
|
|
m_nMsgFlag = (DWORD)nMsgFlag;
|
m_strID = strMsgID;
|
m_strSenderName = strSenderName;
|
m_strSubject = strSubject;
|
m_strSender = strSender;
|
m_strAppType = strAppType;
|
m_nType = nMsgType;
|
m_strMsgExtType = strMsgExtType;
|
m_nAttachCount = nAttachCount;
|
if ( dtSendDate.ParseDateTime( strSendDate ) )
|
{
|
dtSendDate.GetAsSystemTime( tmSystem );
|
m_tmDate = COleDateTime( tmSystem.wYear, tmSystem.wMonth, tmSystem.wDay,
|
tmSystem.wHour, tmSystem.wMinute, tmSystem.wSecond );
|
}
|
}
|
|
BOOL CMsgItem::LoadData(CComPtr<ISTKMessage> IMessagePtr)
|
{
|
int nNum;
|
AMMSGCONTENTTYPE AMContentType;
|
CString strMsgID, strSourceMsgID;
|
long nAttachCount;
|
__int64 nAttachSize;
|
long nReceiverCount;
|
long nNeedConfirm, nIsDownloaded;
|
CComBSTR bszMsgID;
|
CComBSTR bszReceiver;
|
CComBSTR bszReceiverName;
|
CComBSTR bszAttachName;
|
CComBSTR bszModifyDate;
|
CComBSTR bszFileID;
|
CComBSTR bszFilesFlag;
|
CComBSTR bszAttachPath;
|
|
CComBSTR bszSender;
|
CString strSender;
|
CComBSTR bszSendDate;
|
CString strSendDate;
|
CComBSTR bszSenderName;
|
CString strSenderName;
|
CComBSTR bszSubject;
|
CString strSubject;
|
CComBSTR bszMsgExtType;
|
CString strMsgExtType;
|
CComBSTR bszMeetID;
|
CString strMeetID;
|
long nMsgType;
|
CComBSTR bszMsg;
|
CString strMsg;
|
CComBSTR bszAppType;
|
CString strAppType;
|
|
CMsgOwnerItem itemMsgOwner;
|
CMsgAttachmentItem itemMsgAttachment;
|
CComBSTR bszFolderName;
|
CHighTime dtSendDate;
|
SYSTEMTIME tmSystem;
|
|
IMessagePtr->get_MsgContentType(&AMContentType);
|
IMessagePtr->GetMsgContent(AMContentType, &bszMsg);
|
strMsg = (LPCTSTR)(_bstr_t)bszMsg;
|
bszMsg.Empty();
|
IMessagePtr->get_MsgID(&bszMsgID);
|
strMsgID = (LPCTSTR)(_bstr_t)bszMsgID;
|
bszMsgID.Empty();
|
IMessagePtr->get_SourceMsgID( &bszMsgID );
|
strSourceMsgID =(LPCTSTR)(_bstr_t) bszMsgID;
|
bszMsgID.Empty();
|
IMessagePtr->get_SendDate(&bszSendDate);
|
strSendDate = (LPCTSTR)(_bstr_t) bszSendDate;
|
bszSendDate.Empty();
|
IMessagePtr->get_SenderName(&bszSenderName);
|
strSenderName = (LPCTSTR)(_bstr_t) bszSenderName;
|
bszSenderName.Empty();
|
|
IMessagePtr->get_Subject(&bszSubject);
|
strSubject = (LPCTSTR)(_bstr_t) bszSubject;
|
bszSubject.Empty();
|
IMessagePtr->get_Sender(&bszSender);
|
strSender = (LPCTSTR)(_bstr_t) bszSender;
|
bszSender.Empty();
|
strSender.MakeLower();
|
IMessagePtr->GetAttachCount(&nAttachCount);
|
IMessagePtr->get_MsgType(&nMsgType);
|
|
IMessagePtr->get_AppType(&bszAppType);
|
strAppType = (LPCTSTR)(_bstr_t)bszAppType;
|
bszFolderName.Empty();
|
|
m_strAppType = strAppType;
|
for (nNum = 0; nNum < nAttachCount; nNum++)
|
{
|
IMessagePtr->GetAttachName(nNum, &bszAttachName);
|
IMessagePtr->GetAttachSize(nNum, &nAttachSize);
|
IMessagePtr->GetAttachModifyDate(nNum, &bszModifyDate);
|
IMessagePtr->GetAttachFileID(nNum, &bszFileID);
|
IMessagePtr->GetAttachFileSFlag(nNum, &bszFilesFlag);
|
itemMsgAttachment.m_strFileName = (LPCTSTR)(_bstr_t)bszAttachName;
|
itemMsgAttachment.m_nFileSize = nAttachSize;
|
itemMsgAttachment.m_strFileSFlag = (LPCTSTR)(_bstr_t)bszFilesFlag;
|
itemMsgAttachment.m_strFileID = (LPCTSTR)(_bstr_t)bszFileID;
|
bszAttachName.Empty();
|
bszModifyDate.Empty();
|
bszFilesFlag.Empty();
|
|
itemMsgAttachment.m_strMsgID = strMsgID ;
|
IMessagePtr->GetAttrib( bszFileID, &bszAttachPath );
|
itemMsgAttachment.m_strFilePath =(LPCTSTR)(_bstr_t) bszAttachPath;
|
bszFileID.Empty();
|
bszAttachPath.Empty();
|
m_arMsgAttachments.Add( itemMsgAttachment );
|
}
|
IMessagePtr->GetReceiverCount(&nReceiverCount);
|
for (nNum = 0; nNum < nReceiverCount; nNum++)
|
{
|
IMessagePtr->GetReceiverName(nNum, &bszReceiverName);
|
IMessagePtr->GetReceiver(nNum, &bszReceiver);
|
itemMsgOwner.m_strOwnerName = (LPCTSTR)(_bstr_t)bszReceiverName;
|
itemMsgOwner.m_strOwner = (LPCTSTR)(_bstr_t)bszReceiver;
|
itemMsgOwner.m_strOwner.MakeLower();
|
itemMsgOwner.m_tmOpenDate = COleDateTime( 1971, 1, 1, 0, 0, 0 );
|
itemMsgOwner.m_strMsgID = strMsgID ;
|
bszReceiverName.Empty();
|
bszReceiver.Empty();
|
m_arMsgOwners.Add( itemMsgOwner );
|
|
}
|
if(nReceiverCount > 1)
|
{
|
m_nIsGroupSend = true;
|
}
|
else
|
{
|
m_nIsGroupSend = false;
|
m_strReceivers = itemMsgOwner.m_strOwner ;
|
m_strReceiverNames = itemMsgOwner.m_strOwnerName ;
|
}
|
IMessagePtr->IsNeedConfirm(&nNeedConfirm);
|
m_nNeedConfirm = nNeedConfirm;
|
m_strID = strMsgID;
|
m_strSourceID = strSourceMsgID;
|
m_strContentType = GetContentType( AMContentType );
|
m_strContent = strMsg;
|
if ( dtSendDate.ParseDateTime( strSendDate ) )
|
{
|
dtSendDate.GetAsSystemTime( tmSystem );
|
m_tmDate = COleDateTime( tmSystem.wYear, tmSystem.wMonth, tmSystem.wDay,
|
tmSystem.wHour, tmSystem.wMinute, tmSystem.wSecond );
|
}
|
m_strSenderName = strSenderName;
|
m_strSubject = strSubject;
|
m_strSender = strSender;
|
m_nType = nMsgType;
|
IMessagePtr->IsDownloaded( false , &nIsDownloaded );
|
|
if ( nIsDownloaded > 0 )
|
m_bDownLoaded = true;
|
else
|
m_bDownLoaded = false;
|
|
IMessagePtr->get_MsgExtType(&bszMsgExtType);
|
strMsgExtType = (LPCTSTR)(_bstr_t)(bszMsgExtType);
|
bszMsgExtType.Empty();
|
m_strMsgExtType = strMsgExtType;
|
|
long lTemp;
|
CMsgPropertyItem itemMsgProperty;
|
|
itemMsgProperty.m_strMsgID = strMsgID;
|
IMessagePtr->get_MsgFlag(&lTemp);
|
m_nMsgFlag = (DWORD)lTemp;
|
IMessagePtr->get_FolderName( &bszFolderName );
|
m_strFolderName = (LPCTSTR)(_bstr_t)bszFolderName;
|
bszFolderName.Empty();
|
if ( !m_strFolderName.IsEmpty() )
|
{
|
itemMsgProperty.m_strMsgID = strMsgID;
|
itemMsgProperty.m_strName = _T("FolderName");
|
itemMsgProperty.m_strValue = m_strFolderName;
|
m_arMsgPropertys.Add(itemMsgProperty);
|
}
|
//---------------------------------------------
|
// ±£´æRESERTµÄÐÅÏ¢
|
//---------------------------------------------
|
CString strLeftSide;
|
CString strRightSide;
|
CComBSTR bszLeftSide;
|
CComBSTR bszRightSide;
|
|
if ( m_nMsgFlag & MSGFLAG_RESERTBUTTON )
|
{
|
IMessagePtr->GetAttrib( (_bstr_t)(_T("LeftSide")), &bszLeftSide );
|
IMessagePtr->GetAttrib( (_bstr_t)(_T("RightSide")), &bszRightSide );
|
|
strLeftSide = ( LPCTSTR)(_bstr_t)bszLeftSide;
|
strRightSide = ( LPCTSTR)(_bstr_t)bszRightSide;
|
bszLeftSide.Empty();
|
bszRightSide.Empty();
|
if ( !strLeftSide.IsEmpty() )
|
AddData( _T("LeftSide"), strLeftSide );//_T("CMDADDIN:FAFAFDA;SYS_HISTORY") );
|
if ( !strRightSide.IsEmpty() )
|
AddData( _T("RightSide"), strRightSide );//_T("ͬÒâ;²»Í¬Òâ;SYS_CLOSE") );
|
}
|
|
// Begin Modify wangcheng 2007/07/23
|
long nPropertyCount = 0;
|
CComBSTR bszAttribName;
|
CComBSTR bszAttribValue;
|
CString strAttribName;
|
CString strAttribValue;
|
|
IMessagePtr->GetAttribCount( &nPropertyCount );
|
for ( nNum = 0; nNum < nPropertyCount; nNum++ )
|
{
|
IMessagePtr->GetAttribName( nNum, &bszAttribName );
|
strAttribName = (LPCTSTR)(_bstr_t)bszAttribName;
|
bszAttribName.Empty( );
|
|
IMessagePtr->GetAttribValue( nNum, &bszAttribValue );
|
strAttribValue = (LPCTSTR)(_bstr_t)bszAttribValue;
|
bszAttribValue.Empty( );
|
|
itemMsgProperty.m_strMsgID = strMsgID ;
|
itemMsgProperty.m_strName = strAttribName;
|
itemMsgProperty.m_strValue = strAttribValue;
|
m_arMsgPropertys.Add(itemMsgProperty);
|
}
|
// End Modify
|
m_nPropertyCount = m_arMsgPropertys.GetCount( );
|
return true;
|
}
|
|
BOOL CMsgItem::CapyDataTo(CComPtr<ISTKMessage> IMessagePtr)
|
{
|
int nNum;
|
CString strMsgID, strSourceMsgID;
|
long nAttachCount;
|
long nReceiverCount;
|
BSTR bszMsg;
|
BSTR bszValue;
|
CString strMsg;
|
CMsgOwnerItem itemMsgOwner;
|
CMsgAttachmentItem itemMsgAttachment;
|
CString strMsgEnType;
|
CString strValue;
|
CComBSTR bszAppType;
|
CString strAppType;
|
|
bszMsg = m_strContent.AllocSysString();
|
|
int nContentType = GetContentType(m_strContentType);
|
IMessagePtr->put_MsgContentType( (AMMSGCONTENTTYPE)nContentType );
|
if ( nContentType == AM_CONTENTTYPE_TEXT )
|
{
|
IMessagePtr->SetMsgContent( (AMMSGCONTENTTYPE)nContentType, bszMsg);
|
}
|
else
|
IMessagePtr->SetMsgContent((AMMSGCONTENTTYPE)nContentType,bszMsg);
|
SysFreeString(bszMsg);
|
bszValue = m_strID.AllocSysString();
|
IMessagePtr->put_MsgID( bszValue);
|
SysFreeString(bszValue);
|
bszValue = m_strSourceID.AllocSysString();
|
IMessagePtr->put_SourceMsgID( bszValue);
|
SysFreeString(bszValue);
|
|
strValue = CMBAMDBFun::FormatDBTIMEToStr(m_tmDate);
|
bszValue = strValue.AllocSysString();
|
IMessagePtr->put_SendDate( bszValue );
|
SysFreeString(bszValue);
|
bszValue = m_strSenderName.AllocSysString();
|
IMessagePtr->put_SenderName( bszValue );
|
SysFreeString(bszValue);
|
bszValue = m_strSubject.AllocSysString();
|
IMessagePtr->put_Subject(bszValue);
|
SysFreeString(bszValue);
|
bszValue = m_strSender.AllocSysString();
|
IMessagePtr->put_Sender(bszValue);
|
SysFreeString(bszValue);
|
|
IMessagePtr->put_MsgType(m_nType);
|
IMessagePtr->NeedConfirm( m_nNeedConfirm );
|
IMessagePtr->put_MsgFlag((long)m_nMsgFlag);
|
bszValue = m_strMsgExtType.AllocSysString();
|
IMessagePtr->put_MsgExtType(bszValue);
|
SysFreeString(bszValue);
|
IMessagePtr->SetDownloaded( m_bDownLoaded );
|
bszValue = m_strFolderName.AllocSysString();
|
IMessagePtr->put_FolderName( bszValue );
|
SysFreeString(bszValue);
|
|
bszAppType = m_strAppType.AllocSysString();
|
IMessagePtr->put_AppType(bszAppType);
|
|
CString strInfo;
|
CString strModifyDate = CMBAMDBFun::FormatDBTIMEToStr(CHighTime::GetPresentTime());
|
nAttachCount = m_arMsgAttachments.GetSize();
|
for( nNum = 0 ; nNum < nAttachCount ; nNum++ )
|
{
|
itemMsgAttachment = m_arMsgAttachments.GetAt( nNum );
|
BSTR bszrFileSFlag;
|
BSTR bszFileID;
|
BSTR bszFileName;
|
bszrFileSFlag = itemMsgAttachment.m_strFileSFlag.AllocSysString();
|
bszFileID = itemMsgAttachment.m_strFileID.AllocSysString();
|
bszFileName = itemMsgAttachment.m_strFileName.AllocSysString();
|
bszValue = strModifyDate.AllocSysString();
|
IMessagePtr->AddAttachInfo( bszrFileSFlag,
|
bszFileID,
|
bszFileName ,
|
itemMsgAttachment.m_nFileEnType,
|
itemMsgAttachment.m_nFileSize ,
|
bszValue );
|
SysFreeString(bszrFileSFlag);
|
SysFreeString(bszFileName);
|
SysFreeString(bszValue);
|
bszFileName = itemMsgAttachment.m_strFilePath.AllocSysString();
|
IMessagePtr->SetAttrib( bszFileID, bszFileName );
|
SysFreeString(bszFileID);
|
SysFreeString(bszFileName);
|
}
|
|
nReceiverCount = m_arMsgOwners.GetSize();
|
if(nReceiverCount > 0)
|
{
|
for (nNum = 0; nNum < nReceiverCount; nNum++)
|
{
|
itemMsgOwner = m_arMsgOwners.GetAt(nNum);
|
|
|
BSTR bszLoginName;
|
bszLoginName = itemMsgOwner.m_strOwner.AllocSysString();
|
bszValue = itemMsgOwner.m_strOwnerName.AllocSysString();
|
IMessagePtr->AddReceiver( bszLoginName ,
|
bszValue );
|
SysFreeString(bszLoginName);
|
SysFreeString(bszValue);
|
}
|
}
|
else
|
{
|
BSTR bszLoginName;
|
bszLoginName = m_strReceivers.AllocSysString();
|
bszValue = m_strReceiverNames.AllocSysString();
|
IMessagePtr->AddReceiver( bszLoginName ,
|
bszValue );
|
SysFreeString(bszLoginName);
|
SysFreeString(bszValue);
|
}
|
|
CMsgPropertyItem itemMsgProperty;
|
|
int nCount = m_arMsgPropertys.GetSize();
|
for (nNum = 0; nNum < nCount; nNum++)
|
{
|
itemMsgProperty = m_arMsgPropertys.GetAt(nNum);
|
|
BSTR bszAttribName;
|
bszAttribName = itemMsgProperty.m_strName.AllocSysString();
|
bszValue = itemMsgProperty.m_strValue.AllocSysString();
|
IMessagePtr->SetAttrib( bszAttribName, bszValue );
|
SysFreeString(bszAttribName);
|
SysFreeString(bszValue);
|
}
|
return true;
|
}
|
BOOL CMsgItem::IsAttitudeOk( CString strRightButton )
|
{
|
return false;
|
}
|
|
void CMsgItem::GetProp( CString strName, CString &strData )
|
{
|
int nCount, nIndex;
|
CMsgPropertyItem itemMsgProperty;
|
strData = _T("");
|
nCount = m_arMsgPropertys.GetSize();
|
for ( nIndex = 0; nIndex < nCount; nIndex++ )
|
{
|
itemMsgProperty = m_arMsgPropertys.GetAt( nIndex );
|
if ( itemMsgProperty.m_strName.CompareNoCase(strName) == 0 )
|
{
|
strData = itemMsgProperty.m_strValue;
|
break;
|
}
|
}
|
}
|
|
void CMsgItem::SetProp( CString strName, CString strData )
|
{
|
int nCount, nIndex;
|
CMsgPropertyItem itemMsgProperty;
|
int nPos = -1;
|
|
nCount = m_arMsgPropertys.GetSize();
|
for ( nIndex = 0; nIndex < nCount; nIndex++ )
|
{
|
itemMsgProperty = m_arMsgPropertys.GetAt( nIndex );
|
if ( itemMsgProperty.m_strName.CompareNoCase(strName) == 0 )
|
{
|
nPos = nIndex;
|
break;
|
}
|
}
|
if(nPos < 0)
|
{
|
itemMsgProperty.m_strMsgID = m_strID;
|
itemMsgProperty.m_strName = strName;
|
itemMsgProperty.m_strValue = strData;
|
m_arMsgPropertys.Add(itemMsgProperty);
|
}
|
else
|
{
|
itemMsgProperty = m_arMsgPropertys.GetAt( nIndex );
|
itemMsgProperty.m_strValue = strData;
|
m_arMsgPropertys.SetAt(nPos, itemMsgProperty);
|
}
|
}
|
CString CMsgItem::GetCCReceiversName( )
|
{
|
CString strCCReceiversName = _T("");
|
CString strCCReceiverUsers, strCCReceiverUser;
|
CString strReceiver, strReceiverName;
|
|
/*GetProp( CCRECEIVE_USERNAMES, strCCReceiversName );
|
if( !strCCReceiversName.IsEmpty() )
|
{
|
return strCCReceiversName;
|
}*/
|
GetProp( CCRECEIVE_USERS, strCCReceiverUsers );
|
CStringTokenizer sTokMsgOwners( strCCReceiverUsers, _T('|') );
|
|
while ( sTokMsgOwners.Next( strCCReceiverUser ) )
|
{
|
if ( strCCReceiverUser.IsEmpty() )
|
continue;
|
|
if ( !strCCReceiversName.IsEmpty() )
|
strCCReceiversName += _T(";");
|
|
strCCReceiversName += GetReceiverName( strCCReceiverUser );
|
}
|
|
return strCCReceiversName;
|
}
|
|
CString CMsgItem::GetReceiverName( CString strReceiver )
|
{
|
CString strReceivers;
|
int nCount, nIndex;
|
CMsgOwnerItem itemReceiver;
|
|
if(m_nIsGroupSend)
|
{
|
nCount = m_arMsgOwners.GetSize();
|
for ( nIndex = 0; nIndex < nCount; nIndex++ )
|
{
|
itemReceiver = m_arMsgOwners.GetAt( nIndex );
|
if ( strReceiver.CompareNoCase( itemReceiver.m_strOwner ) == 0 )
|
{
|
return itemReceiver.m_strOwnerName;
|
}
|
}
|
}
|
else
|
strReceiver = m_strReceiverNames;
|
return strReceiver;
|
}
|
bool CMsgItem::IsExistUnread( )
|
{
|
if(m_nIsGroupSend)
|
{
|
bool bExistUnread = false;
|
int nYear;
|
CMsgOwnerItem itemReceiver;
|
int nCount = m_arMsgOwners.GetSize();
|
for ( int nIndex = 0; nIndex < nCount; nIndex++ )
|
{
|
itemReceiver = m_arMsgOwners.GetAt( nIndex );
|
if(itemReceiver.m_tmOpenDate.m_status == CHighTime::valid)
|
nYear= itemReceiver.m_tmOpenDate.GetYear();
|
if(nYear >1990)
|
{
|
bExistUnread = true;
|
break;
|
}
|
}
|
}
|
return false;
|
}
|
BOOL CMsgItem::IsHaveCCUser( )
|
{
|
CString strCCReceivers;
|
|
GetProp( CCRECEIVE_USERS, strCCReceivers );
|
if ( strCCReceivers.IsEmpty() )
|
return false;
|
else
|
return true;
|
}
|
|
BOOL CMsgItem::IsHaveMulRecLim( )
|
{
|
CString strMulRecLim;
|
|
GetProp( MULRECEIVERLIM_PROP, strMulRecLim );
|
if ( strMulRecLim == _T("1") )
|
return true;
|
else
|
return false;
|
}
|
CString CMsgItem::GetUserInfo()
|
{
|
CString strUserInfo;
|
CString strReceivers;
|
|
if ( m_strSenderName.IsEmpty() )
|
return _T( "" );
|
strUserInfo += m_strSenderName;
|
strReceivers = GetReceiversName();
|
if ( strReceivers.IsEmpty() )
|
return strUserInfo;
|
|
strUserInfo += _T(" => ") + strReceivers;
|
return strUserInfo;
|
}
|
|
CString CMsgItem::GetUserInfoPro()
|
{
|
CString strUserInfo;
|
CString strReceivers;
|
CString strCCName;
|
CString strCCReceivers = _T("");
|
// CResourceMgr ResMgr( _T("STKBaseClass.dll") );
|
|
if ( m_strSenderName.IsEmpty() )
|
return _T( "" );
|
|
strUserInfo += m_strSenderName;
|
int nCount, nIndex;
|
CMsgOwnerItem itemReceiver;
|
if(m_nIsGroupSend)
|
{
|
if ( IsHaveCCUser( ) )
|
{
|
strCCReceivers = GetCCReceivers( );
|
if( !strCCReceivers.IsEmpty())
|
{
|
strCCReceivers += _T(";");
|
strCCReceivers = _T(";") + strCCReceivers;
|
}
|
strCCReceivers.MakeLower();
|
}
|
nCount = m_arMsgOwners.GetSize();
|
for ( nIndex = 0; nIndex < nCount; nIndex++ )
|
{
|
itemReceiver = m_arMsgOwners.GetAt( nIndex );
|
itemReceiver.m_strOwner.MakeLower();
|
if(strCCReceivers.Find(itemReceiver.m_strOwner) < 0)
|
strReceivers += itemReceiver.m_strOwnerName + _T(";");
|
}
|
|
}
|
else
|
strReceivers= m_strReceiverNames;
|
if ( strReceivers.IsEmpty() )
|
strReceivers= m_strReceiverNames;
|
// strCCName.LoadString( IDS_SYS_MAKECOPY );
|
strUserInfo += _T(" => ") + strReceivers;
|
if ( IsHaveCCUser( ) )
|
{
|
//strUserInfo += _T(" ") + strCCName;
|
strUserInfo += _T("\r\n> ³ËÍ£º") + GetCCReceiversName( );
|
}
|
|
return strUserInfo;
|
}
|
CString CMsgItem::GetReceiversNamePro( )
|
{
|
CString strReceiverNames = _T("");
|
int nCount, nIndex;
|
CMsgOwnerItem itemReceiver;
|
|
if(m_nIsGroupSend)
|
{
|
nCount = m_arMsgOwners.GetSize();
|
for ( nIndex = 0; nIndex < nCount; nIndex++ )
|
{
|
itemReceiver = m_arMsgOwners.GetAt( nIndex );
|
strReceiverNames += itemReceiver.m_strOwnerName + _T(";");
|
}
|
}
|
else
|
strReceiverNames= m_strReceiverNames;
|
return strReceiverNames;
|
}
|
CString CMsgItem::GetCCReceivers( )
|
{
|
CString strCCReceiverUsers;
|
CString strReceiver, strCCReceivers;
|
|
GetProp( CCRECEIVE_USERS, strCCReceiverUsers );
|
CStringTokenizer sTokMsgOwners( strCCReceiverUsers, _T('|') );
|
|
while ( sTokMsgOwners.Next( strReceiver ) )
|
{
|
if ( strReceiver.IsEmpty() )
|
continue;
|
|
if ( !strCCReceivers.IsEmpty() )
|
strCCReceivers += _T(";");
|
|
strCCReceivers += strReceiver;
|
}
|
|
return strCCReceivers;
|
}
|
|
CString CMsgItem::GetCCReceiverTypes( )
|
{
|
CString strCCReceiverUserTypes;
|
CString strReceiverType, strCCReceiverTypes;
|
|
GetProp( CCRECEIVE_USERTYPES, strCCReceiverUserTypes );
|
CStringTokenizer sTokMsgOwners( strCCReceiverTypes, _T('|') );
|
|
while ( sTokMsgOwners.Next( strReceiverType ) )
|
{
|
if ( strReceiverType.IsEmpty() )
|
continue;
|
|
if ( !strCCReceiverTypes.IsEmpty() )
|
strCCReceiverTypes += _T(";");
|
|
strCCReceiverTypes += strReceiverType;
|
}
|
|
return strCCReceiverTypes;
|
}
|
|
void CMsgItem::GetCCReceivers( CStringArray &asCCReceivers )
|
{
|
CString strCCReceiverUsers;
|
CString strReceiver;
|
|
asCCReceivers.RemoveAll( );
|
GetProp( CCRECEIVE_USERS, strCCReceiverUsers );
|
CStringTokenizer sTokMsgOwners( strCCReceiverUsers, _T('|') );
|
|
while ( sTokMsgOwners.Next( strReceiver ) )
|
{
|
if ( strReceiver.IsEmpty() )
|
continue;
|
|
asCCReceivers.Add( strReceiver );
|
}
|
}
|
|
void CMsgItem::GetCCReceiverTypes( CUIntArray &anCCReceiverTypes )
|
{
|
CString strCCReceiverUserTypes;
|
CString strReceiverType;
|
int nReceiver;
|
|
anCCReceiverTypes.RemoveAll( );
|
GetProp( CCRECEIVE_USERTYPES, strCCReceiverUserTypes );
|
CStringTokenizer sTokMsgOwners( strCCReceiverUserTypes, _T('|') );
|
|
while ( sTokMsgOwners.Next( strReceiverType ) )
|
{
|
if ( strReceiverType.IsEmpty() )
|
continue;
|
|
nReceiver = _tstol(strReceiverType);
|
anCCReceiverTypes.Add( nReceiver );
|
}
|
}
|
CString CMsgItem::GetReceiversPro( )
|
{
|
CString strReceivers = _T("");
|
int nCount, nIndex;
|
CMsgOwnerItem itemReceiver;
|
|
if(m_nIsGroupSend)
|
{
|
nCount = m_arMsgOwners.GetSize();
|
for ( nIndex = 0; nIndex < nCount; nIndex++ )
|
{
|
itemReceiver = m_arMsgOwners.GetAt( nIndex );
|
strReceivers += itemReceiver.m_strOwner + _T(";");
|
}
|
|
}
|
else
|
strReceivers = m_strReceivers;
|
return strReceivers;
|
}
|
CString CMsgItem::GetUsersPro( )
|
{
|
CString strUserInfo;
|
CString strReceivers;
|
CString strCCName;
|
// CResourceMgr ResMgr( _T("STKBaseClass.dll") );
|
|
if ( m_strSender.IsEmpty() )
|
return _T( "" );
|
|
strUserInfo += m_strSender;
|
strReceivers = GetReceiversPro();
|
if ( strReceivers.IsEmpty() )
|
return strUserInfo;
|
|
// strCCName.LoadString( IDS_SYS_MAKECOPY );
|
strUserInfo += _T(" => ") + strReceivers;
|
if ( IsHaveCCUser( ) )
|
{
|
strUserInfo += _T(" ") + strCCName;
|
strUserInfo += GetCCReceivers( );
|
}
|
|
return strUserInfo;
|
}
|
|
CString CMsgItem::GetReplyUsers( CString strLogin )
|
{
|
CString strReceivers;
|
int nCount, nIndex;
|
CMsgOwnerItem itemReceiver;
|
CString strUser;
|
|
if(m_nIsGroupSend)
|
{
|
nCount = m_arMsgOwners.GetSize();
|
for ( nIndex = 0; nIndex < nCount; nIndex++ )
|
{
|
itemReceiver = m_arMsgOwners.GetAt( nIndex );
|
strUser = itemReceiver.m_strOwner;
|
|
if ( strUser.CompareNoCase(m_strSender) == 0 || strUser.CompareNoCase(strLogin) == 0 )
|
continue;
|
strReceivers += ( _T( ";" ) + strUser);
|
}
|
if ( m_strSender.CompareNoCase(strLogin) != 0 )
|
strReceivers += ( _T( ";" ) + m_strSender);
|
|
if ( !strReceivers.IsEmpty() )
|
strReceivers.Delete( 0 );
|
}
|
else
|
strReceivers= m_strReceivers;
|
|
return strReceivers;
|
}
|
CString CMsgItem::GetReplyUsers2( CString strLogin )
|
{
|
CString strReceivers;
|
int nCount, nIndex;
|
CMsgOwnerItem itemReceiver;
|
CString strUser;
|
|
if(m_nIsGroupSend)
|
{
|
nCount = m_arMsgOwners.GetSize();
|
for ( nIndex = 0; nIndex < nCount; nIndex++ )
|
{
|
itemReceiver = m_arMsgOwners.GetAt( nIndex );
|
strUser = itemReceiver.m_strOwner;
|
|
if ( strUser.CompareNoCase(m_strSender) == 0 || strUser.CompareNoCase(strLogin) == 0 )
|
continue;
|
strReceivers += ( _T( ";" ) + strUser + _T( "," ) + itemReceiver.m_strOwnerName);
|
}
|
if ( m_strSender.CompareNoCase(strLogin) != 0 )
|
strReceivers += ( _T( ";" ) + m_strSender + _T( "," ) + m_strSenderName);
|
|
if ( !strReceivers.IsEmpty() )
|
strReceivers.Delete( 0 );
|
}
|
else
|
strReceivers= m_strReceivers;
|
|
return strReceivers;
|
}
|
CString CMsgItem::GetReplyUsersPro( CString strLogin )
|
{
|
if ( !IsHaveCCUser( ) )
|
return GetReplyUsers( strLogin );
|
|
CStringArray asCCReceivers;
|
CString strReceivers;
|
int nCount, nIndex;
|
CMsgOwnerItem itemReceiver;
|
|
GetCCReceivers( asCCReceivers );
|
if ( CMBAMDBFun::FindStringInArray( m_strSender, asCCReceivers ) < 0 )
|
strReceivers += ( _T( ";" ) + m_strSender );
|
|
if(m_nIsGroupSend)
|
{
|
nCount = m_arMsgOwners.GetSize();
|
for ( nIndex = 0; nIndex < nCount; nIndex++ )
|
{
|
itemReceiver = m_arMsgOwners.GetAt( nIndex );
|
if ( CMBAMDBFun::FindStringInArray( itemReceiver.m_strOwner, asCCReceivers ) >= 0 )
|
continue;
|
if ( itemReceiver.m_strOwner.CompareNoCase( m_strSender ) == 0 )
|
continue;
|
if ( itemReceiver.m_strOwner.CompareNoCase( strLogin ) == 0 )
|
continue;
|
|
strReceivers += ( _T( ";" ) + itemReceiver.m_strOwner );
|
}
|
strReceivers += ( _T( ";" ) + m_strSender);
|
if ( !strReceivers.IsEmpty() )
|
strReceivers.Delete( 0 );
|
}
|
else
|
strReceivers += _T( ";" ) + m_strReceivers;
|
|
|
return strReceivers;
|
}
|
|
CString CMsgItem::GetReplyCCUsers( CString strLogin )
|
{
|
if ( !IsHaveCCUser( ) )
|
return _T("");
|
|
CString strCCReceiverUsers;
|
CString strCCReceivers, strReceiver;
|
|
GetProp( CCRECEIVE_USERS, strCCReceiverUsers );
|
CStringTokenizer sTokMsgOwners( strCCReceiverUsers, _T('|') );
|
|
while ( sTokMsgOwners.Next( strReceiver ) )
|
{
|
if ( strReceiver.IsEmpty() )
|
continue;
|
if ( strReceiver.CompareNoCase( strLogin ) == 0 )
|
continue;
|
|
if ( !strCCReceivers.IsEmpty() )
|
strCCReceivers += _T(";");
|
|
strCCReceivers += strReceiver;
|
}
|
|
return strCCReceivers;
|
}
|
|
CString CMsgItem::GetReceivers()
|
{
|
CString strReceivers;
|
int nCount, nIndex;
|
CMsgOwnerItem itemReceiver;
|
|
if(m_nIsGroupSend)
|
{
|
nCount = m_arMsgOwners.GetSize();
|
for ( nIndex = 0; nIndex < nCount; nIndex++ )
|
{
|
itemReceiver = m_arMsgOwners.GetAt( nIndex );
|
strReceivers += ( _T( ";" ) + itemReceiver.m_strOwner );
|
}
|
if ( !strReceivers.IsEmpty() )
|
strReceivers.Delete( 0 );
|
}
|
else
|
strReceivers = m_strReceivers;
|
|
return strReceivers;
|
}
|
CString CMsgItem::GetReceiverTypes()
|
{
|
CString strReceiverTypes;
|
CString strTempReceiver;
|
int nCount, nIndex;
|
CMsgOwnerItem itemReceiver;
|
|
if(m_nIsGroupSend)
|
{
|
nCount = m_arMsgOwners.GetSize();
|
for ( nIndex = 0; nIndex < nCount; nIndex++ )
|
{
|
itemReceiver = m_arMsgOwners.GetAt( nIndex );
|
strTempReceiver.Format(_T("%d"),itemReceiver.m_nOwnerType);
|
strReceiverTypes += ( _T( ";" ) + strTempReceiver );
|
}
|
if ( !strReceiverTypes.IsEmpty() )
|
strReceiverTypes.Delete( 0 );
|
}
|
else
|
strReceiverTypes = _T("0");
|
|
return strReceiverTypes;
|
}
|
|
CString CMsgItem::GetReceiversName()
|
{
|
CString strReceivers;
|
int nCount, nIndex;
|
CMsgOwnerItem itemReceiver;
|
|
if(m_nIsGroupSend)
|
{
|
nCount = m_arMsgOwners.GetSize();
|
for ( nIndex = 0; nIndex < nCount; nIndex++ )
|
{
|
itemReceiver = m_arMsgOwners.GetAt( nIndex );
|
if ( itemReceiver.m_strOwnerName.IsEmpty() )
|
itemReceiver.m_strOwnerName = itemReceiver.m_strOwner;
|
|
strReceivers += ( _T( ";" ) + itemReceiver.m_strOwnerName );
|
}
|
if ( !strReceivers.IsEmpty() )
|
strReceivers.Delete( 0 );
|
}
|
else
|
{
|
strReceivers = m_strReceiverNames;
|
if ( strReceivers.IsEmpty() )
|
strReceivers = m_strReceivers;
|
}
|
return strReceivers;
|
}
|
CString CMsgItem::GetOnlyReceiversName()
|
{
|
CString strReceivers;
|
int nCount, nIndex;
|
CMsgOwnerItem itemReceiver;
|
|
if(m_nIsGroupSend)
|
{
|
GetProp( RECEIVE_USERNAMES, strReceivers );
|
if(strReceivers.IsEmpty())
|
{
|
CString strCCReceivers = _T("");
|
CString strCCReceiverTypes = _T("");
|
CString strReceiver;
|
CStringArray asCCReceivers;
|
CUIntArray anCCReceiverTypes;
|
GetProp( CCRECEIVE_USERS, strCCReceivers );
|
GetProp( CCRECEIVE_USERTYPES, strCCReceiverTypes );
|
|
asCCReceivers.RemoveAll( );
|
CStringTokenizer sTokMsgOwners( strCCReceivers, _T('|') );
|
while ( sTokMsgOwners.Next( strReceiver ) )
|
{
|
if ( strReceiver.IsEmpty() )
|
continue;
|
|
asCCReceivers.Add( strReceiver );
|
}
|
CString strReceiverType;
|
int nReceiver;
|
int nFind;
|
|
anCCReceiverTypes.RemoveAll( );
|
CStringTokenizer sTokMsgOwners2( strCCReceiverTypes, _T('|') );
|
while ( sTokMsgOwners2.Next( strReceiverType ) )
|
{
|
if ( strReceiverType.IsEmpty() )
|
continue;
|
nReceiver = _tstol(strReceiverType);
|
anCCReceiverTypes.Add( nReceiver );
|
}
|
nCount = m_arMsgOwners.GetSize();
|
for ( nIndex = 0; nIndex < nCount; nIndex++ )
|
{
|
itemReceiver = m_arMsgOwners.GetAt( nIndex );
|
if ( itemReceiver.m_strOwnerName.IsEmpty() )
|
itemReceiver.m_strOwnerName = itemReceiver.m_strOwner;
|
nFind = -1;
|
for ( int nNum = 0; nNum < asCCReceivers.GetCount(); nNum++ )
|
{
|
strReceiver = asCCReceivers.GetAt(nNum);
|
if(nNum < anCCReceiverTypes.GetCount())
|
nReceiver = anCCReceiverTypes.GetAt(nNum);
|
else
|
nReceiver = 0;
|
if(strReceiver.CompareNoCase(itemReceiver.m_strOwner) ==0 && nReceiver == itemReceiver.m_nOwnerType)
|
{
|
nFind = nNum;
|
break;
|
}
|
}
|
if(nFind < 0)
|
strReceivers += ( _T( ";" ) + itemReceiver.m_strOwnerName );
|
}
|
if ( !strReceivers.IsEmpty() )
|
strReceivers.Delete( 0 );
|
}
|
}
|
else
|
{
|
strReceivers = m_strReceiverNames;
|
if ( strReceivers.IsEmpty() )
|
strReceivers = m_strReceivers;
|
}
|
return strReceivers;
|
}
|
CString CMsgItem::FormatReceiversName()
|
{
|
CString strReceivers;
|
int nCount;
|
CMsgOwnerItem itemReceiver;
|
|
if(m_nIsGroupSend)
|
{
|
nCount = m_arMsgOwners.GetSize();
|
if ( nCount == 0 )
|
return _T( "" );
|
|
itemReceiver = m_arMsgOwners.GetAt( 0 );
|
strReceivers = itemReceiver.m_strOwnerName;
|
if ( nCount > 1 )
|
strReceivers += _T( ";..." );
|
}
|
else
|
strReceivers = m_strReceiverNames;
|
return strReceivers;
|
}
|
|
int CMsgItem::AddData( CString strName, CString strValue )
|
{
|
if ( strName.IsEmpty() )
|
return -1;
|
|
int nIndex;
|
|
nIndex = FindData( strName );
|
if ( -1 == nIndex )
|
{
|
nIndex = m_asResertName.Add( strName );
|
m_asResertData.Add( strValue );
|
}
|
else
|
{
|
m_asResertData.SetAt( nIndex, strValue );
|
}
|
|
return nIndex;
|
}
|
|
BOOL CMsgItem::GetData( CString strName, CString &strValue )
|
{
|
strValue.Empty();
|
if ( strName.IsEmpty() )
|
return false;
|
|
int nIndex;
|
|
nIndex = FindData( strName );
|
if ( -1 == nIndex )
|
return false;
|
|
strValue = m_asResertData.GetAt( nIndex );
|
return true;
|
}
|
|
int CMsgItem::FindData( CString strName )
|
{
|
if ( strName.IsEmpty() )
|
return -1;
|
|
int nCount, nIndex;
|
|
nCount = m_asResertName.GetSize();
|
for ( nIndex = 0; nIndex < nCount; nIndex++ )
|
{
|
if ( m_asResertName.GetAt( nIndex ).CompareNoCase( strName ) == 0 )
|
return nIndex;
|
}
|
|
return -1;
|
}
|
int CMsgItem::FindAttachment( CString strFileID )
|
{
|
if ( strFileID.IsEmpty() )
|
return -1;
|
|
int nCount, nIndex;
|
CMsgAttachmentItem itemMsgAttachment;
|
nCount = m_arMsgAttachments.GetSize();
|
for ( nIndex = 0; nIndex < nCount; nIndex++ )
|
{
|
itemMsgAttachment = m_arMsgAttachments.GetAt( nIndex );
|
if ( itemMsgAttachment.m_strFileID.CompareNoCase( strFileID ) == 0 )
|
return nIndex;
|
}
|
|
return -1;
|
}
|
|
CMsgs::CMsgs(CMBAMDBConnect *pAConnect)
|
{
|
m_pAConnect = pAConnect;
|
|
InitFilter();
|
}
|
|
CMsgs::~CMsgs()
|
{
|
}
|
|
|
// CMsg member functions
|
void CMsgs::operator =( const CMsgs& item )
|
{
|
m_nListMsgType = item.m_nListMsgType;
|
m_tmStartDate = item.m_tmStartDate;
|
m_tmEndDate = item.m_tmEndDate;
|
m_nReaded = item.m_nReaded; // "-1"±íʾ²»Ö¸¶¨Õâ¸ö¹ýÂËÌõ¼þ
|
|
m_pAConnect = item.m_pAConnect;
|
m_strSQL = item.m_strSQL;
|
|
m_nRowType = item.m_nRowType;
|
|
m_strID = item.m_strID;
|
m_strSourceID = item.m_strSourceID;
|
m_strSubject = item.m_strSubject;
|
m_strSender = item.m_strSender;
|
m_strSenderName = item.m_strSenderName;
|
|
m_tmDate = item.m_tmDate;
|
m_nType = item.m_nType;
|
m_nMsgFolder = item.m_nMsgFolder;
|
m_strFolderName = item.m_strFolderName;
|
m_nNeedConfirm = item.m_nNeedConfirm;
|
|
m_strMsgExtType = item.m_strMsgExtType;
|
m_nReadState = item.m_nReadState;
|
m_nAttachCount = item.m_nAttachCount;
|
|
m_strAttitudeset = item.m_strAttitudeset;
|
m_nMsgFlag = item.m_nMsgFlag;
|
|
m_strContentType = item.m_strContentType;
|
m_strContent = item.m_strContent;
|
m_nContentSize = item.m_nContentSize;
|
m_strAppType = item.m_strAppType;
|
m_nIsGroupSend = item.m_nIsGroupSend;
|
m_strReceivers = item.m_strReceivers;
|
m_strReceiverNames = item.m_strReceiverNames;
|
m_tmOpenDate = item.m_tmOpenDate;
|
m_strReceiverAttitude = item.m_strReceiverAttitude;
|
m_arMsgOwners.Copy( item.m_arMsgOwners );
|
m_arMsgAttachments.Copy( item.m_arMsgAttachments );
|
m_arMsgPropertys.Copy( item.m_arMsgPropertys );
|
m_bDownLoaded = item.m_bDownLoaded;
|
}
|
|
|
void CMsgs::InitMsgData( )
|
{
|
Clear( );
|
}
|
|
bool CMsgs::GetData( )
|
{
|
InitMsgData( );
|
|
if ( m_nListMsgType == LISTMSG_TYPE_SIMPLE )
|
{
|
GetMsgDataSimple( );
|
if( m_nIsGroupSend )
|
{
|
|
GetMsgOwnerDataSimple( );
|
if(m_arMsgOwners.GetCount() < 1 && m_nReadState > 0)
|
{
|
CMsgOwnerItem msgOwner;
|
CString strUsers;
|
CString strUsersName;
|
CString strUser;
|
CString strUserName;
|
strUsers = m_strReceivers;
|
strUsersName = m_strReceiverNames;
|
while(CMBAMDBFun::GetElementItem( strUsers, strUser, _T(";") ))
|
{
|
CMBAMDBFun::GetElementItem( strUsersName, strUserName, _T(";") );
|
if( !strUser.IsEmpty())
|
{
|
msgOwner.m_strMsgID = m_strID;
|
msgOwner.m_strOwner = strUser;
|
if(strUserName.IsEmpty())
|
msgOwner.m_strOwnerName = strUser;
|
else
|
msgOwner.m_strOwnerName = strUserName;
|
m_arMsgOwners.Add(msgOwner);
|
}
|
}
|
}
|
}
|
GetMsgPropertyData( );
|
}
|
else if ( m_nListMsgType == LISTMSG_TYPE_CHAT )
|
{
|
GetMsgChatData( );
|
GetMsgAttachmentData( );
|
GetMsgPropertyData( );
|
}
|
else if ( m_nListMsgType == LISTMSG_TYPE_MAGADMIN )
|
{
|
GetMsgAdminData();
|
return true;
|
}
|
else
|
{
|
GetMsgData( );
|
if( m_nIsGroupSend )
|
{
|
GetMsgOwnerData( );
|
if(m_arMsgOwners.GetCount() < 1 && m_nReadState > 0)
|
{
|
CMsgOwnerItem msgOwner;
|
CString strUsers;
|
CString strUsersName;
|
CString strUser;
|
CString strUserName;
|
strUsers = m_strReceivers;
|
strUsersName = m_strReceiverNames;
|
while(CMBAMDBFun::GetElementItem( strUsers, strUser, _T(";") ))
|
{
|
CMBAMDBFun::GetElementItem( strUsersName, strUserName, _T(";") );
|
if( !strUser.IsEmpty())
|
{
|
msgOwner.m_strMsgID = m_strID;
|
msgOwner.m_strOwner = strUser;
|
if(strUserName.IsEmpty())
|
msgOwner.m_strOwnerName = strUser;
|
else
|
msgOwner.m_strOwnerName = strUserName;
|
m_arMsgOwners.Add(msgOwner);
|
}
|
}
|
}
|
}
|
GetMsgAttachmentData( );
|
GetMsgPropertyData( );
|
}
|
return true;
|
}
|
|
bool CMsgs::GetMsgDataSimple( )
|
{
|
CString strFieldName;
|
CString strTempValue;
|
if( !m_pAConnect || !m_pAConnect->IsOpenDB())
|
return 0;
|
CDBRecord ARecordset;
|
CString strSQL;
|
|
|
try
|
{
|
m_ARecordSet.GetValue( 1, strTempValue, true );
|
m_strID = strTempValue;
|
strSQL.Format( _T("SELECT S_C3, S_C4, S_C5, T_C6,N_C7,N_C8,C_C9,S_C10,N_C11,N_C12,C_C17 ,S_C18,S_C19 \
|
FROM TN_STK_MSG WHERE G_C1 = '%s'"), m_strID );
|
ARecordset.Open( m_pAConnect->GetDBConnect(), strSQL );
|
while ( S_OK == ARecordset.MoveNext() )
|
{
|
ARecordset.GetValue( 1, strTempValue, true );
|
m_strSubject = strTempValue;
|
|
ARecordset.GetValue( 2, strTempValue, true );
|
m_strSender = strTempValue;
|
|
ARecordset.GetValue( 3, strTempValue, true );
|
m_strSenderName = strTempValue;
|
|
ARecordset.GetValue( 4, m_tmDate);
|
|
ARecordset.GetValue( 5, m_nType );
|
|
ARecordset.GetValue( 6, m_nMsgFolder );
|
|
ARecordset.GetValue( 7, m_nNeedConfirm );
|
|
ARecordset.GetValue( 8, strTempValue, true );
|
m_strMsgExtType = strTempValue;
|
|
ARecordset.GetValue( 9, m_nReadState );
|
ARecordset.GetValue( 10, m_nAttachCount );
|
ARecordset.GetValue( 11, m_nIsGroupSend );
|
|
ARecordset.GetValue( 12, strTempValue, true );
|
m_strReceivers = (LPCTSTR)strTempValue;
|
ARecordset.GetValue( 13, strTempValue, true );
|
m_strReceiverNames = (LPCTSTR)strTempValue;
|
break;
|
}
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError;
|
|
strError = (LPCTSTR)ex.GetErrInfo( );
|
return false;
|
}
|
return true;
|
}
|
|
bool CMsgs::GetMsgOwnerDataSimple( )
|
{
|
CDBRecord ARecordset;
|
CString strSQL;
|
CString strTempValue;
|
CMsgOwnerItem msgOwner;
|
int nTempValue;
|
|
m_arMsgOwners.RemoveAll( );
|
strSQL.Format( _T("SELECT S_C2, S_C3, T_C4 ,N_C6 FROM \
|
TN_STK_MSGOWNER WHERE G_C1 = '%s'"), m_strID );
|
if( !m_pAConnect || !m_pAConnect->IsOpenDB())
|
return 0;
|
try
|
{
|
ARecordset.Open( m_pAConnect->GetDBConnect(),strSQL );
|
while ( S_OK == ARecordset.MoveNext() )
|
{
|
ARecordset.GetValue( 1, strTempValue, true );
|
msgOwner.m_strOwner = (LPCTSTR)strTempValue;
|
|
ARecordset.GetValue( 2, strTempValue, true );
|
msgOwner.m_strOwnerName = (LPCTSTR)strTempValue;
|
|
ARecordset.GetValue( 3, msgOwner.m_tmOpenDate );
|
nTempValue = 0;
|
ARecordset.GetValue( 4, nTempValue );
|
msgOwner.m_nOwnerType = nTempValue;
|
|
msgOwner.m_strMsgID = m_strID;
|
|
m_arMsgOwners.Add( msgOwner );
|
}
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError;
|
|
strError = (LPCTSTR)ex.GetErrInfo( );
|
return false;
|
}
|
|
return true;
|
}
|
|
bool CMsgs::GetMsgChatData( )
|
{
|
CString strFieldName;
|
CString strTempValue;
|
CMsgOwnerItem msgOwner;
|
|
if( !m_pAConnect || !m_pAConnect->IsOpenDB())
|
return 0;
|
CDBRecord ARecordset;
|
CString strSQL;
|
try
|
{
|
m_ARecordSet.GetValue( 1, strTempValue, true );
|
m_strID = strTempValue;
|
strSQL.Format( _T("SELECT S_C3, S_C4, S_C5, T_C6,N_C7,N_C12,N_C14,S_C22,N_C23 ,S_C24\
|
FROM TN_STK_MSG WHERE G_C1 = '%s'"), m_strID );
|
ARecordset.Open( m_pAConnect->GetDBConnect(), strSQL );
|
while ( S_OK == ARecordset.MoveNext() )
|
{
|
ARecordset.GetValue( 1, strTempValue, true );
|
m_strSubject = (LPCTSTR)strTempValue;
|
|
ARecordset.GetValue( 2, strTempValue, true );
|
m_strSender = (LPCTSTR)strTempValue;
|
|
ARecordset.GetValue( 3, strTempValue, true );
|
m_strSenderName = (LPCTSTR)strTempValue;
|
|
ARecordset.GetValue( 4, m_tmDate );
|
ARecordset.GetValue( 5, m_nType );
|
ARecordset.GetValue( 6, m_nAttachCount );
|
ARecordset.GetValue( 7, m_nPropertyCount );
|
ARecordset.GetValue( 8, m_strContentType );
|
ARecordset.GetValue( 9, m_nContentSize );
|
ARecordset.GetValue( 10, m_strContent );
|
|
break;
|
}
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError;
|
|
strError = (LPCTSTR)ex.GetErrInfo( );
|
return false;
|
}
|
|
return true;
|
}
|
bool CMsgs::GetMsgData( )
|
{
|
CString strFieldName;
|
CString strTempValue;
|
CMsgOwnerItem msgOwner;
|
|
try
|
{
|
m_ARecordSet.GetValue( 1, strTempValue, true );
|
m_strID = (LPCTSTR)strTempValue;
|
|
m_ARecordSet.GetValue( 2, strTempValue, true );
|
m_strSourceID = (LPCTSTR)strTempValue;
|
if ( m_strSourceID == GUID_EMPTY )
|
m_strSourceID = _T("");
|
|
m_ARecordSet.GetValue( 3, strTempValue, true );
|
m_strSubject = (LPCTSTR)strTempValue;
|
|
m_ARecordSet.GetValue( 4, strTempValue, true );
|
m_strSender = (LPCTSTR)strTempValue;
|
|
m_ARecordSet.GetValue( 5, strTempValue, true );
|
m_strSenderName = (LPCTSTR)strTempValue;
|
|
m_ARecordSet.GetValue( 6, m_tmDate );
|
|
|
m_ARecordSet.GetValue( 7, m_nType );
|
m_ARecordSet.GetValue( 8, m_nMsgFolder );
|
|
m_ARecordSet.GetValue( 9, m_nNeedConfirm );
|
m_ARecordSet.GetValue( 10, strTempValue, true );
|
m_strMsgExtType = (LPCTSTR)strTempValue;
|
|
m_ARecordSet.GetValue( 11, m_nReadState );
|
|
m_ARecordSet.GetValue( 12, m_nAttachCount );
|
m_ARecordSet.GetValue( 13, m_nMsgFlag );
|
m_ARecordSet.GetValue( 14, m_nPropertyCount );
|
m_ARecordSet.GetValue( 15, strTempValue, true );
|
m_strAttitudeset = (LPCTSTR)strTempValue;
|
m_ARecordSet.GetValue( 16, strTempValue, true );
|
m_strAppType = (LPCTSTR)strTempValue;
|
m_ARecordSet.GetValue( 17, m_nIsGroupSend );
|
m_ARecordSet.GetValue( 18, strTempValue, true );
|
m_strReceivers = (LPCTSTR)strTempValue;
|
m_ARecordSet.GetValue( 19, strTempValue, true );
|
m_strReceiverNames = (LPCTSTR)strTempValue;
|
m_ARecordSet.GetValue( 20, m_tmOpenDate );
|
m_ARecordSet.GetValue( 21, strTempValue, true );
|
m_strReceiverAttitude = (LPCTSTR)strTempValue;
|
m_ARecordSet.GetValue( 22, m_strContentType );
|
m_ARecordSet.GetValue( 23, m_nContentSize );
|
m_ARecordSet.GetValue( 24, m_strContent );
|
m_ARecordSet.GetValue( 25, m_strContentText );
|
|
if(m_nReadState & MSG_READSTATE_DOWNLOAD )
|
m_bDownLoaded = true;
|
else
|
m_bDownLoaded = false;
|
// m_ARecordSet.GetValue( 18, m_nCharset ); // 2010/05/19 ²»ÐèÒª»ñÈ¡ CN_CHARSET ×Ö¶Î
|
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError;
|
|
strError = (LPCTSTR)ex.GetErrInfo( );
|
return false;
|
}
|
|
return true;
|
}
|
bool CMsgs::GetMsgAdminData( )
|
{
|
if( !m_pAConnect || !m_pAConnect->IsOpenDB())
|
return 0;
|
CDBRecord ARecordset;
|
CString strTempValue;
|
try
|
{
|
m_ARecordSet.GetValue( 1, strTempValue, true );
|
m_strID = strTempValue;
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError;
|
|
strError = (LPCTSTR)ex.GetErrInfo();
|
return false;
|
}
|
|
return true;
|
}
|
bool CMsgs::GetMsgOwnerData( )
|
{
|
CDBRecord ARecordset;
|
CString strSQL;
|
CString strTempValue;
|
CMsgOwnerItem msgOwner;
|
int nTempValue;
|
|
m_arMsgOwners.RemoveAll( );
|
strSQL.Format( _T("SELECT S_C2, S_C3, T_C4, S_C5,N_C6 FROM \
|
TN_STK_MSGOWNER WHERE G_C1 = '%s'"), m_strID );
|
if( !m_pAConnect || !m_pAConnect->IsOpenDB())
|
return 0;
|
try
|
{
|
ARecordset.Open( m_pAConnect->GetDBConnect(), strSQL );
|
while ( S_OK == ARecordset.MoveNext() )
|
{
|
ARecordset.GetValue( 1, strTempValue, true );
|
msgOwner.m_strOwner = (LPCTSTR)strTempValue;
|
|
ARecordset.GetValue( 2, strTempValue, true );
|
msgOwner.m_strOwnerName = (LPCTSTR)strTempValue;
|
|
ARecordset.GetValue( 3, msgOwner.m_tmOpenDate );
|
|
ARecordset.GetValue( 4, strTempValue, true );
|
msgOwner.m_strAttitude = (LPCTSTR)strTempValue;
|
|
nTempValue = 0;
|
ARecordset.GetValue( 5, nTempValue );
|
msgOwner.m_nOwnerType = nTempValue;
|
|
msgOwner.m_strMsgID = m_strID;
|
m_arMsgOwners.Add( msgOwner );
|
|
}
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError;
|
|
strError = (LPCTSTR)ex.GetErrInfo();
|
return false;
|
}
|
|
return true;
|
}
|
|
bool CMsgs::GetMsgAttachmentData( )
|
{
|
m_arMsgAttachments.RemoveAll( );
|
if ( m_nAttachCount == 0 )
|
return true;
|
if( !m_pAConnect || !m_pAConnect->IsOpenDB())
|
return 0;
|
CDBRecord ARecordset;
|
CString strSQL;
|
CString strTempValue;
|
CMsgAttachmentItem msgAttachment;
|
|
strSQL.Format( _T("SELECT S_C2, N_C3, S_C8, G_C5, S_C6,N_C7 \
|
FROM TN_STK_ATTACHMENT WHERE G_C1 = '%s'"), m_strID );
|
try
|
{
|
ARecordset.Open( m_pAConnect->GetDBConnect(), strSQL );
|
while ( S_OK == ARecordset.MoveNext() )
|
{
|
msgAttachment.m_strMsgID = m_strID;
|
ARecordset.GetValue( 1, strTempValue, true );
|
msgAttachment.m_strFileName = (LPCTSTR)strTempValue;
|
if( msgAttachment.m_strFileName.Right(1) == _T("\\") )
|
{
|
msgAttachment.m_strFileName.TrimRight(_T("\\"));
|
if(msgAttachment.m_strFileName.IsEmpty())
|
msgAttachment.m_strFileName = _T("AMTempFolder\\");
|
else
|
msgAttachment.m_strFileName += _T("\\");
|
}
|
else
|
{
|
if(msgAttachment.m_strFileName.IsEmpty())
|
msgAttachment.m_strFileName = _T("AMTempFile");
|
}
|
strTempValue = _T("");
|
|
msgAttachment.m_nFileSize = 0;
|
ARecordset.GetValue( 2, msgAttachment.m_nFileSize );
|
|
ARecordset.GetValue( 3, strTempValue, true );
|
msgAttachment.m_strFilePath = (LPCTSTR)strTempValue;
|
strTempValue = _T("");
|
|
ARecordset.GetValue( 4, strTempValue, true );
|
msgAttachment.m_strFileID = (LPCTSTR)strTempValue;
|
strTempValue = _T("");
|
|
ARecordset.GetValue( 5, strTempValue, true );
|
msgAttachment.m_strFileSFlag = (LPCTSTR)strTempValue;
|
strTempValue = _T("");
|
|
ARecordset.GetValue( 6, msgAttachment.m_nFileEnType );
|
m_arMsgAttachments.Add( msgAttachment );
|
msgAttachment.Clear( );
|
}
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError;
|
|
strError = (LPCTSTR)ex.GetErrInfo( );
|
return false;
|
}
|
|
return true;
|
}
|
|
bool CMsgs::GetMsgPropertyData( )
|
{
|
CDBRecord ARecordset;
|
CString strSQL;
|
CString strTempValue;
|
CMsgPropertyItem msgProperty;
|
|
m_arMsgPropertys.RemoveAll( );
|
if ( m_nPropertyCount == 0 )
|
return true;
|
if( !m_pAConnect || !m_pAConnect->IsOpenDB())
|
return 0;
|
strSQL.Format( _T("SELECT S_C2, S_C3 FROM \
|
TN_STK_MSGPROPERTY WHERE G_C1 = '%s'"), m_strID );
|
|
try
|
{
|
ARecordset.Open( m_pAConnect->GetDBConnect(), strSQL);
|
while ( S_OK == ARecordset.MoveNext() )
|
{
|
ARecordset.GetValue( 1, strTempValue, true );
|
msgProperty.m_strName = (LPCTSTR)strTempValue;
|
ARecordset.GetValue( 2, strTempValue, true );
|
msgProperty.m_strValue = (LPCTSTR)strTempValue;
|
|
msgProperty.m_strMsgID = m_strID;
|
m_arMsgPropertys.Add( msgProperty );
|
|
}
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError;
|
|
strError = (LPCTSTR)ex.GetErrInfo( );
|
return false;
|
}
|
|
return true;
|
}
|
|
void CMsgs::InitFilter()
|
{
|
// ³õʼ»¯¹ýÂËÆ÷ʹȥ³ý¹ýÂË
|
m_tmStartDate = COleDateTime( 1970, 1, 1, 0, 0, 0 );
|
m_tmEndDate = COleDateTime( 1970, 1, 1, 0, 0, 0 );
|
|
m_nReaded = -1; // "-1"±íʾ²»Ö¸¶¨Õâ¸ö¹ýÂËÌõ¼þ
|
m_nListMsgType = LISTMSG_TYPE_NONE;
|
}
|
|
int CMsgs::ListSpMsgID( LPCTSTR lpszMsgID )
|
{ // ʹÓÃÕâ¸öº¯Êý£¬¹ýÂËÌõ¼þÎÞЧ
|
if ( lpszMsgID == NULL )
|
return 0;
|
|
CString strSQL;
|
int nCount;
|
|
strSQL.Format( _T("SELECT G_C1,G_C2 ,S_C3,S_C4,S_C5 ,T_C6,N_C7,N_C8,C_C9,S_C10,\
|
N_C11,N_C12,N_C13,N_C14 ,N_C15,S_C16,C_C17 ,S_C18,S_C19,T_C20,\
|
S_C21,S_C22,N_C23,S_C24,S_C25 FROM TN_STK_MSG WHERE G_C1 = '%s'"), lpszMsgID);
|
m_strSQL = strSQL;
|
if( !m_pAConnect || !m_pAConnect->IsOpenDB())
|
return 0;
|
try
|
{
|
m_ARecordSet.Close( );
|
m_ARecordSet.Open(m_pAConnect->GetDBConnect(), strSQL );
|
m_ARecordSet.MoveFirst();
|
nCount = m_ARecordSet.GetRecordCount( );
|
m_strID = lpszMsgID;
|
}
|
catch( CDBSQliteException ex )
|
{
|
CString strError;
|
|
strError = (LPCTSTR)ex.GetErrInfo( );
|
|
return 0;
|
}
|
|
return nCount;
|
}
|
int CMsgs::ListTalking3( CString strLogin,CString strUser2,long nLimitCount, BOOL bTimeAsc)
|
{ // ʹÓÃÕâ¸öº¯Êým_nReadedÎÞЧ
|
CString strSQL;
|
CString strStartDate;
|
CString strEndDate;
|
CString strSQLTempM;
|
int nCount;
|
CString strSort;
|
CDBRecord ARecordSet;
|
|
strLogin.MakeLower();
|
strUser2.MakeLower();
|
if ( m_tmStartDate.GetYear() > 1970 || m_tmEndDate.GetYear() > 1970 )
|
{
|
if ( m_tmEndDate.GetYear() == 1970 )
|
m_tmEndDate = COleDateTime::GetCurrentTime( );
|
|
strStartDate = CMBAMDBFun::FormatDBTIMEToStr( m_tmStartDate );
|
strEndDate = CMBAMDBFun::FormatDBTIMEToStr( m_tmEndDate );
|
|
strSQLTempM.Format( _T(" AND m.T_C6 >= '%s' AND m.T_C6 <= '%s'"), strStartDate, strEndDate );
|
}
|
CString strLimitSQL = _T("");
|
if(nLimitCount > 0)
|
strLimitSQL.Format( _T("limit 0,%d"), nLimitCount);
|
if(strLogin == strUser2)
|
{
|
strSQL.Format( _T("SELECT m.G_C1, m.T_C6 \
|
FROM TN_STK_MSG m WHERE \
|
(m.S_C4 = '%s' AND m.S_C18 = '%s') AND (m.N_C11>2 AND m.N_C11<>64) %s AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) \
|
ORDER BY m.T_C6 DESC %s"),strLogin,strUser2, strSQLTempM,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST,strLimitSQL );
|
}
|
else
|
{
|
strSQL.Format( _T("SELECT m.G_C1, m.T_C6 \
|
FROM TN_STK_MSG m WHERE \
|
( (m.S_C4 = '%s' AND m.S_C18 = '%s') \
|
OR ( m.S_C4 = '%s' AND m.S_C18 = '%s') ) AND (m.N_C11>2 AND m.N_C11<>64) %s AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) \
|
ORDER BY m.T_C6 DESC %s"),strLogin,strUser2,strUser2,strLogin, strSQLTempM,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST,strLimitSQL );
|
}
|
if(bTimeAsc)
|
{
|
CString strSQLTemp2 = strSQL;
|
strSQL.Format( _T("SELECT ST.G_C1,ST.T_C6 \
|
FROM (%s)ST ORDER BY ST.T_C6 ASC"), strSQLTemp2);
|
}
|
m_strSQL = strSQL;
|
m_nListMsgType = LISTMSG_TYPE_CHAT;
|
if( !m_pAConnect || !m_pAConnect->IsOpenDB())
|
return 0;
|
try
|
{
|
nCount = ListRecordCount();
|
m_ARecordSet.Close( );
|
m_ARecordSet.Open( m_pAConnect->GetDBConnect(), strSQL );
|
}
|
catch( CDBSQliteException ex )
|
{
|
CString strError;
|
|
strError = (LPCTSTR)ex.GetErrInfo( );
|
|
return 0;
|
}
|
return nCount;
|
}
|
int CMsgs::ListTalking2( CString strLogin,CString strUser2,long nLimitCount, BOOL bTimeAsc)
|
{ // ʹÓÃÕâ¸öº¯Êým_nReadedÎÞЧ
|
CString strSQL;
|
CString strStartDate;
|
CString strEndDate;
|
CString strSQLTempM;
|
int nCount;
|
CString strSort;
|
CString strSQLTemp2 = _T("");
|
CDBRecord ARecordSet;
|
|
strLogin.MakeLower();
|
strUser2.MakeLower();
|
if ( m_tmStartDate.GetYear() > 1970 || m_tmEndDate.GetYear() > 1970 )
|
{
|
if ( m_tmEndDate.GetYear() == 1970 )
|
m_tmEndDate = COleDateTime::GetCurrentTime( );
|
|
strStartDate = CMBAMDBFun::FormatDBTIMEToStr( m_tmStartDate );
|
strEndDate = CMBAMDBFun::FormatDBTIMEToStr( m_tmEndDate );
|
|
strSQLTempM.Format( _T(" AND m.T_C6 >= '%s' AND m.T_C6 <= '%s'"), strStartDate, strEndDate );
|
}
|
//strSQLTemp2.Format( _T(" AND m.S_C22 IN('%s','%s','%s')"), CONTYPE_TEXT_TEXT, CONTYPE_TEXT_XML, CONTYPE_TEXT_PLAIN );
|
strSQLTemp2 = _T("");
|
CString strLimitSQL = _T("");
|
if(nLimitCount > 0)
|
strLimitSQL.Format( _T("limit 0,%d"), nLimitCount);
|
if(strLogin == strUser2)
|
{
|
strSQL.Format( _T("SELECT m.G_C1, m.T_C6 \
|
FROM TN_STK_MSG m WHERE \
|
(m.S_C4 = '%s' AND m.S_C18 = '%s') AND (m.N_C11>2 AND m.N_C11<>64) AND m.C_C17='0' %s %s AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) \
|
ORDER BY m.T_C6 DESC %s"),strLogin,strUser2,strSQLTemp2, strSQLTempM,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST,strLimitSQL );
|
}
|
else
|
{
|
strSQL.Format( _T("SELECT m.G_C1, m.T_C6 \
|
FROM TN_STK_MSG m WHERE \
|
( (m.S_C4 = '%s' AND m.S_C18 = '%s') \
|
OR ( m.S_C4 = '%s' AND m.S_C18 = '%s') ) AND (m.N_C11>2 AND m.N_C11<>64) AND m.C_C17='0' %s %s AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) \
|
ORDER BY m.T_C6 DESC %s"),strLogin,strUser2,strUser2,strLogin, strSQLTemp2, strSQLTempM,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST,strLimitSQL );
|
}
|
if(bTimeAsc)
|
{
|
strSQLTemp2 = strSQL;
|
strSQL.Format( _T("SELECT ST.G_C1,ST.T_C6 \
|
FROM (%s)ST ORDER BY ST.T_C6 ASC"), strSQLTemp2);
|
}
|
m_strSQL = strSQL;
|
m_nListMsgType = LISTMSG_TYPE_CHAT;
|
if( !m_pAConnect || !m_pAConnect->IsOpenDB())
|
return 0;
|
try
|
{
|
nCount = ListRecordCount();
|
// CMBAMDBFun::WriteDBErrToFile(_T("ListTalking2 1"));
|
m_ARecordSet.Close( );
|
m_ARecordSet.Open( m_pAConnect->GetDBConnect(), strSQL );
|
//CMBAMDBFun::WriteDBErrToFile(_T("ListTalking2 3"));
|
//m_ARecordSet.MoveFirst();
|
// CMBAMDBFun::WriteDBErrToFile(_T("ListTalking2 4"));
|
//nCount = m_ARecordSet.GetRecordCount( );
|
//nCount = 0;
|
// CMBAMDBFun::WriteDBErrToFile(_T("ListTalking2 5"));
|
}
|
catch( CDBSQliteException ex )
|
{
|
CString strError;
|
|
strError = (LPCTSTR)ex.GetErrInfo( );
|
|
return 0;
|
}
|
return nCount;
|
}
|
|
int CMsgs::ListTalking( CString strLogin, CString strUser2,bool bOnlyAttachmentMsg ,bool bGroupSend, BOOL bTimeAsc)
|
{ // ʹÓÃÕâ¸öº¯Êým_nReadedÎÞЧ
|
CString strSQL;
|
CString strStartDate;
|
CString strEndDate;
|
CString strSQLTempM;
|
int nCount;
|
CString strSort;
|
CString strSQLTemp2;
|
|
strLogin.MakeLower();
|
strUser2.MakeLower();
|
m_nListMsgType = LISTMSG_TYPE_CHAT;
|
//strSQL = _T("PRAGMA synchronous = OFF; ");
|
//CDBSQLiteCommFun::RunSQL( strSQL, m_pAConnect->GetDBConnect());
|
//strSQL = _T("PRAGMA temp_store = MEMORY;");
|
//CDBSQLiteCommFun::RunSQL( strSQL, m_pAConnect->GetDBConnect());
|
|
//CMBAMDBFun::WriteDBErrToFile(_T("CMsgs::ListTalking 1"));
|
if ( m_tmStartDate.GetYear() > 1970 || m_tmEndDate.GetYear() > 1970 )
|
{
|
if ( m_tmEndDate.GetYear() == 1970 )
|
m_tmEndDate = COleDateTime::GetCurrentTime( );
|
|
strStartDate = CMBAMDBFun::FormatDBTIMEToStr( m_tmStartDate );
|
strEndDate = CMBAMDBFun::FormatDBTIMEToStr( m_tmEndDate );
|
|
strSQLTempM.Format( _T(" AND m.T_C6 >= '%s' AND m.T_C6 <= '%s'"), strStartDate, strEndDate );
|
}
|
//strSQLTemp2.Format( _T(" AND m.S_C22 IN('%s','%s' ,'%s')"), CONTYPE_TEXT_TEXT, CONTYPE_TEXT_XML, CONTYPE_TEXT_PLAIN );
|
strSQLTemp2 = _T("");
|
if(bTimeAsc)
|
strSort = _T(" ASC");
|
else
|
strSort = _T(" DESC");
|
/*strSQL.Format( _T("SELECT T.* FROM ( \
|
SELECT m.* FROM TN_STK_MSG m, TN_STK_MSGOWNER o WHERE \
|
m.C_C17 <>'0' AND m.S_C10='' AND m.G_C1 = o.G_C1 %s %s AND ( (m.S_C4 = '%s' AND o.S_C2 = '%s' ) OR (m.S_C4 = '%s' AND o.S_C2 = '%s' AND (C_C9='0' OR (C_C9='1' AND N_C11>=%d))) AND o.N_C6 = 0) union \
|
SELECT m.* FROM TN_STK_MSG m WHERE \
|
m.C_C17 ='0' AND m.S_C10='' %s %s AND ( (m.S_C4 = '%s' AND m.S_C18 = '%s') OR (m.S_C4 = '%s' AND m.S_C18 = '%s' AND (C_C9='0' OR (C_C9='1' AND N_C11>=%d))))\
|
)T ORDER BY T.T_C6 %s"),strSQLTemp2,strSQLTempM, lpszUser1, strUser2, strUser2, lpszUser1,MSG_READSTATE_NONE,strSQLTemp2,strSQLTempM, lpszUser1, strUser2, strUser2, lpszUser1,MSG_READSTATE_NONE,strSort );
|
*/
|
/*strSQL.Format( _T("SELECT DISTINCT m.G_C1,m.G_C2,m.S_C3, m.S_C4, m.S_C5, m.T_C6,m.N_C7,m.N_C8,m.C_C9,m.S_C10,m.N_C11,m.N_C12,m.N_C13,m.N_C14,m.N_C15,m.S_C16,m.C_C17 ,m.S_C18,m.S_C19,m.T_C20,m.S_C21,m.S_C22,m.N_C23 ,m.S_C24,m.S_C25 \
|
FROM TN_STK_MSG m left join TN_STK_MSGOWNER o ON o.G_C1 = m.G_C1 WHERE %s %s AND \
|
( (( (m.S_C18 = '%s' AND m.C_C17 ='0') OR (o.S_C2 = '%s' AND m.C_C17 ='1')) AND m.S_C4 = '%s' ) \
|
OR (m.N_C11>=%d AND m.S_C4 = '%s' )) AND m.S_C10='' ORDER BY m.T_C6 %s"),
|
strSQLTemp2,strSQLTempM,strUser2,strUser2,strLogin, MSG_READSTATE_IOPEN, strUser2,strSort );*/
|
/*strSQL.Format( _T("SELECT m.G_C1,m.G_C2,m.S_C3, m.S_C4, m.S_C5, m.T_C6,m.N_C7,m.N_C8,m.C_C9,m.S_C10,m.N_C11,m.N_C12,m.N_C13,m.N_C14,m.N_C15,m.S_C16,m.C_C17 ,m.S_C18,m.S_C19,m.T_C20,m.S_C21,m.S_C22,m.N_C23 ,m.S_C24,m.S_C25 \
|
FROM TN_STK_MSG m INNER JOIN TN_STK_MSGOWNER o ON o.G_C1 = m.G_C1 WHERE %s %s AND \
|
( (o.S_C2 = '%s' AND m.S_C4 = '%s' ) \
|
OR (m.N_C11>=%d AND m.S_C4 = '%s' AND o.S_C2 = '%s')) AND m.S_C10='' ORDER BY m.T_C6 %s"),
|
strSQLTemp2,strSQLTempM,strUser2,strLogin, MSG_READSTATE_IOPEN, strUser2,strLogin,strSort );*/
|
|
if(bOnlyAttachmentMsg)
|
{
|
if(strLogin == strUser2)
|
{
|
strSQL.Format( _T("SELECT m.G_C1, m.T_C6 \
|
FROM TN_STK_MSG m INNER JOIN TN_STK_MSGOWNER o ON o.G_C1 = m.G_C1 WHERE \
|
m.S_C4 = '%s' AND o.S_C2 = '%s' AND m.C_C17='1' AND (m.N_C11>2 AND m.N_C11<>64) ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) AND m.N_C12>=1 %s \
|
UNION \
|
SELECT m.G_C1, m.T_C6 \
|
FROM TN_STK_MSG m WHERE \
|
m.S_C4 = '%s' AND m.S_C18 = '%s' AND m.C_C17='0' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) AND m.N_C12>=1 %s \
|
ORDER BY m.T_C6 %s"), strLogin, strUser2, strSQLTempM,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST,strLogin, strUser2,strSQLTempM,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST ,strSort );
|
}
|
else
|
{
|
strSQL.Format( _T("SELECT m.G_C1, m.T_C6 \
|
FROM TN_STK_MSG m INNER JOIN TN_STK_MSGOWNER o ON o.G_C1 = m.G_C1 WHERE \
|
m.S_C4 = '%s' AND o.S_C2 = '%s' AND m.C_C17='1' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) AND m.N_C12>=1 %s \
|
UNION \
|
SELECT m.G_C1, m.T_C6 \
|
FROM TN_STK_MSG m WHERE \
|
m.S_C4 = '%s' AND m.S_C18 = '%s' AND m.C_C17='0' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) AND m.N_C12>=1 %s \
|
UNION \
|
SELECT m.G_C1,m.T_C6 \
|
FROM TN_STK_MSG m WHERE \
|
m.S_C4 = '%s' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) AND m.N_C12>=1 %s \
|
ORDER BY m.T_C6 %s"), strLogin, strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST , strSQLTempM,strLogin, strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST , strSQLTempM,strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST ,strSQLTempM, strSort );
|
}
|
}
|
else
|
{
|
if(bGroupSend)
|
{
|
if(strLogin == strUser2)
|
{
|
strSQL.Format( _T("SELECT m.G_C1,m.T_C6 \
|
FROM TN_STK_MSG m INNER JOIN TN_STK_MSGOWNER o ON o.G_C1 = m.G_C1 WHERE \
|
m.S_C4 = '%s' AND o.S_C2 = '%s' AND m.C_C17='1' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s %s \
|
ORDER BY m.T_C6 %s"),
|
strLogin,strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST, strSQLTemp2,strSQLTempM, strSort );
|
}
|
else
|
{
|
strSQL.Format( _T("SELECT m.G_C1,m.T_C6 \
|
FROM TN_STK_MSG m INNER JOIN TN_STK_MSGOWNER o ON o.G_C1 = m.G_C1 WHERE \
|
m.S_C4 = '%s' AND o.S_C2 = '%s' AND m.C_C17='1' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s %s \
|
UNION \
|
SELECT m.G_C1,m.T_C6 \
|
FROM TN_STK_MSG m WHERE \
|
m.S_C4 = '%s' AND m.C_C17='1' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s %s \
|
ORDER BY m.T_C6 %s"),
|
strLogin,strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST, strSQLTemp2,strSQLTempM, strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST,strSQLTemp2,strSQLTempM, strSort );
|
}
|
}
|
else
|
{
|
if(strLogin == strUser2)
|
{
|
strSQL.Format( _T("SELECT m.G_C1,m.T_C6 \
|
FROM TN_STK_MSG m WHERE \
|
m.S_C4 = '%s' AND m.S_C18 = '%s' AND m.C_C17='0' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s %s \
|
ORDER BY m.T_C6 %s"),
|
strLogin,strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST, strSQLTemp2,strSQLTempM, strSort );
|
}
|
else
|
{
|
strSQL.Format( _T("SELECT m.G_C1,m.T_C6 \
|
FROM TN_STK_MSG m WHERE \
|
m.S_C4 = '%s' AND m.S_C18 = '%s' AND m.C_C17='0' AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s %s \
|
UNION \
|
SELECT m.G_C1,m.T_C6 \
|
FROM TN_STK_MSG m WHERE \
|
m.S_C4 = '%s'AND m.S_C18 = '%s' AND m.C_C17='0' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s %s \
|
ORDER BY m.T_C6 %s"),
|
strLogin,strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST, strSQLTemp2,strSQLTempM, strUser2,strLogin,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST,strSQLTemp2,strSQLTempM, strSort );
|
}
|
}
|
}
|
DWORD dwTickCount;
|
DWORD dwTickCount2;
|
DWORD dwInterset;
|
DWORD dwInterset2;
|
m_strSQL = strSQL;
|
if( !m_pAConnect || !m_pAConnect->IsOpenDB())
|
return 0;
|
try
|
{
|
dwTickCount = ::GetTickCount();
|
nCount = ListRecordCount();
|
dwTickCount2 = ::GetTickCount();
|
dwInterset = dwTickCount2 - dwTickCount;
|
//CDBSQLiteCommFun::RunSQL( _T("BEGIN"), m_pAConnect->GetDBConnect());
|
//CMBAMDBFun::WriteDBErrToFile(_T("CMsgs::ListTalking 2"));
|
m_ARecordSet.Close( );
|
m_ARecordSet.Open( m_pAConnect->GetDBConnect(), strSQL );
|
dwTickCount2 = ::GetTickCount();
|
dwInterset2 = dwTickCount2 - dwTickCount;
|
//m_ARecordSet.MoveFirst();
|
//CMBAMDBFun::WriteDBErrToFile(_T("CMsgs::ListTalking 3"));
|
//nCount = m_ARecordSet.GetRecordCount( );
|
|
//CMBAMDBFun::WriteDBErrToFile(_T("CMsgs::ListTalking 4"));
|
//CDBSQLiteCommFun::RunSQL( _T("COMMIT"), m_pAConnect->GetDBConnect());
|
}
|
catch( CDBSQliteException ex )
|
{
|
CString strError;
|
|
strError = (LPCTSTR)ex.GetErrInfo( );
|
|
return 0;
|
}
|
//strSQL = _T("PRAGMA synchronous = FULL; ");
|
//strSQL = _T("PRAGMA temp_store = DEFAULT; ");
|
//CDBSQLiteCommFun::RunSQL( strSQL, m_pAConnect->GetDBConnect());
|
CString strLog;
|
//strLog.Format(_T("CMsgs::ListTalking ²éѯʱ¼ä(%d-%d)"),dwInterset,dwInterset2);
|
//CMBAMDBFun::WriteDBErrToFile(strLog);
|
return nCount;
|
}
|
|
int CMsgs::ListUnreadMsg( LPCTSTR lpszOwner )
|
{
|
CString strSQL;
|
int nCount;
|
|
// begin modify wangcheng 2008/09/27
|
// ¼ÓÈ빦ÄÜʵÏÖ×°ÔØÎ´¶ÁµÄÏûÏ¢,Ö»°üÀ¨ÊÕ¼þÏäδ¶ÁµÄÏûÏ¢,ÔÝʱ??
|
// end modify
|
m_nListMsgType = LISTMSG_TYPE_SIMPLE;
|
strSQL.Format(_T("SELECT G_C1,T_C6 FROM TN_STK_MSG WHERE N_C8 = 1 AND N_C11 <= 1 AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) ORDER BY T_C6 DESC"),AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST );
|
|
m_strSQL = strSQL; // 2: IOPEN , 1: InBox
|
if( !m_pAConnect || !m_pAConnect->IsOpenDB())
|
return 0;
|
try
|
{
|
nCount = ListRecordCount( );
|
m_ARecordSet.Close( );
|
m_ARecordSet.Open( m_pAConnect->GetDBConnect(), strSQL );
|
if(nCount > 0)
|
m_ARecordSet.MoveFirst();
|
|
}
|
catch( CDBSQliteException ex )
|
{
|
CString strError;
|
|
strError = (LPCTSTR)ex.GetErrInfo();
|
|
return 0;
|
}
|
if ( nCount > 0 )
|
GetData( );
|
return nCount;
|
}
|
|
int CMsgs::GetMsgOwnersLength()
|
{
|
return m_arMsgOwners.GetSize( );
|
}
|
|
bool CMsgs::GetMsgOwner( int nIndex, CMsgOwners &msgOwner )
|
{
|
int nMsgOwnersCount = 0;
|
|
nMsgOwnersCount = GetMsgOwnersLength( );
|
if ( nIndex >= nMsgOwnersCount )
|
return false;
|
if ( nMsgOwnersCount == 0 )
|
return false;
|
|
msgOwner.LoadData( m_arMsgOwners[nIndex] );
|
|
return true;
|
}
|
|
int CMsgs::GetAttachmentCount()
|
{
|
return m_arMsgAttachments.GetSize( );
|
}
|
|
bool CMsgs::GetAttachment( int nIndex, CMsgAttachments &msgAttachment )
|
{
|
int nAttachCount = 0;
|
|
nAttachCount = GetAttachmentCount( );
|
if ( nIndex >= nAttachCount )
|
return false;
|
if ( nAttachCount == 0 )
|
return false;
|
|
msgAttachment.LoadData( m_arMsgAttachments.GetAt( nIndex ) );
|
|
return true;
|
}
|
|
bool CMsgs::RemoveMsg( LPCTSTR lpszMsgID )
|
{ // µ±Ã»ÓÐÖ¸¶¨IDµÄÏûϢʱ·µ¼Ófalse;
|
CString strSQL;
|
BOOL bReturn = true;
|
|
if( !m_pAConnect || !m_pAConnect->IsOpenDB())
|
return 0;
|
CDBConnect *pAConnect = m_pAConnect->GetDBConnect();
|
strSQL.Format( _T("DELETE FROM TN_STK_MSGOWNER WHERE G_C1 = '%s'"), lpszMsgID );
|
bReturn &= CDBSQLiteCommFun::RunSQL( strSQL,pAConnect );
|
|
strSQL.Format( _T("DELETE FROM TN_STK_ATTACHMENT WHERE G_C1 = '%s'"), lpszMsgID );
|
bReturn &= CDBSQLiteCommFun::RunSQL( strSQL, pAConnect );
|
|
strSQL.Format( _T("DELETE FROM TN_STK_MSGPROPERTY WHERE G_C1 = '%s'"), lpszMsgID );
|
bReturn &= CDBSQLiteCommFun::RunSQL( strSQL, pAConnect );
|
|
strSQL.Format( _T("DELETE FROM TN_STK_MSG WHERE G_C1 = '%s'"), lpszMsgID );
|
bReturn &= CDBSQLiteCommFun::RunSQL( strSQL,pAConnect );
|
|
return ( bReturn != 0 );
|
}
|
|
bool CMsgs::MoveMsg( LPCTSTR lpszMsgID, long nNewFolderID )
|
{
|
if ( lpszMsgID == NULL || nNewFolderID <= 0 )
|
return false;
|
|
if( !m_pAConnect || !m_pAConnect->IsOpenDB())
|
return 0;
|
BOOL bReturn = true;
|
CString strSQL;
|
|
strSQL.Format( _T("UPDATE TN_STK_MSG SET N_C8 = %d WHERE G_C1 = '%s'"), nNewFolderID,
|
lpszMsgID );
|
bReturn = CDBSQLiteCommFun::RunSQL( strSQL, m_pAConnect->GetDBConnect() );
|
return ( bReturn != 0 );
|
}
|
|
|
|
bool CMsgs::RemoveOutboxTimeMsg( LPCTSTR lpszOwner, COleDateTime tmStartDate, COleDateTime tmEndDate )
|
{
|
CString strSQL;
|
CString strStartDate;
|
CString strEndDate;
|
CString strSQLTempS;
|
CString strSQLTempM;
|
BOOL bReturn = true;
|
|
if( !m_pAConnect || !m_pAConnect->IsOpenDB())
|
return 0;
|
CDBConnect *pAConnect = m_pAConnect->GetDBConnect();
|
if ( tmStartDate.GetYear() > 1970 || tmEndDate.GetYear() > 1970 )
|
{
|
if ( tmEndDate.GetYear() == 1970 )
|
tmEndDate = COleDateTime::GetCurrentTime();
|
|
strStartDate = CMBAMDBFun::FormatDBTIMEToStr( tmStartDate );
|
strEndDate = CMBAMDBFun::FormatDBTIMEToStr( tmEndDate );
|
|
strSQLTempS.Format( _T(" AND T_C6 >= '%s' AND T_C6 <= '%s'"), strStartDate, strEndDate );
|
strSQLTempM.Format( _T(" AND m.T_C6 >= '%s' AND m.T_C6 <= '%s'"), strStartDate, strEndDate );
|
}
|
|
strSQL.Format( _T("DELETE FROM TN_STK_MSGOWNER WHERE G_C1 IN (Select m.G_C1\
|
FROM TN_STK_MSGOWNER o, TN_STK_MSG m WHERE o.G_C1 = m.G_C1 AND m.S_C4 = '%s' AND \
|
m.N_C8 = 2 %s)"), lpszOwner, strSQLTempM );
|
bReturn &= CDBSQLiteCommFun::RunSQL( strSQL, pAConnect );
|
|
|
strSQL.Format( _T("DELETE FROM TN_STK_ATTACHMENT WHERE G_C1 IN (Select m.G_C1\
|
FROM TN_STK_ATTACHMENT a, TN_STK_MSG m WHERE a.G_C1 = m.G_C1 AND m.S_C4 = '%s' AND \
|
m.N_C8 = 2 %s)"), lpszOwner, strSQLTempM );
|
bReturn &= CDBSQLiteCommFun::RunSQL( strSQL, pAConnect );
|
|
strSQL.Format( _T("DELETE FROM TN_STK_MSGPROPERTY WHERE G_C1 IN (Select m.G_C1\
|
FROM TN_STK_MSGPROPERTY p, TN_STK_MSG m WHERE p.G_C1 = m.G_C1 AND m.S_C4 = '%s' AND \
|
m.N_C8 = 2 %s)"), lpszOwner, strSQLTempM );
|
bReturn &= CDBSQLiteCommFun::RunSQL( strSQL, pAConnect );
|
|
strSQL.Format( _T("DELETE FROM TN_STK_MSG WHERE S_C4 = '%s' AND \
|
N_C8 = 2 %s"), lpszOwner, strSQLTempS );
|
bReturn &= CDBSQLiteCommFun::RunSQL( strSQL, pAConnect );
|
|
return ( bReturn != 0 );
|
}
|
|
bool CMsgs::RemoveReadedTimeMsg( LPCTSTR lpszOwner, COleDateTime tmStartDate, COleDateTime tmEndDate )
|
{
|
CString strSQL;
|
CString strStartDate;
|
CString strEndDate;
|
BOOL bReturn = true;
|
CString strSQLTempM;
|
CString strSQLTempS;
|
|
if( !m_pAConnect || !m_pAConnect->IsOpenDB())
|
return 0;
|
CDBConnect *pAConnect = m_pAConnect->GetDBConnect();
|
if ( tmStartDate.GetYear() > 1970 || tmEndDate.GetYear() > 1970 )
|
{
|
if ( tmEndDate.GetYear() == 1970 )
|
tmEndDate = COleDateTime::GetCurrentTime();
|
|
strStartDate = CMBAMDBFun::FormatDBTIMEToStr( tmStartDate );
|
strEndDate = CMBAMDBFun::FormatDBTIMEToStr( tmEndDate );
|
|
strSQLTempS.Format( _T(" AND T_C6 >= '%s' AND T_C6 <= '%s'"), strStartDate, strEndDate );
|
strSQLTempM.Format( _T(" AND m.T_C6 >= '%s' AND m.T_C6 <= '%s'"), strStartDate, strEndDate );
|
}
|
|
strSQL.Format( _T("DELETE FROM TN_STK_MSGOWNER WHERE G_C1 IN (Select m.G_C1\
|
FROM TN_STK_MSGOWNER o, TN_STK_MSG m WHERE o.G_C1 = m.G_C1 AND m.N_C11 >= 2 AND \
|
m.N_C8 = 1 %s)"), strSQLTempM );
|
bReturn &= CDBSQLiteCommFun::RunSQL( strSQL, pAConnect );
|
|
strSQL.Format( _T("DELETE FROM TN_STK_ATTACHMENT WHERE G_C1 IN (Select m.G_C1\
|
FROM TN_STK_ATTACHMENT a, TN_STK_MSG m WHERE a.G_C1 = m.G_C1 AND m.N_C11 >= 2 AND \
|
m.N_C8 = 1 %s)"), strSQLTempM );
|
bReturn &= CDBSQLiteCommFun::RunSQL( strSQL, pAConnect );
|
|
strSQL.Format( _T("DELETE FROM TN_STK_MSGPROPERTY WHERE G_C1 IN (Select m.G_C1\
|
FROM TN_STK_MSGPROPERTY p, TN_STK_MSG m WHERE p.G_C1 = m.G_C1 AND m.N_C11 >= 2 AND \
|
m.N_C8 = 1 %s)"), strSQLTempM );
|
bReturn &= CDBSQLiteCommFun::RunSQL( strSQL, pAConnect );
|
|
strSQL.Format( _T("DELETE FROM TN_STK_MSG WHERE N_C11 >= 2 AND \
|
N_C8 = 1 %s"), strSQLTempS );
|
bReturn &= CDBSQLiteCommFun::RunSQL( strSQL, pAConnect );
|
|
return ( bReturn != 0 );
|
}
|
|
int CMsgs::ListSearchingTalking( CString strLogin, CString strUser2,CString strKey,bool bOnlyAttachmentMsg,bool bGroupSend, BOOL bTimeAsc )
|
{
|
CString strSQL;
|
CString strStartDate;
|
CString strEndDate;
|
CString strSQLTempM;
|
int nCount;
|
CString strSort;
|
CString strTemp;
|
// CString strSQLTempAttach;
|
|
strLogin.MakeLower();
|
strUser2.MakeLower();
|
if ( m_tmStartDate.GetYear() > 1970 || m_tmEndDate.GetYear() > 1970 )
|
{
|
if ( m_tmEndDate.GetYear() == 1970 )
|
m_tmEndDate = COleDateTime::GetCurrentTime( );
|
|
strStartDate = CMBAMDBFun::FormatDBTIMEToStr( m_tmStartDate );
|
strEndDate = CMBAMDBFun::FormatDBTIMEToStr( m_tmEndDate );
|
|
strSQLTempM.Format( _T(" AND m.T_C6 >= '%s' AND m.T_C6 <= '%s'"), strStartDate, strEndDate );
|
}
|
if( !strKey.IsEmpty())
|
strTemp.Format( _T("AND m.S_C25 LIKE '%%%s%%' "), strKey );
|
//if( bAttachmentMsg)
|
// strSQLTempAttach = _T("AND m.N_C12>=1");
|
if(bTimeAsc)
|
strSort = _T(" ASC");
|
else
|
strSort = _T(" DESC");
|
/*strSQL.Format( _T("SELECT DISTINCT m.G_C1,m.G_C2,m.S_C3, m.S_C4, m.S_C5, m.T_C6,m.N_C7,m.N_C8,m.C_C9,m.S_C10,m.N_C11,m.N_C12,m.N_C13,m.N_C14,m.N_C15,m.S_C16,m.C_C17 ,m.S_C18,m.S_C19,m.T_C20,m.S_C21,m.S_C22,m.N_C23 ,m.S_C24,m.S_C25 \
|
FROM TN_STK_MSG m left join TN_STK_MSGOWNER o ON o.G_C1 = m.G_C1 WHERE \
|
( (m.S_C4 = '%s' AND ( (m.S_C18 = '%s' AND m.C_C17 ='0') OR (o.S_C2 = '%s' AND m.C_C17 ='1'))) \
|
OR (m.S_C4 = '%s' AND m.N_C11>=%d )) AND m.S_C10='' %s %s\
|
ORDER BY m.T_C6 %s"), strLogin, strUser2, strUser2,strUser2,MSG_READSTATE_IOPEN, strTemp,strSQLTempM,strSort );
|
*/
|
if(bOnlyAttachmentMsg)
|
{
|
if(strKey.IsEmpty())
|
{
|
if(strLogin == strUser2)
|
{
|
strSQL.Format( _T("SELECT m.G_C1, m.T_C6 \
|
FROM TN_STK_MSG m INNER JOIN TN_STK_MSGOWNER o ON o.G_C1 = m.G_C1 WHERE \
|
m.S_C4 = '%s' AND o.S_C2 = '%s' AND m.C_C17='1' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) AND m.N_C12>=1 %s \
|
UNION \
|
SELECT m.G_C1, m.T_C6 \
|
FROM TN_STK_MSG m WHERE \
|
m.S_C4 = '%s' AND m.S_C18 = '%s' AND m.C_C17='0' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) AND m.N_C12>=1 %s \
|
ORDER BY m.T_C6 %s"), strLogin, strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST , strSQLTempM,strLogin, strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST,strSQLTempM, strSort );
|
}
|
else
|
{
|
strSQL.Format( _T("SELECT m.G_C1, m.T_C6 \
|
FROM TN_STK_MSG m INNER JOIN TN_STK_MSGOWNER o ON o.G_C1 = m.G_C1 WHERE \
|
m.S_C4 = '%s' AND o.S_C2 = '%s' AND m.C_C17='1' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d) AND m.N_C12>=1 %s \
|
UNION \
|
SELECT m.G_C1, m.T_C6 \
|
FROM TN_STK_MSG m WHERE \
|
m.S_C4 = '%s' AND m.S_C18 = '%s' AND m.C_C17='0' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d) AND m.N_C12>=1 %s \
|
UNION \
|
SELECT m.G_C1,m.T_C6 \
|
FROM TN_STK_MSG m WHERE \
|
m.S_C4 = '%s' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) AND m.N_C12>=1 %s \
|
ORDER BY m.T_C6 %s"), strLogin, strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST , strSQLTempM,strLogin, strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST , strSQLTempM,strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST ,strSQLTempM, strSort );
|
}
|
/*if(bGroupSend)
|
{
|
strSQL.Format( _T("SELECT m.G_C1, m.T_C6 \
|
FROM TN_STK_MSG m INNER JOIN TN_STK_MSGOWNER o ON o.G_C1 = m.G_C1 WHERE \
|
m.S_C4 = '%s' AND o.S_C2 = '%s' AND m.C_C17='1' AND m.S_C10='' AND m.N_C12>=1 %s \
|
UNION \
|
SELECT m.G_C1,m.T_C6 \
|
FROM TN_STK_MSG m WHERE \
|
m.S_C4 = '%s' AND m.N_C11>=%d AND m.C_C17='1' AND m.S_C10='' AND m.N_C12>=1 %s \
|
ORDER BY m.T_C6 %s"), strLogin, strUser2, strSQLTempM,strUser2,MSG_READSTATE_IOPEN,strSQLTempM, strSort );
|
}
|
else
|
{
|
strSQL.Format( _T("SELECT m.G_C1, m.T_C6 \
|
FROM TN_STK_MSG m WHERE \
|
m.S_C4 = '%s' AND m.S_C18 = '%s' AND m.C_C17='0' AND m.S_C10='' AND m.N_C12>=1 %s \
|
UNION \
|
SELECT m.G_C1,m.T_C6 \
|
FROM TN_STK_MSG m WHERE \
|
m.S_C4 = '%s' AND m.N_C11>=%d AND m.C_C17='0' AND m.S_C10='' AND m.N_C12>=1 %s \
|
ORDER BY m.T_C6 %s"), strLogin, strUser2, strSQLTempM,strUser2,MSG_READSTATE_IOPEN,strSQLTempM, strSort );
|
}*/
|
/*strSQL.Format( _T("SELECT m.G_C1,m.G_C2,m.S_C3, m.S_C4, m.S_C5, m.T_C6,m.N_C7,m.N_C8,m.C_C9,m.S_C10,m.N_C11,m.N_C12,m.N_C13,m.N_C14,m.N_C15,m.S_C16,m.C_C17 ,m.S_C18,m.S_C19,m.T_C20,m.S_C21,m.S_C22,m.N_C23 ,m.S_C24,m.S_C25 \
|
FROM TN_STK_MSG m INNER JOIN TN_STK_MSGOWNER o ON o.G_C1 = m.G_C1 WHERE \
|
( (m.S_C4 = '%s' AND o.S_C2 = '%s') \
|
UNION \
|
OR (m.S_C4 = '%s' AND o.S_C2 = '%s' AND m.N_C11>=%d )) AND m.S_C10='' AND m.N_C12>=1 %s \
|
ORDER BY m.T_C6 %s"), strLogin, strUser2, strUser2,strLogin,MSG_READSTATE_IOPEN,strSQLTempM,strSort );*/
|
}
|
else
|
{
|
if(strLogin == strUser2)
|
{
|
strSQL.Format( _T("SELECT ST.G_C1,ST.T_C6 \
|
FROM (SELECT m.G_C1, m.T_C6 \
|
FROM TN_STK_MSG m INNER JOIN TN_STK_MSGOWNER o ON o.G_C1 = m.G_C1 WHERE \
|
m.S_C4 = '%s' AND o.S_C2 = '%s' AND m.C_C17='1' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) AND m.N_C12>=1 %s \
|
UNION \
|
SELECT m.G_C1, m.T_C6 \
|
FROM TN_STK_MSG m WHERE \
|
m.S_C4 = '%s' AND m.S_C18 = '%s' AND m.C_C17='0' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) AND m.N_C12>=1 %s )ST \
|
INNER JOIN TN_STK_ATTACHMENT a ON a.G_C1 = ST.G_C1 \
|
WHERE a.S_C2 LIKE '%%%s%%' \
|
ORDER BY ST.T_C6 %s"), strLogin, strUser2, AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST ,strSQLTempM,strLogin, strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST ,strSQLTempM,strKey, strSort );
|
}
|
else
|
{
|
strSQL.Format( _T("SELECT ST.G_C1,ST.T_C6 \
|
FROM (SELECT m.G_C1, m.T_C6 \
|
FROM TN_STK_MSG m INNER JOIN TN_STK_MSGOWNER o ON o.G_C1 = m.G_C1 WHERE \
|
m.S_C4 = '%s' AND o.S_C2 = '%s' AND m.C_C17='1' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) AND m.N_C12>=1 %s \
|
UNION \
|
SELECT m.G_C1, m.T_C6 \
|
FROM TN_STK_MSG m WHERE \
|
m.S_C4 = '%s' AND m.S_C18 = '%s' AND m.C_C17='0' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) AND m.N_C12>=1 %s \
|
UNION \
|
SELECT m.G_C1,m.T_C6 \
|
FROM TN_STK_MSG m WHERE \
|
m.S_C4 = '%s' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) AND m.N_C12>=1 %s )ST \
|
INNER JOIN TN_STK_ATTACHMENT a ON a.G_C1 = ST.G_C1 \
|
WHERE a.S_C2 LIKE '%%%s%%' ORDER BY ST.T_C6 %s"),
|
strLogin, strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST , strSQLTempM, strLogin, strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST , strSQLTempM,strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST ,strSQLTempM,strKey,strSort );
|
}
|
/*if(bGroupSend)
|
{
|
strSQL.Format( _T("SELECT ST.G_C1,ST.T_C6 \
|
FROM (SELECT m.G_C1, m.T_C6 \
|
FROM TN_STK_MSG m INNER JOIN TN_STK_MSGOWNER o ON o.G_C1 = m.G_C1 WHERE \
|
m.S_C4 = '%s' AND o.S_C2 = '%s' AND m.C_C17='1' AND m.S_C10='' AND m.N_C12>=1 %s\
|
UNION \
|
SELECT m.G_C1,m.T_C6 \
|
FROM TN_STK_MSG m WHERE \
|
m.S_C4 = '%s' AND m.N_C11>=%d AND m.C_C17='1' AND m.S_C10='' AND m.N_C12>=1 %s )ST \
|
INNER JOIN TN_STK_ATTACHMENT a ON a.G_C1 = ST.G_C1 \
|
WHERE a.S_C25 LIKE '%%%s%%' \
|
ORDER BY ST.T_C6 %s"), strLogin, strUser2, strSQLTempM,strUser2,MSG_READSTATE_IOPEN,strSQLTempM,strKey,strSort );
|
}
|
else
|
{
|
strSQL.Format( _T("SELECT ST.G_C1,ST.T_C6 \
|
FROM (SELECT m.G_C1, m.T_C6 \
|
FROM TN_STK_MSG m WHERE \
|
m.S_C4 = '%s' AND m.S_C18 = '%s' AND m.C_C17='0' AND m.S_C10='' AND m.N_C12>=1 %s\
|
UNION \
|
SELECT m.G_C1,m.T_C6 \
|
FROM TN_STK_MSG m WHERE \
|
m.S_C4 = '%s' AND m.N_C11>=%d AND m.C_C17='0' AND m.S_C10='' AND m.N_C12>=1 %s )ST \
|
INNER JOIN TN_STK_ATTACHMENT a ON a.G_C1 = ST.G_C1 \
|
WHERE a.S_C25 LIKE '%%%s%%' \
|
ORDER BY ST.T_C6 %s"), strLogin, strUser2, strSQLTempM,strUser2,MSG_READSTATE_IOPEN,strSQLTempM,strKey,strSort );
|
}*/
|
}
|
}
|
else
|
{
|
if(strKey.IsEmpty())
|
{
|
if(bGroupSend)
|
{
|
if(strLogin == strUser2)
|
{
|
strSQL.Format( _T("SELECT m.G_C1,m.T_C6 \
|
FROM TN_STK_MSG m INNER JOIN TN_STK_MSGOWNER o ON o.G_C1 = m.G_C1 WHERE \
|
m.S_C4 = '%s' AND o.S_C2 = '%s' AND m.C_C17='1' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s \
|
ORDER BY m.T_C6 %s"), strLogin, strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST ,strSQLTempM,strSort );
|
}
|
else
|
{
|
strSQL.Format( _T("SELECT m.G_C1,m.T_C6 \
|
FROM TN_STK_MSG m INNER JOIN TN_STK_MSGOWNER o ON o.G_C1 = m.G_C1 WHERE \
|
m.S_C4 = '%s' AND o.S_C2 = '%s' AND m.C_C17='1' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s \
|
UNION \
|
SELECT m.G_C1,m.T_C6 \
|
FROM TN_STK_MSG m WHERE \
|
m.S_C4 = '%s' AND m.C_C17='1' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s \
|
ORDER BY m.T_C6 %s"), strLogin, strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST ,strSQLTempM, strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST ,strSQLTempM,strSort );
|
}
|
}
|
else
|
{
|
if(strLogin == strUser2)
|
{
|
strSQL.Format( _T("SELECT m.G_C1,m.T_C6 \
|
FROM TN_STK_MSG m WHERE \
|
m.S_C4 = '%s' AND m.S_C18 = '%s' AND m.C_C17='0' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s \
|
ORDER BY m.T_C6 %s"), strLogin, strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST ,strSQLTempM,strSort );
|
}
|
else
|
{
|
strSQL.Format( _T("SELECT m.G_C1,m.T_C6 \
|
FROM TN_STK_MSG m WHERE \
|
((m.S_C4 = '%s' AND m.S_C18 = '%s') OR (m.S_C4 = '%s' AND m.S_C18 = '%s')) AND m.C_C17='0' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s \
|
ORDER BY m.T_C6 %s"), strLogin, strUser2,strUser2,strLogin,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST ,strSQLTempM,strSort );
|
}
|
}
|
}
|
else
|
{
|
if(bGroupSend)
|
{
|
if(strLogin == strUser2)
|
{
|
strSQL.Format( _T("SELECT m.G_C1,m.T_C6 \
|
FROM TN_STK_MSG m INNER JOIN TN_STK_MSGOWNER o ON o.G_C1 = m.G_C1 WHERE \
|
m.S_C4 = '%s' AND o.S_C2 = '%s' AND m.C_C17='1' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s %s \
|
ORDER BY ST.T_C6 %s"), strLogin, strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST ,strTemp,strSQLTempM,strSort );
|
}
|
else
|
{
|
strSQL.Format( _T("SELECT m.G_C1, m.T_C6 \
|
FROM TN_STK_MSG m INNER JOIN TN_STK_MSGOWNER o ON o.G_C1 = m.G_C1 WHERE \
|
m.S_C4 = '%s' AND o.S_C2 = '%s' AND m.C_C17='1' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s %s \
|
UNION \
|
SELECT m.G_C1, m.T_C6 \
|
FROM TN_STK_MSG m WHERE \
|
m.S_C4 = '%s' AND m.C_C17='1' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s %s \
|
ORDER BY m.T_C6 %s"), strLogin, strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST ,strTemp,strSQLTempM, strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST ,strTemp,strSQLTempM,strSort );
|
}
|
}
|
else
|
{
|
if(strLogin == strUser2)
|
{
|
strSQL.Format( _T("SELECT m.G_C1, m.T_C6 \
|
FROM TN_STK_MSG m WHERE \
|
m.S_C4 = '%s' AND m.S_C18 = '%s' AND m.C_C17='0' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s %s \
|
ORDER BY m.T_C6 %s"), strLogin, strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST ,strTemp,strSQLTempM,strSort );
|
}
|
else
|
{
|
strSQL.Format( _T("SELECT m.G_C1, m.T_C6 \
|
FROM TN_STK_MSG m WHERE \
|
((m.S_C4 = '%s' AND m.S_C18 = '%s') OR (m.S_C4 = '%s' AND m.S_C18 = '%s')) AND m.C_C17='0' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s %s \
|
ORDER BY m.T_C6 %s"), strLogin, strUser2, strUser2,strLogin,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST ,strTemp,strSQLTempM,strSort );
|
}
|
}
|
}
|
|
/*strSQL.Format( _T("SELECT m.G_C1,m.G_C2,m.S_C3, m.S_C4, m.S_C5, m.T_C6,m.N_C7,m.N_C8,m.C_C9,m.S_C10,m.N_C11,m.N_C12,m.N_C13,m.N_C14,m.N_C15,m.S_C16,m.C_C17 ,m.S_C18,m.S_C19,m.T_C20,m.S_C21,m.S_C22,m.N_C23 ,m.S_C24,m.S_C25 \
|
FROM TN_STK_MSG m INNER JOIN TN_STK_MSGOWNER o ON o.G_C1 = m.G_C1 WHERE \
|
( (m.S_C4 = '%s' AND o.S_C2 = '%s') \
|
OR (m.S_C4 = '%s' AND o.S_C2 = '%s' AND m.N_C11>=%d )) AND m.S_C10='' %s %s\
|
ORDER BY m.T_C6 %s"), strLogin, strUser2, strUser2,strLogin,MSG_READSTATE_IOPEN,strTemp,strSQLTempM,strSort );*/
|
}
|
m_strSQL = strSQL;
|
m_nListMsgType = LISTMSG_TYPE_CHAT;
|
if( !m_pAConnect || !m_pAConnect->IsOpenDB())
|
return 0;
|
try
|
{
|
nCount = ListRecordCount();
|
m_ARecordSet.Close( );
|
m_ARecordSet.Open( m_pAConnect->GetDBConnect(), strSQL );
|
//m_ARecordSet.MoveFirst();
|
//nCount = m_ARecordSet.GetRecordCount( );
|
//nCount = 0;
|
}
|
catch( CDBSQliteException ex )
|
{
|
CString strError;
|
|
strError = (LPCTSTR)ex.GetErrInfo( );
|
|
return 0;
|
}
|
|
return nCount;
|
}
|
|
BOOL CMsgs::UpldateLastContactDate( CString strID, CString strName, CString strLastDate, CString strSubject)
|
{
|
CString strSQL;
|
CDBRecord ARecordset;
|
BOOL bReturn = FALSE;
|
int nVaule = 0;
|
CString strSubSQL = _T("");
|
CHighTime dtCurrent = CHighTime::GetPresentTime();
|
|
if( !m_pAConnect || !m_pAConnect->IsOpenDB())
|
return 0;
|
CDBConnect *pAConnect = m_pAConnect->GetDBConnect();
|
|
if( strID.IsEmpty() )
|
return TRUE;
|
if( !strName.IsEmpty() && strName.CompareNoCase(strID) != 0)
|
{
|
strSubSQL.Format( _T("S_C2 ='%s',"), CMBAMDBFun::GetDBReplaceStr( strName));
|
}
|
strSQL.Format( _T("SELECT COUNT(*) FROM TN_STK_LASTCONTACT WHERE S_C1='%s' AND N_C4=%d "),CMBAMDBFun::GetDBReplaceStr( strID),AM_VIEWITEMTYPE_USER);
|
try
|
{
|
ARecordset.Open( pAConnect,strSQL );
|
while ( S_OK == ARecordset.MoveNext() )
|
{
|
nVaule = 0;
|
ARecordset.GetValue( 1, nVaule );
|
bReturn = TRUE;
|
break;
|
}
|
if( nVaule > 1 )
|
{
|
strSQL.Format( _T("DELETE FROM TN_STK_LASTCONTACT WHERE S_C1= '%s' AND N_C4=%d "), CMBAMDBFun::GetDBReplaceStr( strID),AM_VIEWITEMTYPE_USER );
|
bReturn = CDBSQLiteCommFun::RunSQL( (LPCTSTR)strSQL,pAConnect);
|
if( !bReturn)
|
return false;
|
strSQL.Format( _T("INSERT INTO TN_STK_LASTCONTACT(S_C1, S_C2 ,T_C3, N_C4, S_C5 ) VALUES ( \
|
'%s', '%s', '%s', %d, '%s' )"), CMBAMDBFun::GetDBReplaceStr( strID), CMBAMDBFun::GetDBReplaceStr( strName),strLastDate,AM_VIEWITEMTYPE_USER,CMBAMDBFun::GetDBReplaceStr( strSubject) );
|
bReturn = CDBSQLiteCommFun::RunSQL( (LPCTSTR)strSQL,pAConnect);
|
return bReturn;
|
}
|
else if( nVaule == 1 )
|
{
|
strSQL.Format( _T("UPDATE TN_STK_LASTCONTACT SET S_C2='%s', T_C3 ='%s', S_C5 ='%s' WHERE S_C1= '%s' AND N_C4=%d AND (T_C3<= '%s' OR T_C3 > '%s')"), CMBAMDBFun::GetDBReplaceStr( strName),strLastDate, CMBAMDBFun::GetDBReplaceStr( strSubject), CMBAMDBFun::GetDBReplaceStr( strID),AM_VIEWITEMTYPE_USER, strLastDate, CMBAMDBFun::FormatDBTIMEToStr( dtCurrent ) );
|
bReturn = CDBSQLiteCommFun::RunSQL( (LPCTSTR)strSQL,pAConnect);
|
return bReturn;
|
}
|
else
|
{
|
strSQL.Format( _T("INSERT INTO TN_STK_LASTCONTACT(S_C1, S_C2 ,T_C3, N_C4, S_C5 ) VALUES ( \
|
'%s', '%s', '%s', %d, '%s' )"), CMBAMDBFun::GetDBReplaceStr( strID), CMBAMDBFun::GetDBReplaceStr( strName),strLastDate,AM_VIEWITEMTYPE_USER,CMBAMDBFun::GetDBReplaceStr( strSubject) );
|
bReturn = CDBSQLiteCommFun::RunSQL( (LPCTSTR)strSQL,pAConnect);
|
return bReturn;
|
}
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError, strErrInfo;
|
|
strError = ex.GetErrInfo();
|
strErrInfo = _T("Msg UpldateLastContactDate - ") + strError;
|
CMBAMDBFun::WriteDBErrToFile( strErrInfo );
|
return FALSE;
|
}
|
return bReturn;
|
}
|
|
|
|
BOOL CMsgs::UpdateMsgOwnerAttitude( CMsgItem *pMsg )
|
{
|
if ( !pMsg || pMsg->m_strID.IsEmpty() )
|
return false;
|
if( !m_pAConnect || !m_pAConnect->IsOpenDB())
|
return 0;
|
CDBConnect *pAConnect = m_pAConnect->GetDBConnect();
|
m_pAConnect->AddRef();
|
CMsgOwners msgOwners( m_pAConnect );
|
CMsgOwnerItem itemMsgOwner;
|
int nCount, nIndex, nItem;
|
|
|
GetMsgOwnerData( );
|
nCount = GetMsgOwnersLength();
|
for ( nIndex = 0; nIndex < nCount; nIndex++ )
|
{
|
GetMsgOwner( nIndex, msgOwners );
|
nItem = pMsg->FindMsgOwnerr( msgOwners.m_strOwner );
|
if ( nItem < 0 )
|
continue;
|
itemMsgOwner = pMsg->m_arMsgOwners.GetAt( nItem );
|
msgOwners.m_strMsgID = pMsg->m_strID;
|
msgOwners.m_tmOpenDate = itemMsgOwner.m_tmOpenDate;
|
msgOwners.m_strAttitude = itemMsgOwner.m_strAttitude;
|
msgOwners.UpdateRecord( pAConnect);
|
}
|
return true;
|
}
|
BOOL CMsgs::UpdateMsg( CMsgItem *pMsg,bool bIsSendMsg )
|
{
|
if ( !pMsg || pMsg->m_strID.IsEmpty() )
|
return false;
|
if( !m_pAConnect || !m_pAConnect->IsOpenDB())
|
return 0;
|
CDBConnect *pAConnect = m_pAConnect->GetDBConnect();
|
CMsgOwnerItem msgOwner;
|
CMsgAttachmentItem msgAttach;
|
CString strMsgID;
|
|
int nCount, nIndex;
|
CHighTime tmHigh;
|
CString strOpenTime;
|
strMsgID = pMsg->m_strID;
|
m_strSourceID = pMsg->m_strSourceID;
|
m_strSubject = pMsg->m_strSubject;
|
m_strSender = pMsg->m_strSender;
|
m_strSenderName = pMsg->m_strSenderName;
|
m_tmDate =m_tmDate;
|
m_nType = pMsg->m_nType;
|
m_nMsgFolder = pMsg->m_nMsgFolder;
|
|
m_strMsgExtType = pMsg->m_strMsgExtType;
|
m_nNeedConfirm = pMsg->m_nNeedConfirm;
|
m_nReadState = m_nReadState | pMsg->m_nReadState;
|
m_strAttitudeset = _T("");
|
m_nMsgExtState = pMsg->m_nMsgExtState;
|
m_nPropertyCount = pMsg->m_nPropertyCount;
|
m_nCharset = pMsg->m_nCharset;
|
m_strContentType = pMsg->m_strContentType;
|
m_nContentSize = pMsg->m_nContentSize;
|
m_strContent = pMsg->m_strContent;
|
m_strContentText = pMsg->m_strContentText;
|
|
if ( pMsg->m_arMsgAttachments.GetSize() > 0 )
|
m_nAttachCount = pMsg->m_arMsgAttachments.GetSize();
|
else
|
m_nAttachCount = pMsg->m_nAttachCount;
|
nCount = pMsg->m_arMsgOwners.GetSize();
|
if(nCount > 1)
|
pMsg->m_nIsGroupSend = true;
|
else
|
pMsg->m_nIsGroupSend = false;
|
m_nIsGroupSend = pMsg->m_nIsGroupSend;
|
m_strReceivers = _T("");
|
m_strReceiverNames = _T("");
|
if( !m_nIsGroupSend )
|
{
|
for ( nIndex = 0; nIndex < nCount; nIndex++ )
|
{
|
msgOwner = pMsg->m_arMsgOwners.GetAt( nIndex );
|
m_strReceivers += msgOwner.m_strOwner;
|
m_strReceiverNames += msgOwner.m_strOwnerName;
|
m_tmOpenDate = msgOwner.m_tmOpenDate;
|
m_strReceiverAttitude = msgOwner.m_strAttitude;
|
break;
|
}
|
}
|
else
|
{
|
if(bIsSendMsg)
|
{
|
for ( nIndex = 0; nIndex < nCount; nIndex++ )
|
{
|
msgOwner = pMsg->m_arMsgOwners.GetAt( nIndex );
|
m_strReceivers += msgOwner.m_strOwner + _T(";");
|
m_strReceiverNames += msgOwner.m_strOwnerName + _T(";");
|
m_tmOpenDate = msgOwner.m_tmOpenDate;
|
m_strReceiverAttitude = msgOwner.m_strAttitude;
|
if(nIndex > 4)
|
break;
|
}
|
}
|
else
|
{
|
m_strReceivers = _T(";");
|
m_strReceiverNames = _T(";");
|
for ( nIndex = 0; nIndex < nCount; nIndex++ )
|
{
|
msgOwner = pMsg->m_arMsgOwners.GetAt( nIndex );
|
m_strReceivers += msgOwner.m_strOwner + _T(";");
|
m_strReceiverNames += msgOwner.m_strOwnerName + _T(";");
|
m_tmOpenDate = msgOwner.m_tmOpenDate;
|
m_strReceiverAttitude = msgOwner.m_strAttitude;
|
}
|
}
|
}
|
UpdateRecord( pAConnect );
|
m_strReceivers.TrimLeft(_T(";"));
|
m_strReceiverNames.TrimLeft(_T(";"));
|
m_strReceivers.TrimRight(_T(";"));
|
m_strReceiverNames.TrimRight(_T(";"));
|
/*if(m_nType == AM_MSGTYPE_MSG && m_strMsgExtType.IsEmpty())
|
{
|
UpldateLastContactDate( m_strSender,m_strSenderName, CMBAMDBFun::FormatDBTIMEToStr( m_tmDate ),m_strSubject );
|
}*/
|
bool bExistedOwner = false;
|
msgOwner.m_strMsgID = strMsgID;
|
nCount = pMsg->m_arMsgOwners.GetSize();
|
if ( nCount >= 1 )
|
{ // ÅжÏÊÇ·ñÊǵÚÒ»´ÎINSERT
|
m_pAConnect->AddRef();
|
CMsgOwners msgOwners(m_pAConnect);
|
msgOwner = pMsg->m_arMsgOwners.GetAt( 0 );
|
if ( msgOwners.ListSpMsgID( pMsg->m_strID, msgOwner.m_strOwner ) != 0 )
|
{
|
bExistedOwner = true;
|
}
|
else
|
{
|
bExistedOwner = false;
|
}
|
|
if ( !bExistedOwner )
|
{ // ²»´æÔÚµÄÒªNEW
|
try
|
{
|
if(pMsg->m_nIsGroupSend && bIsSendMsg)
|
{
|
pAConnect->StartTransaction();
|
for ( nIndex = 0; nIndex < nCount; nIndex++ )
|
{
|
msgOwner = pMsg->m_arMsgOwners.GetAt( nIndex );
|
msgOwner.InsertRecord( pAConnect );
|
}
|
pAConnect->Commit();
|
}
|
/*else
|
{
|
msgOwner.m_strMsgID = pMsg->m_strID;
|
msgOwner.m_strOwner = m_strReceivers;
|
msgOwner.m_strOwnerName = m_strReceiverNames;
|
msgOwner.m_tmOpenDate = m_tmOpenDate;
|
msgOwner.m_nOwnerType = 0;
|
msgOwner.m_strAttitude = m_strReceiverAttitude;
|
msgOwner.InsertRecord( pAConnect );
|
}*/
|
}
|
catch( ... )
|
{
|
pAConnect->Abort();
|
return false;
|
}
|
}
|
else
|
{ // ÒѾ´æÔÚµÄÒªUPDATE
|
try
|
{
|
|
pAConnect->StartTransaction();
|
for ( nIndex = 0; nIndex < nCount; nIndex++ )
|
{
|
msgOwner = pMsg->m_arMsgOwners.GetAt( nIndex );
|
msgOwner.m_strMsgID = strMsgID;
|
msgOwner.UpdateRecord( pAConnect );
|
}
|
pAConnect->Commit();
|
}
|
catch( ... )
|
{
|
pAConnect->Abort();
|
return false;
|
}
|
}
|
}
|
// Insert Message Attachment
|
msgAttach.m_strMsgID = strMsgID;
|
CString strFilePath;
|
CString strTmpName;
|
int nValue = 1;
|
CMapStringToInt mapAttachment;
|
|
try
|
{
|
pAConnect->StartTransaction();
|
mapAttachment.RemoveAll();
|
nCount = pMsg->m_arMsgAttachments.GetSize();
|
for ( nIndex = 0; nIndex < nCount; nIndex++ )
|
{
|
msgAttach = pMsg->m_arMsgAttachments.GetAt( nIndex );
|
|
strTmpName = _T("");
|
strFilePath = msgAttach.m_strFilePath;
|
if(strFilePath.IsEmpty())
|
strFilePath = msgAttach.m_strFileName;
|
if(strFilePath.Right(1) == _T("\\"))
|
{
|
strFilePath.TrimRight(_T("\\"));
|
strTmpName = _T("\\");
|
}
|
msgAttach.m_strFileName.TrimRight(_T("\\"));
|
if(msgAttach.m_strFileName.IsEmpty())
|
{
|
msgAttach.m_strFileName = CMBAMDBFun::GetFileName(strFilePath);
|
}
|
if(msgAttach.m_strFileName.IsEmpty())
|
msgAttach.m_strFileName = strFilePath;
|
msgAttach.m_strFileName += strTmpName;
|
msgAttach.InsertRecord( pAConnect );
|
mapAttachment.SetAt(msgAttach.m_strFileID, nValue);
|
|
}
|
pAConnect->Commit();
|
}
|
catch( ... )
|
{
|
pAConnect->Abort();
|
return false;
|
}
|
// Insert Message Property
|
CString strName, strValue;
|
CMsgPropertyItem msgProperty;
|
msgProperty.m_strMsgID = strMsgID;
|
|
nCount = pMsg->m_arMsgPropertys.GetSize();
|
for ( nIndex = 0; nIndex < nCount; nIndex++ )
|
{
|
msgProperty = pMsg->m_arMsgPropertys.GetAt( nIndex );
|
if(msgProperty.m_strName.IsEmpty())
|
continue;
|
if(mapAttachment.Lookup(msgProperty.m_strName, nValue))
|
continue;
|
if ( msgProperty.IsMsgSysAttrib( ) )
|
continue;
|
if ( msgProperty.IsMsgSysAttribDefValue( ) )
|
continue;
|
msgProperty.InsertRecord( pAConnect );
|
}
|
return true;
|
}
|
BOOL CMsgs::DoSaveSyncMsg(CMsgItem *pMsg,bool bIsSendMsg, bool bNeedConfirm)
|
{
|
if ( !pMsg || pMsg->m_strID.IsEmpty() )
|
return false;
|
if( !m_pAConnect || !m_pAConnect->IsOpenDB())
|
return 0;
|
CDBConnect *pAConnect = m_pAConnect->GetDBConnect();
|
|
// ÉèÖÃFolderID
|
if( pMsg->m_nType == AM_MSGTYPE_BROADCAST ||
|
pMsg->m_nType == AM_MSGTYPE_AFFICHE )
|
pMsg->m_nMsgFolder = FOLDER_BROADCAST;
|
CMsgOwnerItem msgOwner;
|
CMsgAttachmentItem msgAttach;
|
CString strMsgID;
|
long nMsgIndex(0);
|
int nIndex;
|
BOOL bRetValue = false;
|
CPerfTimer pt;
|
CString strReceiversInfo;
|
if ( ListSpMsgID( pMsg->m_strID ) != 0 )
|
{
|
return true;
|
}
|
strMsgID = pMsg->m_strID;
|
// Insert Message
|
m_strID = pMsg->m_strID;
|
m_strSourceID = pMsg->m_strSourceID;
|
m_strSubject = pMsg->m_strSubject;
|
m_strSender = pMsg->m_strSender;
|
m_strSenderName = pMsg->m_strSenderName;
|
m_tmDate = pMsg->m_tmDate;
|
m_tmOpenDate = pMsg->m_tmOpenDate;
|
|
m_nType = pMsg->m_nType;
|
m_nMsgFolder = pMsg->m_nMsgFolder;
|
m_strMsgExtType = pMsg->m_strMsgExtType;
|
m_nNeedConfirm = pMsg->m_nNeedConfirm;
|
m_nReadState = pMsg->m_nReadState;
|
m_strAttitudeset = _T("");
|
m_nMsgFlag = pMsg->m_nMsgFlag;
|
m_nMsgExtState = pMsg->m_nMsgExtState;
|
m_nPropertyCount = pMsg->m_nPropertyCount;
|
m_nCharset = pMsg->m_nCharset;
|
|
m_strContentType = pMsg->m_strContentType;
|
m_nContentSize = pMsg->m_nContentSize;
|
m_strContent = pMsg->m_strContent;
|
m_strContentText = pMsg->m_strContentText;
|
m_nAttachCount = pMsg->m_nAttachCount;
|
m_nIsGroupSend = false;
|
m_nIsGroupSend = pMsg->m_nIsGroupSend;
|
m_strReceivers = _T("");
|
m_strReceiverNames = _T("");
|
for ( nIndex = 0; nIndex < pMsg->m_arMsgOwners.GetCount(); nIndex++ )
|
{
|
msgOwner = pMsg->m_arMsgOwners.GetAt( nIndex );
|
m_strReceivers += msgOwner.m_strOwner + _T(";");
|
m_strReceiverNames += msgOwner.m_strOwnerName + _T(";");
|
m_tmOpenDate = msgOwner.m_tmOpenDate;
|
m_strReceiverAttitude = msgOwner.m_strAttitude;
|
break;
|
}
|
m_strReceivers.TrimRight(_T(";"));
|
m_strReceiverNames.TrimRight(_T(";"));
|
pt.Start();
|
InsertRecord( pAConnect, !bIsSendMsg );
|
pt.Stop();
|
pt.Trace( _T("DoSaveSyncMsg Msg\r\n") );
|
if( !bIsSendMsg && ((m_nType == AM_MSGTYPE_MSG && m_strMsgExtType.IsEmpty()) || m_nType == AM_MSGTYPE_GUNGHO))
|
{
|
UpldateLastContactDate( m_strSender,m_strSenderName, CMBAMDBFun::FormatDBTIMEToStr( m_tmDate ),m_strSubject );
|
}
|
return true;
|
}
|
BOOL CMsgs::DoSaveMsg(CMsgItem *pMsg,bool bIsSendMsg, bool bNeedConfirm)
|
{
|
if ( !pMsg || pMsg->m_strID.IsEmpty() )
|
{
|
CString strLog;
|
strLog.Format(_T("DoSaveMsg MsgIDΪ¿Õ£¡"));
|
CMBAMDBFun::WriteDBErrToFile(strLog);
|
return FALSE;
|
}
|
if( !m_pAConnect || !m_pAConnect->IsOpenDB())
|
{
|
CString strLog;
|
strLog.Format(_T("DoSaveMsg Êý¾Ý¿âûÓдò¿ª³É¹¦£¡"));
|
CMBAMDBFun::WriteDBErrToFile(strLog);
|
return FALSE;
|
}
|
CDBConnect *pAConnect = m_pAConnect->GetDBConnect();
|
// ÉèÖÃFolderID
|
if( pMsg->m_nType == AM_MSGTYPE_BROADCAST ||
|
pMsg->m_nType == AM_MSGTYPE_AFFICHE )
|
pMsg->m_nMsgFolder = FOLDER_BROADCAST;
|
if( pMsg->m_nType == AM_MSGTYPE_GUNGHO )
|
pMsg->m_nMsgFolder = FOLDER_GUNGHO;
|
BOOL bBigBatchSend = FALSE;
|
CMsgOwnerItem msgOwner;
|
CMsgAttachmentItem msgAttach;
|
CString strMsgID;
|
long nMsgIndex(0);
|
int nCount, nIndex;
|
BOOL bRetValue = false;
|
CPerfTimer pt;
|
CString strReceiversInfo;
|
|
if ( ListSpMsgID( pMsg->m_strID ) != 0 )
|
{
|
pt.Start();
|
pt.Trace( _T("ListSpMsgID\r\n") );
|
GetData( );
|
if ( pMsg->m_nReadState & MSG_READSTATE_DOWNLOAD )
|
{
|
bRetValue = UpdateMsg( pMsg ,bIsSendMsg);
|
if ( bNeedConfirm )
|
{
|
bRetValue = UpdateMsgOwnerAttitude( pMsg );
|
pt.Stop();
|
return bRetValue;
|
}
|
}
|
pt.Stop();
|
return bRetValue;
|
|
}
|
strMsgID = pMsg->m_strID;
|
// Insert Message
|
m_strID = pMsg->m_strID;
|
m_strSourceID = pMsg->m_strSourceID;
|
m_strSubject = pMsg->m_strSubject;
|
m_strSender = pMsg->m_strSender;
|
m_strSenderName = pMsg->m_strSenderName;
|
m_tmDate = pMsg->m_tmDate;
|
m_tmOpenDate = pMsg->m_tmOpenDate;
|
|
m_nType = pMsg->m_nType;
|
m_nMsgFolder = pMsg->m_nMsgFolder;
|
m_strMsgExtType = pMsg->m_strMsgExtType;
|
m_nNeedConfirm = pMsg->m_nNeedConfirm;
|
m_nReadState = pMsg->m_nReadState;
|
m_strAttitudeset = _T("");
|
m_nMsgFlag = pMsg->m_nMsgFlag;
|
m_nMsgExtState = pMsg->m_nMsgExtState;
|
m_nPropertyCount = pMsg->m_nPropertyCount;
|
m_nCharset = pMsg->m_nCharset;
|
|
m_strContentType = pMsg->m_strContentType;
|
m_nContentSize = pMsg->m_nContentSize;
|
m_strContent = pMsg->m_strContent;
|
m_strContentText = pMsg->m_strContentText;
|
if ( pMsg->m_arMsgAttachments.GetSize() > 0 )
|
m_nAttachCount = pMsg->m_arMsgAttachments.GetSize();
|
else
|
m_nAttachCount = pMsg->m_nAttachCount;
|
nCount = pMsg->m_arMsgOwners.GetSize();
|
if(nCount > 1)
|
pMsg->m_nIsGroupSend = true;
|
else
|
pMsg->m_nIsGroupSend = false;
|
if(nCount > 100)
|
bBigBatchSend = TRUE;
|
m_nIsGroupSend = pMsg->m_nIsGroupSend;
|
m_strSender.MakeLower();
|
m_strReceivers = _T("");
|
m_strReceiverNames = _T("");
|
if(m_nIsGroupSend )
|
{
|
if(!bIsSendMsg)
|
{
|
for ( nIndex = 0; nIndex < nCount; nIndex++ )
|
{
|
msgOwner = pMsg->m_arMsgOwners.GetAt( nIndex );
|
m_strReceivers += msgOwner.m_strOwner + _T(";");
|
m_strReceiverNames += msgOwner.m_strOwnerName + _T(";");
|
}
|
}
|
else
|
{
|
for ( nIndex = 0; nIndex < nCount; nIndex++ )
|
{
|
msgOwner = pMsg->m_arMsgOwners.GetAt( nIndex );
|
m_strReceivers += msgOwner.m_strOwner + _T(";");
|
m_strReceiverNames += msgOwner.m_strOwnerName + _T(";");
|
m_tmOpenDate =msgOwner.m_tmOpenDate;
|
m_strReceiverAttitude = msgOwner.m_strAttitude;
|
if(nIndex > 4)
|
break;
|
}
|
}
|
}
|
else
|
{
|
m_strReceivers = pMsg->m_strReceivers;
|
m_strReceiverNames = pMsg->m_strReceiverNames;
|
m_tmOpenDate = pMsg->m_tmOpenDate;
|
m_strReceiverAttitude = pMsg->m_strReceiverAttitude;
|
}
|
m_strReceivers.TrimRight(_T(";"));
|
m_strReceiverNames.TrimRight(_T(";"));
|
m_strReceivers.MakeLower();
|
try{
|
pt.Start();
|
BOOL bRet2= InsertRecord( pAConnect, !bIsSendMsg );
|
pt.Stop();
|
pt.Trace( _T("DoSaveMsg Msg\r\n") );
|
if(!bRet2)
|
{
|
CString strLog;
|
strLog.Format(_T("DoSaveMsg ²åÈëÏûϢʧ°Ü%s-%s£¡"),m_strID,m_strSubject);
|
CMBAMDBFun::WriteDBErrToFile(strLog);
|
return FALSE;
|
}
|
|
}
|
catch( ... )
|
{
|
CString strLog;
|
strLog.Format(_T("DoSaveMsg ²åÈëÏûÏ¢Òì³£%s-%s£¡"),m_strID,m_strSubject);
|
CMBAMDBFun::WriteDBErrToFile(strLog);
|
return FALSE;
|
}
|
if( (m_nType == AM_MSGTYPE_MSG && m_strMsgExtType.IsEmpty()) || m_nType == AM_MSGTYPE_GUNGHO|| m_nType == AM_MSGTYPE_BROADCAST)
|
{
|
if( !bIsSendMsg)
|
{
|
UpldateLastContactDate( m_strSender,m_strSenderName, CMBAMDBFun::FormatDBTIMEToStr( m_tmDate ),m_strSubject );
|
}
|
else
|
{
|
if( !pMsg->m_nIsGroupSend)
|
UpldateLastContactDate(m_strReceivers,m_strReceiverNames, CMBAMDBFun::FormatDBTIMEToStr( m_tmDate ),m_strSubject );
|
}
|
}
|
CString strLog;
|
strLog.Format(_T("´æ´¢½ÓÊÜÓû§£º%s"),pMsg->m_strSubject);
|
if(bBigBatchSend)
|
CMBAMDBFun::WriteDBErrToFile( strLog );
|
// Insert Message Receiver
|
msgOwner.m_strMsgID = strMsgID;
|
nCount = pMsg->m_arMsgOwners.GetSize();
|
if( nCount == 0 )
|
{
|
// ÔÚµÚÒ»´ÎÏûϢ֪ͨʱ,ûÓнÓÊÕ×ÅÐÅÏ¢
|
}
|
else
|
{
|
try
|
{
|
if(pMsg->m_nIsGroupSend)
|
{
|
if( bIsSendMsg )
|
{
|
pAConnect->StartTransaction();
|
for ( nIndex = 0; nIndex < nCount; nIndex++ )
|
{
|
msgOwner = pMsg->m_arMsgOwners.GetAt( nIndex );
|
msgOwner.m_strMsgID = pMsg->m_strID;
|
msgOwner.InsertRecord( pAConnect );
|
}
|
pAConnect->Commit();
|
if(nCount < 10)
|
{
|
for ( nIndex = 0; nIndex < nCount; nIndex++ )
|
{
|
msgOwner = pMsg->m_arMsgOwners.GetAt( nIndex );
|
msgOwner.m_strOwner.MakeLower();
|
UpldateLastContactDate( msgOwner.m_strOwner,msgOwner.m_strOwnerName, CMBAMDBFun::FormatDBTIMEToStr( m_tmDate ),m_strSubject );
|
}
|
}
|
}
|
}
|
/*else
|
{
|
msgOwner.m_strMsgID = pMsg->m_strID;
|
msgOwner.m_strOwner = m_strReceivers;
|
msgOwner.m_strOwnerName = m_strReceiverNames;
|
msgOwner.m_tmOpenDate = m_tmOpenDate;
|
msgOwner.m_nOwnerType = 0;
|
msgOwner.m_strAttitude = m_strReceiverAttitude;
|
msgOwner.InsertRecord( pAConnect );
|
}*/
|
}
|
catch( ... )
|
{
|
pAConnect->Abort();
|
return false;
|
}
|
}
|
strLog.Format(_T("´æ´¢¸½¼þ£º%s"),pMsg->m_strSubject);
|
if(bBigBatchSend)
|
CMBAMDBFun::WriteDBErrToFile( strLog );
|
// Insert Message Attachment
|
msgAttach.m_strMsgID = strMsgID;
|
CString strPath;
|
CString strTmpName;
|
int nValue = 1;
|
CMapStringToInt mapAttachment;
|
|
try{
|
pAConnect->StartTransaction();
|
mapAttachment.RemoveAll();
|
nCount = pMsg->m_arMsgAttachments.GetSize();
|
for ( nIndex = 0; nIndex < nCount; nIndex++ )
|
{
|
msgAttach = pMsg->m_arMsgAttachments.GetAt( nIndex );
|
strTmpName = _T("");
|
strPath = msgAttach.m_strFilePath;
|
if(strPath.IsEmpty())
|
strPath = msgAttach.m_strFileName;
|
if(strPath.Right(1) == _T("\\"))
|
{
|
strPath.TrimRight(_T("\\"));
|
strTmpName = _T("\\");
|
}
|
msgAttach.m_strMsgID = strMsgID;
|
msgAttach.m_strFileName.TrimRight(_T("\\"));
|
if(msgAttach.m_strFileName.IsEmpty())
|
{
|
msgAttach.m_strFileName = CMBAMDBFun::GetFileName(strPath);
|
}
|
if(msgAttach.m_strFileName.IsEmpty())
|
msgAttach.m_strFileName = strPath;
|
msgAttach.m_strFileName += strTmpName;
|
msgAttach.InsertRecord( pAConnect);
|
mapAttachment.SetAt(msgAttach.m_strFileID, nValue);
|
}
|
pAConnect->Commit();
|
}
|
catch( ... )
|
{
|
pAConnect->Abort();
|
return false;
|
}
|
strLog.Format(_T("´æ´¢ÊôÐÔ£º%s"),pMsg->m_strSubject);
|
if(bBigBatchSend)
|
CMBAMDBFun::WriteDBErrToFile( strLog );
|
// Insert Message Property
|
CString strName, strValue;
|
CMsgPropertyItem msgProperty;
|
msgProperty.m_strMsgID = strMsgID;
|
|
nCount = pMsg->m_arMsgPropertys.GetSize();
|
for ( nIndex = 0; nIndex < nCount; nIndex++ )
|
{
|
msgProperty = pMsg->m_arMsgPropertys.GetAt( nIndex );
|
|
|
if(mapAttachment.Lookup(msgProperty.m_strName, nValue))
|
continue;
|
if ( msgProperty.IsMsgSysAttrib( ) )
|
continue;
|
if ( msgProperty.IsMsgSysAttribDefValue( ) )
|
continue;
|
msgProperty.m_strMsgID = strMsgID;
|
msgProperty.InsertRecord( pAConnect );
|
}
|
return true;
|
}
|
BOOL CMsgs::DoSaveSendMulMsg( CMsgItem *pMsg )
|
{
|
if ( !pMsg || pMsg->m_strID.IsEmpty() )
|
return false;
|
if( !m_pAConnect || !m_pAConnect->IsOpenDB())
|
return 0;
|
CDBConnect *pAConnect = m_pAConnect->GetDBConnect();
|
CMsgOwnerItem msgOwner;
|
CMsgAttachmentItem msgAttach;
|
CString strMsgID;
|
|
long nMsgIndex(0);
|
int nCount, nIndex;
|
BOOL bRetValue = false;
|
CPerfTimer pt;
|
CString strReceiversInfo;
|
|
strMsgID = pMsg->m_strID;
|
// Insert Message
|
m_strID = pMsg->m_strID;
|
m_strSourceID = pMsg->m_strSourceID;
|
m_strSubject = pMsg->m_strSubject;
|
m_strSender = pMsg->m_strSender;
|
m_strSenderName = pMsg->m_strSenderName;
|
m_tmDate = pMsg->m_tmDate;
|
m_nType = pMsg->m_nType;
|
m_nMsgFolder = pMsg->m_nMsgFolder;
|
m_strMsgExtType = pMsg->m_strMsgExtType;
|
m_nNeedConfirm = pMsg->m_nNeedConfirm;
|
m_nReadState = pMsg->m_nReadState;
|
m_strAttitudeset = _T("");
|
m_nMsgFlag = pMsg->m_nMsgFlag;
|
m_nMsgExtState = pMsg->m_nMsgExtState;
|
m_nPropertyCount = pMsg->m_nPropertyCount;
|
m_nCharset = pMsg->m_nCharset;
|
m_strContentType = pMsg->m_strContentType;
|
m_nContentSize = pMsg->m_strContent.GetLength();
|
m_strContent = pMsg->m_strContent;
|
m_strContentText = pMsg->m_strContentText;
|
if ( pMsg->m_arMsgAttachments.GetSize() > 0 )
|
m_nAttachCount = pMsg->m_arMsgAttachments.GetSize();
|
else
|
m_nAttachCount = pMsg->m_nAttachCount;
|
nCount = pMsg->m_arMsgOwners.GetSize();
|
pMsg->m_nIsGroupSend = true;
|
m_nIsGroupSend = pMsg->m_nIsGroupSend;
|
m_strReceivers = _T("");
|
m_strReceiverNames = _T("");
|
for ( nIndex = 0; nIndex < nCount; nIndex++ )
|
{
|
msgOwner = pMsg->m_arMsgOwners.GetAt( nIndex );
|
m_strReceivers += msgOwner.m_strOwner + _T(";");
|
m_strReceiverNames += msgOwner.m_strOwnerName + _T(";");
|
if(nIndex > 4)
|
break;
|
}
|
m_tmOpenDate = COleDateTime( 1971, 1, 1, 0, 0, 0 );
|
m_strReceivers.TrimRight(_T(";"));
|
m_strReceiverNames.TrimRight(_T(";"));
|
pt.Start();
|
InsertRecord( pAConnect,true);
|
pt.Stop();
|
pt.Trace( _T("DoSaveSendMulMsg Msg\r\n") );
|
// Insert Message Receiver
|
msgOwner.m_strMsgID = strMsgID;
|
nCount = pMsg->m_arMsgOwners.GetSize();
|
if( nCount == 0 )
|
{
|
// ÔÚµÚÒ»´ÎÏûϢ֪ͨʱ,ûÓнÓÊÕ×ÅÐÅÏ¢
|
}
|
else
|
{
|
try
|
{
|
if(pMsg->m_nIsGroupSend)
|
{
|
pAConnect->StartTransaction();
|
for ( nIndex = 0; nIndex < nCount; nIndex++ )
|
{
|
msgOwner = pMsg->m_arMsgOwners.GetAt( nIndex );
|
msgOwner.m_strMsgID = strMsgID;
|
msgOwner.InsertRecord( pAConnect );
|
//UpldateLastContactDate(msgOwner.m_strOwner,msgOwner.m_strOwnerName, CMBAMDBFun::FormatDBTIMEToStr( m_tmDate ) );
|
}
|
pAConnect->Commit();
|
}
|
/*else
|
{
|
msgOwner.m_strMsgID = pMsg->m_strID;
|
msgOwner.m_strOwner = m_strReceivers;
|
msgOwner.m_strOwnerName = m_strReceiverNames;
|
msgOwner.m_tmOpenDate = m_tmOpenDate;
|
msgOwner.m_nOwnerType = 0;
|
msgOwner.m_strAttitude = m_strReceiverAttitude;
|
msgOwner.InsertRecord( pAConnect );
|
}*/
|
}
|
catch( ... )
|
{
|
pAConnect->Abort();
|
return false;
|
}
|
}
|
// Insert Message Attachment
|
CString strPath;
|
CString strTmpName;
|
CMapStringToInt mapAttachment;
|
int nValue = 1;
|
try
|
{
|
pAConnect->StartTransaction();
|
mapAttachment.RemoveAll();
|
nCount = pMsg->m_arMsgAttachments.GetSize();
|
for ( nIndex = 0; nIndex < nCount; nIndex++ )
|
{
|
msgAttach = pMsg->m_arMsgAttachments.GetAt( nIndex );
|
strTmpName = _T("");
|
strPath = msgAttach.m_strFilePath;
|
if(strPath.IsEmpty())
|
strPath = msgAttach.m_strFileName;
|
if(strPath.Right(1) == _T("\\"))
|
{
|
strPath.TrimRight(_T("\\"));
|
strTmpName = _T("\\");
|
}
|
msgAttach.m_strMsgID = strMsgID;
|
msgAttach.m_strFileName.TrimRight(_T("\\"));
|
if(msgAttach.m_strFileName.IsEmpty())
|
{
|
msgAttach.m_strFileName = CMBAMDBFun::GetFileName(strPath);
|
}
|
if(msgAttach.m_strFileName.IsEmpty())
|
msgAttach.m_strFileName = strPath;
|
msgAttach.m_strFileName += strTmpName;
|
msgAttach.InsertRecord( pAConnect);
|
mapAttachment.SetAt(msgAttach.m_strFileID,nValue);
|
}
|
pAConnect->Commit();
|
}
|
catch( ... )
|
{
|
pAConnect->Abort();
|
return false;
|
}
|
CString strName, strValue;
|
CMsgPropertyItem msgProperty;
|
msgProperty.m_strMsgID = strMsgID;
|
|
nCount = pMsg->m_arMsgPropertys.GetSize();
|
for ( nIndex = 0; nIndex < nCount; nIndex++ )
|
{
|
msgProperty = pMsg->m_arMsgPropertys.GetAt( nIndex );
|
|
if(mapAttachment.Lookup(msgProperty.m_strName, nValue))
|
continue;
|
if ( msgProperty.IsMsgSysAttrib( ) )
|
continue;
|
if ( msgProperty.IsMsgSysAttribDefValue( ) )
|
continue;
|
msgProperty.m_strMsgID = strMsgID;
|
msgProperty.InsertRecord( pAConnect );
|
}
|
return true;
|
}
|
|
long CMsgs::ListRecordCount( )
|
{
|
CString strTempSQL;
|
if(m_strSQL.IsEmpty())
|
return m_ARecordSet.GetRecordCount( );
|
else
|
{
|
strTempSQL.Format(_T(" SELECT COUNT(*) FROM ( %s)T"), m_strSQL);
|
long nTempValue = 0;
|
if( !m_pAConnect || !m_pAConnect->IsOpenDB())
|
return nTempValue;
|
CDBRecord ARecordset;
|
try
|
{
|
ARecordset.Open( m_pAConnect->GetDBConnect(), strTempSQL );
|
while ( S_OK == ARecordset.MoveNext() )
|
{
|
ARecordset.GetValue( 1, nTempValue );
|
break;
|
}
|
}
|
catch ( CDBSQliteException ex )
|
{
|
CString strError;
|
|
strError = (LPCTSTR)ex.GetErrInfo( );
|
return nTempValue;
|
}
|
return nTempValue;
|
}
|
}
|
|
int CMsgs::ListTalkingAllMsg( CString strLogin, CString strUser2, BOOL bTimeAsc)
|
{ // ʹÓÃÕâ¸öº¯Êým_nReadedÎÞЧ
|
CString strSQL;
|
CString strStartDate;
|
CString strEndDate;
|
CString strSQLTempM;
|
int nCount;
|
CString strSort;
|
CString strSQLTemp2;
|
|
strLogin.MakeLower();
|
strUser2.MakeLower();
|
m_nListMsgType = LISTMSG_TYPE_CHAT;
|
//strSQL = _T("PRAGMA synchronous = OFF; ");
|
//CDBSQLiteCommFun::RunSQL( strSQL, m_pAConnect->GetDBConnect());
|
//strSQL = _T("PRAGMA temp_store = MEMORY;");
|
//CDBSQLiteCommFun::RunSQL( strSQL, m_pAConnect->GetDBConnect());
|
|
//CMBAMDBFun::WriteDBErrToFile(_T("CMsgs::ListTalking 1"));
|
if ( m_tmStartDate.GetYear() > 1970 || m_tmEndDate.GetYear() > 1970 )
|
{
|
if ( m_tmEndDate.GetYear() == 1970 )
|
m_tmEndDate = COleDateTime::GetCurrentTime( );
|
|
strStartDate = CMBAMDBFun::FormatDBTIMEToStr( m_tmStartDate );
|
strEndDate = CMBAMDBFun::FormatDBTIMEToStr( m_tmEndDate );
|
|
strSQLTempM.Format( _T(" AND m.T_C6 >= '%s' AND m.T_C6 <= '%s'"), strStartDate, strEndDate );
|
}
|
//strSQLTemp2.Format( _T(" AND m.S_C22 IN('%s','%s' ,'%s')"), CONTYPE_TEXT_TEXT, CONTYPE_TEXT_XML, CONTYPE_TEXT_PLAIN );
|
strSQLTemp2 = _T("");
|
if(bTimeAsc)
|
strSort = _T(" ASC");
|
else
|
strSort = _T(" DESC");
|
|
if(strLogin == strUser2)
|
{
|
strSQL.Format( _T("SELECT m.G_C1, m.T_C6 \
|
FROM TN_STK_MSG m INNER JOIN TN_STK_MSGOWNER o ON o.G_C1 = m.G_C1 WHERE \
|
m.S_C4 = '%s' AND o.S_C2 = '%s' AND m.C_C17='1' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s \
|
UNION \
|
SELECT m.G_C1, m.T_C6 \
|
FROM TN_STK_MSG m WHERE \
|
m.S_C4 = '%s' AND m.S_C18 = '%s' AND m.C_C17='0' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s \
|
ORDER BY m.T_C6 %s"), strLogin, strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST, strSQLTempM,strLogin, strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST, strSQLTempM, strSort );
|
}
|
else
|
{
|
strSQL.Format( _T("SELECT m.G_C1, m.T_C6 \
|
FROM TN_STK_MSG m INNER JOIN TN_STK_MSGOWNER o ON o.G_C1 = m.G_C1 WHERE \
|
m.S_C4 = '%s' AND o.S_C2 = '%s' AND m.C_C17='1' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s \
|
UNION \
|
SELECT m.G_C1, m.T_C6 \
|
FROM TN_STK_MSG m WHERE \
|
m.S_C4 = '%s' AND m.S_C18 = '%s' AND m.C_C17='0' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s \
|
UNION \
|
SELECT m.G_C1,m.T_C6 \
|
FROM TN_STK_MSG m WHERE \
|
m.S_C4 = '%s' AND (m.N_C11>2 AND m.N_C11<>64) AND (((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s \
|
ORDER BY m.T_C6 %s"), strLogin, strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST, strSQLTempM,strLogin, strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST, strSQLTempM,strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST,strSQLTempM, strSort );
|
}
|
DWORD dwTickCount;
|
DWORD dwTickCount2;
|
DWORD dwInterset;
|
DWORD dwInterset2;
|
m_strSQL = strSQL;
|
if( !m_pAConnect || !m_pAConnect->IsOpenDB())
|
return 0;
|
try
|
{
|
dwTickCount = ::GetTickCount();
|
nCount = ListRecordCount();
|
dwTickCount2 = ::GetTickCount();
|
dwInterset = dwTickCount2 - dwTickCount;
|
//CDBSQLiteCommFun::RunSQL( _T("BEGIN"), m_pAConnect->GetDBConnect());
|
//CMBAMDBFun::WriteDBErrToFile(_T("CMsgs::ListTalking 2"));
|
m_ARecordSet.Close( );
|
m_ARecordSet.Open( m_pAConnect->GetDBConnect(), strSQL );
|
dwTickCount2 = ::GetTickCount();
|
dwInterset2 = dwTickCount2 - dwTickCount;
|
//m_ARecordSet.MoveFirst();
|
//CMBAMDBFun::WriteDBErrToFile(_T("CMsgs::ListTalking 3"));
|
//nCount = m_ARecordSet.GetRecordCount( );
|
|
//CMBAMDBFun::WriteDBErrToFile(_T("CMsgs::ListTalking 4"));
|
//CDBSQLiteCommFun::RunSQL( _T("COMMIT"), m_pAConnect->GetDBConnect());
|
}
|
catch( CDBSQliteException ex )
|
{
|
CString strError;
|
|
strError = (LPCTSTR)ex.GetErrInfo( );
|
|
return 0;
|
}
|
//strSQL = _T("PRAGMA synchronous = FULL; ");
|
//strSQL = _T("PRAGMA temp_store = DEFAULT; ");
|
//CDBSQLiteCommFun::RunSQL( strSQL, m_pAConnect->GetDBConnect());
|
CString strLog;
|
//strLog.Format(_T("CMsgs::ListTalking ²éѯʱ¼ä(%d-%d)"),dwInterset,dwInterset2);
|
//CMBAMDBFun::WriteDBErrToFile(strLog);
|
return nCount;
|
}
|
|
int CMsgs::ListSearchingTalkingAllMsg( CString strLogin,CString strUser2,CString strKey, BOOL bTimeAsc )
|
{
|
CString strSQL;
|
CString strStartDate;
|
CString strEndDate;
|
CString strSQLTempM;
|
int nCount;
|
CString strSort;
|
CString strTemp;
|
// CString strSQLTempAttach;
|
|
strLogin.MakeLower();
|
strUser2.MakeLower();
|
if ( m_tmStartDate.GetYear() > 1970 || m_tmEndDate.GetYear() > 1970 )
|
{
|
if ( m_tmEndDate.GetYear() == 1970 )
|
m_tmEndDate = COleDateTime::GetCurrentTime( );
|
|
strStartDate = CMBAMDBFun::FormatDBTIMEToStr( m_tmStartDate );
|
strEndDate = CMBAMDBFun::FormatDBTIMEToStr( m_tmEndDate );
|
|
strSQLTempM.Format( _T(" AND m.T_C6 >= '%s' AND m.T_C6 <= '%s'"), strStartDate, strEndDate );
|
}
|
if( !strKey.IsEmpty())
|
strTemp.Format( _T("AND m.S_C25 LIKE '%%%s%%' "), strKey );
|
if(bTimeAsc)
|
strSort = _T(" ASC");
|
else
|
strSort = _T(" DESC");
|
|
if(strKey.IsEmpty())
|
{
|
if(strLogin == strUser2)
|
{
|
strSQL.Format( _T("SELECT m.G_C1, m.T_C6 \
|
FROM TN_STK_MSG m INNER JOIN TN_STK_MSGOWNER o ON o.G_C1 = m.G_C1 WHERE \
|
m.S_C4 = '%s' AND o.S_C2 = '%s' AND m.C_C17='1' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s \
|
UNION \
|
SELECT m.G_C1, m.T_C6 \
|
FROM TN_STK_MSG m WHERE \
|
m.S_C4 = '%s' AND m.S_C18 = '%s' AND m.C_C17='0' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s \
|
ORDER BY m.T_C6 %s"), strLogin, strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST, strSQLTempM, strLogin, strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST, strSQLTempM, strSort );
|
}
|
else
|
{
|
strSQL.Format( _T("SELECT m.G_C1, m.T_C6 \
|
FROM TN_STK_MSG m INNER JOIN TN_STK_MSGOWNER o ON o.G_C1 = m.G_C1 WHERE \
|
m.S_C4 = '%s' AND o.S_C2 = '%s' AND m.C_C17='1' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s \
|
UNION \
|
SELECT m.G_C1, m.T_C6 \
|
FROM TN_STK_MSG m WHERE \
|
m.S_C4 = '%s' AND m.S_C18 = '%s' AND m.C_C17='0' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s \
|
UNION \
|
SELECT m.G_C1,m.T_C6 \
|
FROM TN_STK_MSG m WHERE \
|
m.S_C4 = '%s' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s \
|
ORDER BY m.T_C6 %s"), strLogin, strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST, strSQLTempM, strLogin, strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST, strSQLTempM,strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST,strSQLTempM, strSort );
|
}
|
}
|
else
|
{
|
if(strLogin == strUser2)
|
{
|
strSQL.Format( _T("SELECT ST.G_C1,ST.T_C6,ST.S_C25 \
|
FROM (SELECT m.G_C1, m.T_C6,m.S_C25 \
|
FROM TN_STK_MSG m INNER JOIN TN_STK_MSGOWNER o ON o.G_C1 = m.G_C1 WHERE \
|
m.S_C4 = '%s' AND o.S_C2 = '%s' AND m.C_C17='1' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s\
|
UNION \
|
SELECT m.G_C1, m.T_C6,m.S_C25 \
|
FROM TN_STK_MSG m WHERE \
|
m.S_C4 = '%s' AND m.S_C18 = '%s' AND m.C_C17='0' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s )ST \
|
WHERE ST.S_C25 LIKE '%%%s%%' \
|
ORDER BY ST.T_C6 %s"), strLogin, strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST, strSQLTempM, strLogin, strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST, strSQLTempM,strKey,strSort );
|
}
|
else
|
{
|
strSQL.Format( _T("SELECT ST.G_C1,ST.T_C6,ST.S_C25 \
|
FROM (SELECT m.G_C1, m.T_C6,m.S_C25 \
|
FROM TN_STK_MSG m INNER JOIN TN_STK_MSGOWNER o ON o.G_C1 = m.G_C1 WHERE \
|
m.S_C4 = '%s' AND o.S_C2 = '%s' AND m.C_C17='1' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s\
|
UNION \
|
SELECT m.G_C1, m.T_C6,m.S_C25 \
|
FROM TN_STK_MSG m WHERE \
|
m.S_C4 = '%s' AND m.S_C18 = '%s' AND m.C_C17='0' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s\
|
UNION \
|
SELECT m.G_C1,m.T_C6,m.S_C25 \
|
FROM TN_STK_MSG m WHERE \
|
m.S_C4 = '%s'AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s )ST \
|
WHERE ST.S_C25 LIKE '%%%s%%' \
|
ORDER BY ST.T_C6 %s"), strLogin, strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST, strSQLTempM, strLogin, strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST, strSQLTempM,strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST,strSQLTempM,strKey,strSort );
|
}
|
}
|
m_strSQL = strSQL;
|
m_nListMsgType = LISTMSG_TYPE_CHAT;
|
if( !m_pAConnect || !m_pAConnect->IsOpenDB())
|
return 0;
|
try
|
{
|
nCount = ListRecordCount();
|
m_ARecordSet.Close( );
|
m_ARecordSet.Open( m_pAConnect->GetDBConnect(), strSQL );
|
//m_ARecordSet.MoveFirst();
|
//nCount = m_ARecordSet.GetRecordCount( );
|
//nCount = 0;
|
}
|
catch( CDBSQliteException ex )
|
{
|
CString strError;
|
|
strError = (LPCTSTR)ex.GetErrInfo( );
|
|
return 0;
|
}
|
|
return nCount;
|
}
|
|
|
int CMsgs::ListReceiveBoxMsg( CString strUser,CString strUserName, CString strContentKey, int nAttach )
|
{ // ʹÓÃÕâ¸öº¯Êým_nReadedÎÞЧ
|
CString strSQL;
|
CString strStartDate;
|
CString strEndDate;
|
CString strSQLWhere= _T("");
|
int nCount;
|
CString strSQLTemp = _T("");
|
CDBRecord ARecordSet;
|
|
strUser.MakeLower();
|
strSQLWhere.Format(_T("m.N_C8=%d "), MANAGER_FOLDER_BOX_IN );
|
if( !strContentKey.IsEmpty())
|
{
|
strSQLTemp.Format( _T(" AND (m.S_C3 LIKE '%%%s%%' OR m.S_C25 LIKE '%%%s%%') "), strContentKey,strContentKey );
|
strSQLWhere += strSQLTemp;
|
}
|
if ( m_tmStartDate.GetYear() > 1970 )
|
{
|
strStartDate = CMBAMDBFun::FormatDBTIMEToStr( m_tmStartDate );
|
if ( m_tmEndDate > m_tmStartDate)
|
{
|
strEndDate = CMBAMDBFun::FormatDBTIMEToStr( m_tmEndDate );
|
strSQLTemp.Format( _T(" AND m.T_C6 >= '%s' AND m.T_C6 <= '%s'"), strStartDate, strEndDate );
|
}
|
else
|
{
|
strSQLTemp.Format( _T(" AND m.T_C6 >= '%s'"), strStartDate );
|
}
|
strSQLWhere += strSQLTemp;
|
}
|
else
|
{
|
if ( m_tmEndDate.GetYear() > 1970 )
|
{
|
strEndDate = CMBAMDBFun::FormatDBTIMEToStr( m_tmEndDate );
|
strSQLTemp.Format( _T(" AND m.T_C6 <= '%s'"), strEndDate );
|
strSQLWhere += strSQLTemp;
|
}
|
}
|
|
if(nAttach > 0)
|
{
|
strSQLTemp.Format( _T(" AND m.N_C12>0") );
|
strSQLWhere += strSQLTemp;
|
}
|
else if(nAttach == 0)
|
{
|
strSQLTemp.Format( _T(" AND m.N_C12=0") );
|
strSQLWhere += strSQLTemp;
|
}
|
strSQLTemp.Format( _T(" AND m.S_C10='' ") );
|
strSQLWhere += strSQLTemp;
|
if( !strUser.IsEmpty())
|
{
|
if(strUserName.IsEmpty() )
|
{
|
strSQLTemp.Format( _T("AND (m.S_C4 LIKE '%s%%' OR m.S_C5 LIKE '%s%%') "), strUser,strUser );
|
}
|
else
|
strSQLTemp.Format( _T("AND m.S_C4='%s' "), strUser );
|
strSQLWhere += strSQLTemp;
|
}
|
strSQL.Format( _T("SELECT m.G_C1, m.T_C6 FROM TN_STK_MSG m Where %s ORDER BY m.T_C6 DESC "),strSQLWhere );
|
m_strSQL = strSQL;
|
m_nListMsgType = LISTMSG_TYPE_MAGADMIN;
|
if( !m_pAConnect || !m_pAConnect->IsOpenDB())
|
return 0;
|
try
|
{
|
nCount = ListRecordCount();
|
m_ARecordSet.Close( );
|
m_ARecordSet.Open( m_pAConnect->GetDBConnect(), strSQL );
|
}
|
catch( CDBSQliteException ex )
|
{
|
CString strError;
|
|
strError = (LPCTSTR)ex.GetErrInfo( );
|
|
return 0;
|
}
|
return nCount;
|
}
|
|
int CMsgs::ListSendBoxMsg( CString strUser,CString strUserName, CString strContentKey, int nAttach )
|
{ // ʹÓÃÕâ¸öº¯Êým_nReadedÎÞЧ
|
CString strSQL;
|
CString strStartDate;
|
CString strEndDate;
|
CString strSQLWhere= _T("");
|
int nCount;
|
CString strSQLTemp = _T("");
|
CDBRecord ARecordSet;
|
CString strField = _T("m.G_C1, m.T_C6");
|
|
strUser.MakeLower();
|
strSQLWhere.Format(_T("m.N_C8=%d "), MANAGER_FOLDER_BOX_OUT );
|
if( !strContentKey.IsEmpty())
|
{
|
strSQLTemp.Format( _T(" AND (m.S_C3 LIKE '%%%s%%' OR m.S_C25 LIKE '%%%s%%') "), strContentKey,strContentKey );
|
strSQLWhere += strSQLTemp;
|
}
|
if ( m_tmStartDate.GetYear() > 1970 )
|
{
|
strStartDate = CMBAMDBFun::FormatDBTIMEToStr( m_tmStartDate );
|
if ( m_tmEndDate > m_tmStartDate)
|
{
|
strEndDate = CMBAMDBFun::FormatDBTIMEToStr( m_tmEndDate );
|
strSQLTemp.Format( _T(" AND m.T_C6 >= '%s' AND m.T_C6 <= '%s'"), strStartDate, strEndDate );
|
}
|
else
|
{
|
strSQLTemp.Format( _T(" AND m.T_C6 >= '%s'"), strStartDate );
|
}
|
strSQLWhere += strSQLTemp;
|
}
|
else
|
{
|
if ( m_tmEndDate.GetYear() > 1970 )
|
{
|
strEndDate = CMBAMDBFun::FormatDBTIMEToStr( m_tmEndDate );
|
strSQLTemp.Format( _T(" AND m.T_C6 <= '%s'"), strEndDate );
|
strSQLWhere += strSQLTemp;
|
}
|
}
|
|
if(nAttach > 0)
|
{
|
strSQLTemp.Format( _T(" AND m.N_C12>0") );
|
strSQLWhere += strSQLTemp;
|
}
|
else if(nAttach == 0)
|
{
|
strSQLTemp.Format( _T(" AND m.N_C12=0") );
|
strSQLWhere += strSQLTemp;
|
}
|
strSQLTemp.Format( _T(" AND m.S_C10='' ") );
|
strSQLWhere += strSQLTemp;
|
if( strUser.IsEmpty())
|
{
|
strSQL.Format( _T("SELECT %s FROM TN_STK_MSG m Where %s ORDER BY m.T_C6 DESC "),strField,strSQLWhere );
|
}
|
else
|
{
|
if(strUserName.IsEmpty() )
|
{
|
strSQL.Format( _T("SELECT A.G_C1, A.T_C6 ")
|
_T("FROM TN_STK_MSG A ")
|
_T("INNER JOIN (")
|
_T("SELECT AA.G_C1 ")
|
_T("FROM ( ")
|
_T("SELECT m.G_C1, m.C_C17,m.S_C18,m.S_C19 ")
|
_T("FROM TN_STK_MSG m Where %s ")
|
_T(") AA ")
|
_T("LEFT JOIN TN_STK_MSGOWNER BB ")
|
_T("ON AA.G_C1 = BB.G_C1 ")
|
_T("WHERE (AA.C_C17='0' AND (AA.S_C18 LIKE '%s%%' OR AA.S_C19 LIKE '%s%%') ) ")
|
_T("OR ( AA.C_C17='1' AND (BB.S_C2 LIKE '%s%%' OR BB.S_C3 LIKE '%s%%') ) ")
|
_T("GROUP BY AA.G_C1 ")
|
_T(") B ")
|
_T("ON A.G_C1 = B.G_C1 ")
|
_T("ORDER BY A.T_C6 DESC "),
|
strSQLWhere, strUser,strUser, strUser,strUser );
|
}
|
else
|
{
|
strSQL.Format( _T("SELECT A.G_C1, A.T_C6 ")
|
_T("FROM TN_STK_MSG A ")
|
_T("INNER JOIN (")
|
_T("SELECT AA.G_C1 ")
|
_T("FROM ( ")
|
_T("SELECT m.G_C1, m.C_C17,m.S_C18 ")
|
_T("FROM TN_STK_MSG m Where %s ")
|
_T(") AA ")
|
_T("LEFT JOIN TN_STK_MSGOWNER BB ")
|
_T("ON AA.G_C1 = BB.G_C1 ")
|
_T("WHERE (AA.C_C17='0' AND AA.S_C18='%s' ) ")
|
_T("OR ( AA.C_C17='1' AND BB.S_C2='%s' ) ")
|
_T("GROUP BY AA.G_C1 ")
|
_T(") B ")
|
_T("ON A.G_C1 = B.G_C1 ")
|
_T("ORDER BY A.T_C6 DESC "),
|
strSQLWhere, strUser, strUser );
|
}
|
}
|
m_strSQL = strSQL;
|
m_nListMsgType = LISTMSG_TYPE_MAGADMIN;
|
if( !m_pAConnect || !m_pAConnect->IsOpenDB())
|
return 0;
|
try
|
{
|
nCount = ListRecordCount();
|
m_ARecordSet.Close( );
|
m_ARecordSet.Open( m_pAConnect->GetDBConnect(), strSQL );
|
}
|
catch( CDBSQliteException ex )
|
{
|
CString strError;
|
|
strError = (LPCTSTR)ex.GetErrInfo( );
|
|
return 0;
|
}
|
return nCount;
|
}
|
|
int CMsgs::ListFavBoxMsg( CString strUser,CString strUserName, CString strContentKey, int nFavFolder )
|
{ // ʹÓÃÕâ¸öº¯Êým_nReadedÎÞЧ
|
CString strSQL;
|
CString strStartDate;
|
CString strEndDate;
|
CString strSQLWhere= _T("");
|
int nCount;
|
CString strSQLTemp = _T("");
|
CDBRecord ARecordSet;
|
|
strUser.MakeLower();
|
strSQLWhere.Format(_T("m.N_C8=%d "), nFavFolder );
|
if( !strContentKey.IsEmpty())
|
{
|
strSQLTemp.Format( _T(" AND (m.S_C3 LIKE '%%%s%%' OR m.S_C25 LIKE '%%%s%%') "), strContentKey ,strContentKey );
|
strSQLWhere += strSQLTemp;
|
}
|
if ( m_tmStartDate.GetYear() > 1970 )
|
{
|
strStartDate = CMBAMDBFun::FormatDBTIMEToStr( m_tmStartDate );
|
if ( m_tmEndDate > m_tmStartDate)
|
{
|
strEndDate = CMBAMDBFun::FormatDBTIMEToStr( m_tmEndDate );
|
strSQLTemp.Format( _T(" AND m.T_C6 >= '%s' AND m.T_C6 <= '%s'"), strStartDate, strEndDate );
|
}
|
else
|
{
|
strSQLTemp.Format( _T(" AND m.T_C6 >= '%s'"), strStartDate );
|
}
|
strSQLWhere += strSQLTemp;
|
}
|
else
|
{
|
if ( m_tmEndDate.GetYear() > 1970 )
|
{
|
strEndDate = CMBAMDBFun::FormatDBTIMEToStr( m_tmEndDate );
|
strSQLTemp.Format( _T(" AND m.T_C6 <= '%s'"), strEndDate );
|
strSQLWhere += strSQLTemp;
|
}
|
}
|
strSQLTemp.Format( _T(" AND m.S_C10='' ") );
|
strSQLWhere += strSQLTemp;
|
if( !strUser.IsEmpty())
|
{
|
if(strUserName.IsEmpty() )
|
{
|
strSQLTemp.Format( _T("AND (m.S_C4 LIKE '%s%%' OR m.S_C5 LIKE '%s%%') "), strUser,strUser );
|
}
|
else
|
strSQLTemp.Format( _T("AND m.S_C4='%s' "), strUser );
|
strSQLWhere += strSQLTemp;
|
}
|
strSQL.Format( _T("SELECT m.G_C1, m.T_C6 FROM TN_STK_MSG m Where %s ORDER BY m.T_C6 DESC "),strSQLWhere );
|
m_strSQL = strSQL;
|
m_nListMsgType = LISTMSG_TYPE_MAGADMIN;
|
if( !m_pAConnect || !m_pAConnect->IsOpenDB())
|
return 0;
|
try
|
{
|
nCount = ListRecordCount();
|
m_ARecordSet.Close( );
|
m_ARecordSet.Open( m_pAConnect->GetDBConnect(), strSQL );
|
}
|
catch( CDBSQliteException ex )
|
{
|
CString strError;
|
|
strError = (LPCTSTR)ex.GetErrInfo( );
|
|
return 0;
|
}
|
return nCount;
|
}
|
|
int CMsgs::ListSyncBoxMsg( CString strSynchDate )
|
{ // ʹÓÃÕâ¸öº¯Êým_nReadedÎÞЧ
|
CString strSQL;
|
int nCount;
|
CDBRecord ARecordSet;
|
strSQL.Format( _T("SELECT m.G_C1, m.T_C6 FROM TN_STK_MSG m Where m.T_C20='%s' AND m.S_C10='' ORDER BY m.T_C6 DESC "),strSynchDate );
|
m_strSQL = strSQL;
|
m_nListMsgType = LISTMSG_TYPE_MAGADMIN;
|
if( !m_pAConnect || !m_pAConnect->IsOpenDB())
|
return 0;
|
try
|
{
|
nCount = ListRecordCount();
|
m_ARecordSet.Close( );
|
m_ARecordSet.Open( m_pAConnect->GetDBConnect(), strSQL );
|
}
|
catch( CDBSQliteException ex )
|
{
|
CString strError;
|
|
strError = (LPCTSTR)ex.GetErrInfo( );
|
|
return 0;
|
}
|
return nCount;
|
}
|
int CMsgs::ListSysBoxMsg( )
|
{ // ʹÓÃÕâ¸öº¯Êým_nReadedÎÞЧ
|
CString strSQL;
|
CString strStartDate;
|
CString strEndDate;
|
CString strSQLWhere= _T("");
|
int nCount;
|
CString strSQLTemp = _T("");
|
CDBRecord ARecordSet;
|
|
strSQLWhere.Format( _T(" (m.N_C7=%d OR m.N_C7=%d )"),AM_MSGTYPE_BROADCAST ,AM_MSGTYPE_GUNGHO);
|
if ( m_tmStartDate.GetYear() > 1970 )
|
{
|
strStartDate = CMBAMDBFun::FormatDBTIMEToStr( m_tmStartDate );
|
if ( m_tmEndDate > m_tmStartDate)
|
{
|
strEndDate = CMBAMDBFun::FormatDBTIMEToStr( m_tmEndDate );
|
strSQLTemp.Format( _T(" AND m.T_C6 >= '%s' AND m.T_C6 <= '%s'"), strStartDate, strEndDate );
|
}
|
else
|
{
|
strSQLTemp.Format( _T(" AND m.T_C6 >= '%s'"), strStartDate );
|
}
|
strSQLWhere += strSQLTemp;
|
}
|
else
|
{
|
if ( m_tmEndDate.GetYear() > 1970 )
|
{
|
strEndDate = CMBAMDBFun::FormatDBTIMEToStr( m_tmEndDate );
|
strSQLTemp.Format( _T(" AND m.T_C6 <= '%s'"), strEndDate );
|
strSQLWhere += strSQLTemp;
|
}
|
}
|
strSQL.Format( _T("SELECT m.G_C1, m.T_C6 FROM TN_STK_MSG m Where %s ORDER BY m.T_C6 DESC "),strSQLWhere );
|
m_strSQL = strSQL;
|
m_nListMsgType = LISTMSG_TYPE_MAGADMIN;
|
if( !m_pAConnect || !m_pAConnect->IsOpenDB())
|
return 0;
|
try
|
{
|
nCount = ListRecordCount();
|
m_ARecordSet.Close( );
|
m_ARecordSet.Open( m_pAConnect->GetDBConnect(), strSQL );
|
}
|
catch( CDBSQliteException ex )
|
{
|
CString strError;
|
|
strError = (LPCTSTR)ex.GetErrInfo( );
|
|
return 0;
|
}
|
return nCount;
|
}
|
|
int CMsgs::ListSearchingTalkingMsg( CString strLogin,CString strUser2,CString strKey, BOOL bTimeAsc )
|
{ CString strSQL;
|
CString strStartDate;
|
CString strEndDate;
|
CString strSQLTempM;
|
int nCount;
|
CString strSort;
|
// CString strSQLTempAttach;
|
|
strLogin.MakeLower();
|
strUser2.MakeLower();
|
if ( m_tmStartDate.GetYear() > 1970 || m_tmEndDate.GetYear() > 1970 )
|
{
|
if ( m_tmEndDate.GetYear() == 1970 )
|
m_tmEndDate = COleDateTime::GetCurrentTime( );
|
|
strStartDate = CMBAMDBFun::FormatDBTIMEToStr( m_tmStartDate );
|
strEndDate = CMBAMDBFun::FormatDBTIMEToStr( m_tmEndDate );
|
|
strSQLTempM.Format( _T(" AND m.T_C6 >= '%s' AND m.T_C6 <= '%s'"), strStartDate, strEndDate );
|
}
|
if(bTimeAsc)
|
strSort = _T(" ASC");
|
else
|
strSort = _T(" DESC");
|
|
if(strKey.IsEmpty())
|
{
|
if(strLogin == strUser2)
|
{
|
strSQL.Format( _T("SELECT m.G_C1, m.T_C6 \
|
FROM TN_STK_MSG m INNER JOIN TN_STK_MSGOWNER o ON o.G_C1 = m.G_C1 WHERE \
|
m.S_C4 = '%s' AND o.S_C2 = '%s' AND m.C_C17='1' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s \
|
UNION \
|
SELECT m.G_C1, m.T_C6 \
|
FROM TN_STK_MSG m WHERE \
|
m.S_C4 = '%s' AND m.S_C18 = '%s' AND m.C_C17='0' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s \
|
ORDER BY m.T_C6 %s"), strLogin, strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST, strSQLTempM, strLogin, strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST, strSQLTempM, strSort );
|
}
|
else
|
{
|
strSQL.Format( _T("SELECT m.G_C1, m.T_C6 \
|
FROM TN_STK_MSG m INNER JOIN TN_STK_MSGOWNER o ON o.G_C1 = m.G_C1 WHERE \
|
m.S_C4 = '%s' AND o.S_C2 = '%s' AND m.C_C17='1' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s \
|
UNION \
|
SELECT m.G_C1, m.T_C6 \
|
FROM TN_STK_MSG m WHERE \
|
m.S_C4 = '%s' AND m.S_C18 = '%s' AND m.C_C17='0' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s \
|
UNION \
|
SELECT m.G_C1,m.T_C6 \
|
FROM TN_STK_MSG m WHERE \
|
m.S_C4 = '%s' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s \
|
ORDER BY m.T_C6 %s"), strLogin, strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST, strSQLTempM, strLogin, strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST, strSQLTempM,strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST,strSQLTempM, strSort );
|
}
|
}
|
else
|
{
|
if(strLogin == strUser2)
|
{
|
strSQL.Format( _T("SELECT ST.G_C1,ST.T_C6,ST.S_C25 \
|
FROM (SELECT m.G_C1, m.T_C6,m.S_C25 \
|
FROM TN_STK_MSG m INNER JOIN TN_STK_MSGOWNER o ON o.G_C1 = m.G_C1 WHERE \
|
m.S_C4 = '%s' AND o.S_C2 = '%s' AND m.C_C17='1' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s\
|
UNION \
|
SELECT m.G_C1, m.T_C6,m.S_C25 \
|
FROM TN_STK_MSG m WHERE \
|
m.S_C4 = '%s' AND m.S_C18 = '%s' AND m.C_C17='0' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s )ST \
|
WHERE ST.S_C25 LIKE '%%%s%%' \
|
ORDER BY ST.T_C6 %s"), strLogin, strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST, strSQLTempM, strLogin, strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST, strSQLTempM,strKey,strSort );
|
}
|
else
|
{
|
strSQL.Format( _T("SELECT ST.G_C1,ST.T_C6,ST.S_C25 \
|
FROM (SELECT m.G_C1, m.T_C6,m.S_C25 \
|
FROM TN_STK_MSG m INNER JOIN TN_STK_MSGOWNER o ON o.G_C1 = m.G_C1 WHERE \
|
m.S_C4 = '%s' AND o.S_C2 = '%s' AND m.C_C17='1' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s\
|
UNION \
|
SELECT m.G_C1, m.T_C6,m.S_C25 \
|
FROM TN_STK_MSG m WHERE \
|
m.S_C4 = '%s' AND m.S_C18 = '%s' AND m.C_C17='0' AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s\
|
UNION \
|
SELECT m.G_C1,m.T_C6,m.S_C25 \
|
FROM TN_STK_MSG m WHERE \
|
m.S_C4 = '%s'AND (m.N_C11>2 AND m.N_C11<>64) AND ((m.S_C10='' AND m.N_C7=0) OR m.N_C7=%d OR m.N_C7=%d) %s )ST \
|
WHERE ST.S_C25 LIKE '%%%s%%' \
|
ORDER BY ST.T_C6 %s"), strLogin, strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST, strSQLTempM, strLogin, strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST, strSQLTempM,strUser2,AM_MSGTYPE_GUNGHO,AM_MSGTYPE_BROADCAST,strSQLTempM,strKey,strSort );
|
}
|
}
|
m_strSQL = strSQL;
|
m_nListMsgType = LISTMSG_TYPE_MAGADMIN;
|
if( !m_pAConnect || !m_pAConnect->IsOpenDB())
|
return 0;
|
try
|
{
|
nCount = ListRecordCount();
|
m_ARecordSet.Close( );
|
m_ARecordSet.Open( m_pAConnect->GetDBConnect(), strSQL );
|
}
|
catch( CDBSQliteException ex )
|
{
|
CString strError;
|
|
strError = (LPCTSTR)ex.GetErrInfo( );
|
|
return 0;
|
}
|
|
return nCount;
|
}
|