CorpSms/DLG_User_Log.cpp

376 lines
10 KiB
C++
Raw Permalink Normal View History

2025-02-27 16:58:16 +08:00
// 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;
}