376 lines
10 KiB
C++
376 lines
10 KiB
C++
|
// DLG_User_Log.cpp : implementation file
|
|||
|
//
|
|||
|
|
|||
|
#include "stdafx.h"
|
|||
|
#include "corpsms.h"
|
|||
|
#include "DLG_User_Log.h"
|
|||
|
|
|||
|
#ifdef _DEBUG
|
|||
|
#define new DEBUG_NEW
|
|||
|
#undef THIS_FILE
|
|||
|
static char THIS_FILE[] = __FILE__;
|
|||
|
#endif
|
|||
|
|
|||
|
/////////////////////////////////////////////////////////////////////////////
|
|||
|
// DLG_User_Log dialog
|
|||
|
#include "FSmsLog.h"
|
|||
|
#include "DLG_SmsLogSee.h"
|
|||
|
|
|||
|
DLG_User_Log::DLG_User_Log(CWnd* pParent /*=NULL*/)
|
|||
|
: CDialog(DLG_User_Log::IDD, pParent)
|
|||
|
{
|
|||
|
//{{AFX_DATA_INIT(DLG_User_Log)
|
|||
|
// NOTE: the ClassWizard will add member initialization here
|
|||
|
//}}AFX_DATA_INIT
|
|||
|
|
|||
|
m_bHideNum = false;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void DLG_User_Log::DoDataExchange(CDataExchange* pDX)
|
|||
|
{
|
|||
|
CDialog::DoDataExchange(pDX);
|
|||
|
//{{AFX_DATA_MAP(DLG_User_Log)
|
|||
|
DDX_Control(pDX, IDC_USER_LOG_SEND, m_wndSend);
|
|||
|
DDX_Control(pDX, IDC_USER_LOG_RECV, m_wndRecv);
|
|||
|
//}}AFX_DATA_MAP
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
BEGIN_MESSAGE_MAP(DLG_User_Log, CDialog)
|
|||
|
//{{AFX_MSG_MAP(DLG_User_Log)
|
|||
|
ON_NOTIFY(NM_DBLCLK, IDC_USER_LOG_SEND, OnDblclkUserLogSend)
|
|||
|
ON_NOTIFY(NM_DBLCLK, IDC_USER_LOG_RECV, OnDblclkUserLogRecv)
|
|||
|
//}}AFX_MSG_MAP
|
|||
|
END_MESSAGE_MAP()
|
|||
|
|
|||
|
/////////////////////////////////////////////////////////////////////////////
|
|||
|
// DLG_User_Log message handlers
|
|||
|
|
|||
|
void DLG_User_Log::SetParam(CAdoRecordSet *pAdo, const TCHAR *pMobile)
|
|||
|
{
|
|||
|
m_pAdoRS = pAdo;
|
|||
|
m_strMobile = pMobile;
|
|||
|
}
|
|||
|
|
|||
|
BOOL DLG_User_Log::OnInitDialog()
|
|||
|
{
|
|||
|
CDialog::OnInitDialog();
|
|||
|
|
|||
|
// TODO: Add extra initialization here
|
|||
|
//<2F><>ʼ<EFBFBD><CABC>List
|
|||
|
|
|||
|
m_ImageSend.Create(16,16,ILC_COLOR32|ILC_MASK,5,5);
|
|||
|
m_ImageSend.Add(AfxGetApp()->LoadIcon(IDI_L_SMSDF) );
|
|||
|
m_ImageSend.Add(AfxGetApp()->LoadIcon(IDI_L_SMSYF) );
|
|||
|
m_ImageSend.Add(AfxGetApp()->LoadIcon(IDI_L_SMSJS) );
|
|||
|
m_ImageSend.Add(AfxGetApp()->LoadIcon(IDI_L_SMSSB) );
|
|||
|
m_wndSend.SubClassWindow2();
|
|||
|
m_wndSend.SetHeadings(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,50; ״̬,70; <20><><EFBFBD>պ<EFBFBD><D5BA><EFBFBD>,120; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,280;<3B><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>,130;"));
|
|||
|
m_wndSend.SetGridLines(true);
|
|||
|
m_wndSend.SetImageList(&m_ImageSend,LVSIL_SMALL);
|
|||
|
|
|||
|
|
|||
|
m_ImageRecv.Create(16,16,ILC_COLOR32|ILC_MASK,2,2);
|
|||
|
m_ImageRecv.Add(AfxGetApp()->LoadIcon(IDI_L_SMSDF) );
|
|||
|
m_ImageRecv.Add(AfxGetApp()->LoadIcon(IDI_L_SMSJS) );
|
|||
|
m_wndRecv.SubClassWindow2();
|
|||
|
m_wndRecv.SetHeadings(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,50; <20><><EFBFBD>պ<EFBFBD><D5BA><EFBFBD>,120; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,280;<3B><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>,130;"));
|
|||
|
m_wndRecv.SetGridLines(true);
|
|||
|
m_wndRecv.SetImageList(&m_ImageRecv,LVSIL_SMALL);
|
|||
|
|
|||
|
RefreshSend();
|
|||
|
RefreshRecv();
|
|||
|
|
|||
|
|
|||
|
return TRUE; // return TRUE unless you set the focus to a control
|
|||
|
// EXCEPTION: OCX Property Pages should return FALSE
|
|||
|
}
|
|||
|
|
|||
|
void DLG_User_Log::RefreshSend()
|
|||
|
{
|
|||
|
if ( m_strMobile.GetLength()<=0 )
|
|||
|
return ;
|
|||
|
m_wndSend.ShowWindow(SW_HIDE); //<2F>ӿ<EFBFBD><D3BF><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
|
|||
|
m_wndSend.DeleteAllItems();
|
|||
|
CString str;
|
|||
|
str.Format(_T("select * from smslog where RecvNum='%s' order by SubTime desc") , m_strMobile );
|
|||
|
BOOL b = m_pAdoRS->Open( str );
|
|||
|
long lSendID;
|
|||
|
long lStatus;
|
|||
|
TCHAR szTemp[32]={0};
|
|||
|
TCHAR szStatus[24];
|
|||
|
TCHAR szSendNum[24];
|
|||
|
TCHAR szRecver[64];
|
|||
|
TCHAR szRecvNum[64];
|
|||
|
TCHAR szMsg[180];
|
|||
|
COleDateTime tSub;
|
|||
|
COleDateTime tRecv;
|
|||
|
long lCount = m_pAdoRS->GetRecordCount();
|
|||
|
if ( b && lCount>0 )
|
|||
|
{
|
|||
|
m_pAdoRS->MoveFirst();
|
|||
|
long iItem = 0;
|
|||
|
while( !m_pAdoRS->IsEOF() )
|
|||
|
{
|
|||
|
m_pAdoRS->GetCollect( _T("SendID") , lSendID );
|
|||
|
m_pAdoRS->GetCollect( _T("Status") , lStatus );
|
|||
|
m_pAdoRS->GetCollect( _T("SendNum") , szSendNum );
|
|||
|
m_pAdoRS->GetCollect( _T("Recver") , szRecver );
|
|||
|
m_pAdoRS->GetCollect( _T("RecvNum") , szRecvNum );
|
|||
|
m_pAdoRS->GetCollect( _T("Msg") , szMsg );
|
|||
|
m_pAdoRS->GetCollect( _T("SubTime") , tSub );
|
|||
|
m_pAdoRS->GetCollect( _T("RecvTime"), tRecv );
|
|||
|
|
|||
|
if ( m_bHideNum )
|
|||
|
{
|
|||
|
szRecvNum[4]='*';
|
|||
|
szRecvNum[5]='*';
|
|||
|
szRecvNum[6]='*';
|
|||
|
szRecvNum[7]='*';
|
|||
|
//szRecvNum[8]='*';
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
#ifdef STATUS_ENABLE_RECV
|
|||
|
long lIcon = CFSmsLog::GetStatusText( lStatus , szStatus );
|
|||
|
#else
|
|||
|
long lIcon = CFSmsLog::GetStatusText2( lStatus , szStatus );
|
|||
|
#endif
|
|||
|
//m_wndSend.SetHeadings(_T("<22><><EFBFBD><EFBFBD>,50; ״̬,70; <20><><EFBFBD>պ<EFBFBD><D5BA><EFBFBD>,120; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,280;<3B><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>,130;"));
|
|||
|
m_wndSend.InsertItem( iItem , _itot( lCount-iItem,szTemp,10) ,lIcon );
|
|||
|
m_wndSend.SetItemData( iItem,lSendID );
|
|||
|
|
|||
|
//m_wndSend.SetIconIndex( iItem , lIcon );
|
|||
|
m_wndSend.SetItemText(iItem,1,szStatus);
|
|||
|
if ( _tcslen(szRecver)>0 )
|
|||
|
{
|
|||
|
_tcscat( szRecvNum , _T("-") );
|
|||
|
_tcscat( szRecvNum , szRecver );
|
|||
|
}
|
|||
|
m_wndSend.SetItemText(iItem,2,szRecvNum);
|
|||
|
m_wndSend.SetItemText(iItem,3,szMsg);
|
|||
|
if ( tSub.GetStatus() == COleDateTime::valid )
|
|||
|
{
|
|||
|
_stprintf( szMsg , _T("%04d.%02d.%02d %02d:%02d") , tSub.GetYear(),tSub.GetMonth(),tSub.GetDay(),tSub.GetHour(),tSub.GetMinute() );
|
|||
|
m_wndSend.SetItemText(iItem,4,szMsg);
|
|||
|
}
|
|||
|
/*
|
|||
|
#ifdef STATUS_ENABLE_RECV
|
|||
|
if ( tRecv.GetStatus() == COleDateTime::valid )
|
|||
|
{
|
|||
|
_stprintf( szMsg , _T("%04d.%02d.%02d %02d:%02d") , tRecv.GetYear(),tRecv.GetMonth(),tRecv.GetDay(),tRecv.GetHour(),tRecv.GetMinute() );
|
|||
|
m_wndList.SetItemText(iItem,5,szMsg);
|
|||
|
}
|
|||
|
#endif
|
|||
|
*/
|
|||
|
iItem++;
|
|||
|
m_pAdoRS->MoveNext();
|
|||
|
}
|
|||
|
}
|
|||
|
m_wndSend.ShowWindow( SW_SHOW ); //Ϊ<>˼ӿ<CBBC><D3BF><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
void DLG_User_Log::RefreshRecv()
|
|||
|
{
|
|||
|
if ( m_strMobile.GetLength()<=0 )
|
|||
|
return ;
|
|||
|
m_wndRecv.ShowWindow(SW_HIDE); //<2F>ӿ<EFBFBD><D3BF><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
|
|||
|
m_wndRecv.DeleteAllItems();
|
|||
|
CString str;
|
|||
|
str.Format(_T("select * from smsRecv where SendNum='%s' order by RecvTime desc") , m_strMobile );
|
|||
|
BOOL b = m_pAdoRS->Open( str );
|
|||
|
long lRecvID;
|
|||
|
BOOL bRead;
|
|||
|
TCHAR szTemp[32]={0};
|
|||
|
//TCHAR szSender[64];
|
|||
|
//TCHAR szSendNum[128];
|
|||
|
TCHAR szRecvNum[64];
|
|||
|
TCHAR szMsg[180];
|
|||
|
COleDateTime tRecv;
|
|||
|
long lCount = m_pAdoRS->GetRecordCount();
|
|||
|
if ( b && lCount>0 )
|
|||
|
{
|
|||
|
m_pAdoRS->MoveFirst();
|
|||
|
long iItem = 0;
|
|||
|
while( !m_pAdoRS->IsEOF() )
|
|||
|
{
|
|||
|
m_pAdoRS->GetCollect( _T("RecvID") , lRecvID );
|
|||
|
m_pAdoRS->GetCollect( _T("Reader") , bRead );
|
|||
|
//m_pAdoRS->GetCollect( _T("SendNum") , szSendNum );
|
|||
|
//m_pAdoRS->GetCollect( _T("Sender") , szSender );
|
|||
|
m_pAdoRS->GetCollect( _T("RecvNum") , szRecvNum );
|
|||
|
m_pAdoRS->GetCollect( _T("Msg") , szMsg );
|
|||
|
m_pAdoRS->GetCollect( _T("RecvTime"), tRecv );
|
|||
|
|
|||
|
|
|||
|
//if ( _tcslen(szSender)>0 )
|
|||
|
//{
|
|||
|
// _tcscat( szSendNum , _T("-") );
|
|||
|
// _tcscat( szSendNum , szSender );
|
|||
|
//}
|
|||
|
|
|||
|
//m_wndRecv.SetHeadings(_T("<22><><EFBFBD><EFBFBD>,50; <20><><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>,150;<3B><><EFBFBD>պ<EFBFBD><D5BA><EFBFBD>,120; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,280;<3B><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>,130;"));
|
|||
|
m_wndRecv.InsertItem( iItem , _itot( lCount-iItem,szTemp,10) , bRead );
|
|||
|
m_wndRecv.SetItemData( iItem,lRecvID );
|
|||
|
//m_wndRecv.SetIconIndex( iItem , bRead );
|
|||
|
|
|||
|
//m_wndRecv.SetItemText(iItem,1,szSendNum);
|
|||
|
m_wndRecv.SetItemText(iItem,1,szRecvNum);
|
|||
|
m_wndRecv.SetItemText(iItem,2,szMsg);
|
|||
|
if ( tRecv.GetStatus() == COleDateTime::valid )
|
|||
|
{
|
|||
|
_stprintf( szMsg , _T("%04d.%02d.%02d %02d:%02d") , tRecv.GetYear(),tRecv.GetMonth(),tRecv.GetDay(),tRecv.GetHour(),tRecv.GetMinute() );
|
|||
|
m_wndRecv.SetItemText(iItem,3,szMsg);
|
|||
|
}
|
|||
|
/*
|
|||
|
#ifdef STATUS_ENABLE_RECV
|
|||
|
if ( tRecv.GetStatus() == COleDateTime::valid )
|
|||
|
{
|
|||
|
_stprintf( szMsg , "%04d.%02d.%02d %02d:%02d" , tRecv.GetYear(),tRecv.GetMonth(),tRecv.GetDay(),tRecv.GetHour(),tRecv.GetMinute() );
|
|||
|
m_wndList.SetItemText(iItem,5,szMsg);
|
|||
|
}
|
|||
|
#endif
|
|||
|
*/
|
|||
|
iItem++;
|
|||
|
m_pAdoRS->MoveNext();
|
|||
|
}
|
|||
|
}
|
|||
|
m_wndRecv.ShowWindow( SW_SHOW ); //Ϊ<>˼ӿ<CBBC><D3BF><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
void DLG_User_Log::OnDblclkUserLogSend(NMHDR* pNMHDR, LRESULT* pResult)
|
|||
|
{
|
|||
|
*pResult = 0;
|
|||
|
|
|||
|
long lItem = GetCurrentSelected_Send();
|
|||
|
if ( lItem <0 )
|
|||
|
return ;
|
|||
|
SMS_See sms = GetSms_Send(lItem);
|
|||
|
sms.lType = SMS_SEE_TYPE_LOG;
|
|||
|
DLG_SmsLogSee dlg(this);
|
|||
|
dlg.SetParam(sms);
|
|||
|
dlg.DoModal();
|
|||
|
}
|
|||
|
|
|||
|
void DLG_User_Log::OnDblclkUserLogRecv(NMHDR* pNMHDR, LRESULT* pResult)
|
|||
|
{
|
|||
|
*pResult = 0;
|
|||
|
|
|||
|
long lItem = GetCurrentSelected_Recv();
|
|||
|
if ( lItem <0 )
|
|||
|
return ;
|
|||
|
SMS_See sms = GetSms_Recv(lItem);
|
|||
|
sms.lType = SMS_SEE_TYPE_LOG;
|
|||
|
DLG_SmsLogSee dlg(this);
|
|||
|
dlg.SetParam(sms);
|
|||
|
dlg.DoModal();
|
|||
|
}
|
|||
|
|
|||
|
long DLG_User_Log::GetCurrentSelected_Send()
|
|||
|
{
|
|||
|
POSITION pos = m_wndSend.GetFirstSelectedItemPosition();
|
|||
|
if ( pos )
|
|||
|
{
|
|||
|
return m_wndSend.GetNextSelectedItem(pos);
|
|||
|
}
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
long DLG_User_Log::GetCurrentSelected_Recv()
|
|||
|
{
|
|||
|
POSITION pos = m_wndRecv.GetFirstSelectedItemPosition();
|
|||
|
if ( pos )
|
|||
|
{
|
|||
|
return m_wndRecv.GetNextSelectedItem(pos);
|
|||
|
}
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
SMS_See DLG_User_Log::GetSms_Send(long lItem)
|
|||
|
{
|
|||
|
SMS_See sms={0};
|
|||
|
|
|||
|
long lSendID = m_wndSend.GetItemData(lItem);
|
|||
|
CString strSelect;
|
|||
|
long lStatus;
|
|||
|
TCHAR szSender[16]={0};
|
|||
|
TCHAR szRecver[16]={0};
|
|||
|
COleDateTime t;
|
|||
|
strSelect.Format( _T("select * from smslog where SendID=%d") , lSendID );
|
|||
|
if ( m_pAdoRS->Open( strSelect ) && m_pAdoRS->GetRecordCount()>0 )
|
|||
|
{
|
|||
|
m_pAdoRS->MoveFirst();
|
|||
|
m_pAdoRS->GetCollect( _T("Status") , lStatus );
|
|||
|
m_pAdoRS->GetCollect( _T("SendNum") , sms.szSender );
|
|||
|
m_pAdoRS->GetCollect( _T("Recver") , szRecver );
|
|||
|
m_pAdoRS->GetCollect( _T("RecvNum") , sms.szRecver );
|
|||
|
m_pAdoRS->GetCollect( _T("Msg") , sms.szMsg );
|
|||
|
m_pAdoRS->GetCollect( _T("SubTime") , t );t.GetAsSystemTime(sms.tSend);
|
|||
|
m_pAdoRS->GetCollect( _T("RecvTime"), t );t.GetAsSystemTime(sms.tRecv);
|
|||
|
|
|||
|
CFSmsLog::GetStatusText( lStatus , sms.szStatus );
|
|||
|
|
|||
|
|
|||
|
|
|||
|
if ( _tcslen(szSender)>0 )
|
|||
|
{
|
|||
|
_tcscat( sms.szSender , _T("-") );
|
|||
|
_tcscat( sms.szSender , szSender );
|
|||
|
}
|
|||
|
if ( m_bHideNum )
|
|||
|
{
|
|||
|
szRecver[4]='*';
|
|||
|
szRecver[5]='*';
|
|||
|
szRecver[6]='*';
|
|||
|
szRecver[7]='*';
|
|||
|
//user.szMobile[8]='*';
|
|||
|
}
|
|||
|
if ( _tcslen(szRecver)>0 )
|
|||
|
{
|
|||
|
_tcscat( sms.szRecver , _T("-") );
|
|||
|
_tcscat( sms.szRecver , szRecver );
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
return sms;
|
|||
|
}
|
|||
|
|
|||
|
SMS_See DLG_User_Log::GetSms_Recv(long lItem)
|
|||
|
{
|
|||
|
SMS_See sms={0};
|
|||
|
|
|||
|
long lRecvID = m_wndRecv.GetItemData(lItem);
|
|||
|
CString strSelect;
|
|||
|
TCHAR szSender[16]={0};
|
|||
|
TCHAR szRecver[16]={0};
|
|||
|
COleDateTime t;
|
|||
|
strSelect.Format( _T("select * from smsrecv where RecvID=%d") , lRecvID );
|
|||
|
if ( m_pAdoRS->Open( strSelect ) && m_pAdoRS->GetRecordCount()>0 )
|
|||
|
{
|
|||
|
m_pAdoRS->MoveFirst();
|
|||
|
m_pAdoRS->GetCollect( _T("SendNum") , sms.szSender );
|
|||
|
m_pAdoRS->GetCollect( _T("RecvNum") , sms.szRecver );
|
|||
|
m_pAdoRS->GetCollect( _T("Msg") , sms.szMsg );
|
|||
|
m_pAdoRS->GetCollect( _T("RecvTime"), t );t.GetAsSystemTime(sms.tRecv);
|
|||
|
sms.tSend = sms.tRecv;
|
|||
|
_tcscpy( sms.szStatus , _T("<EFBFBD><EFBFBD> <20><>") );
|
|||
|
|
|||
|
//״̬<D7B4>ı<EFBFBD>
|
|||
|
long lRead=1;
|
|||
|
m_pAdoRS->PutCollect( _T("Reader") , lRead );
|
|||
|
m_pAdoRS->Update();
|
|||
|
m_pAdoRS->Close();
|
|||
|
m_wndRecv.SetIconIndex( lItem , 1 ); //<2F><>ʾ<EFBFBD>Ѷ<EFBFBD>ͼ<EFBFBD><CDBC>
|
|||
|
|
|||
|
}
|
|||
|
return sms;
|
|||
|
}
|
|||
|
|
|||
|
void DLG_User_Log::SetHideNum(BOOL bHide)
|
|||
|
{
|
|||
|
m_bHideNum = bHide;
|
|||
|
}
|