SmsManager/K_MmsTask.cpp

1137 lines
28 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// K_MmsTask.cpp : implementation file
//
#include "stdafx.h"
#include "smsmanager.h"
#include "K_MmsTask.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CK_MmsTask dialog
#include "MainFrm.h"
#include "ProcessSocket.h"
#include "DLG_SmsLogSee.h"
#include "DLG_HZB_Export.h"
#include "DLG_Corp_Oper_Open.h"
#include "DLG_BBS_Send.h"
CK_MmsTask::CK_MmsTask(CWnd* pParent /*=NULL*/)
: CDialog(CK_MmsTask::IDD, pParent)
{
//{{AFX_DATA_INIT(CK_MmsTask)
m_lCorp = -1;
m_tBegin = COleDateTime::GetCurrentTime();
m_tEnd = COleDateTime::GetCurrentTime();
m_lTop = -1;
m_lStatus = -1;
//}}AFX_DATA_INIT
m_bInit = false;
m_bRefresh = false;
// m_bProcess = false;
m_lQueryCorpID = 0;
m_lCheckCount = 0; //ÐèÒªÉóºËµÄÊýÁ¿
}
void CK_MmsTask::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CK_MmsTask)
DDX_Control(pDX, IDC_LIST_CORPID, m_E_CorpID);
DDX_Control(pDX, IDC_LIST_S1, m_S_S1);
DDX_Control(pDX, IDC_LIST_CORP, m_L_Corp);
DDX_Control(pDX, IDC_LIST_LIST, m_wndList);
DDX_CBIndex(pDX, IDC_LIST_CORP, m_lCorp);
DDX_DateTimeCtrl(pDX, IDC_LIST_TBEGIN, m_tBegin);
DDX_DateTimeCtrl(pDX, IDC_LIST_TEND, m_tEnd);
DDX_CBIndex(pDX, IDC_LIST_TOP, m_lTop);
DDX_CBIndex(pDX, IDC_LIST_STATUS, m_lStatus);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CK_MmsTask, CDialog)
//{{AFX_MSG_MAP(CK_MmsTask)
ON_WM_SIZE()
ON_BN_CLICKED(IDC_LIST_QUERY, OnListQuery)
ON_NOTIFY(NM_DBLCLK, IDC_LIST_LIST, OnDblclkListList)
ON_BN_CLICKED(IDC_LIST_QUERY2, OnListQuery2)
ON_NOTIFY(NM_RCLICK, IDC_LIST_LIST, OnRclickListList)
//}}AFX_MSG_MAP
ON_COMMAND(MENU_LIST_SEE , On_User_See )
ON_COMMAND(MENU_LIST_ADDBACK , On_User_AddBack )
ON_COMMAND(MENU_LIST_SENDBBS , On_User_SendBBS )
ON_COMMAND(MENU_LIST_CORPLIST , On_User_CorpList )
ON_COMMAND(MENU_LIST_CORPOFF , On_User_CorpOFF )
ON_COMMAND(MENU_LIST_EXPORT , On_User_Export )
ON_COMMAND(MENU_LIST_COPY , On_User_Copy )
ON_COMMAND( MENU_MMSTASK_PASS , On_Task_Pass )
ON_COMMAND( MENU_MMSTASK_NOPASS , On_Task_NoPass )
ON_COMMAND( MENU_MMSTASK_STOP , On_Task_Stop )
ON_COMMAND( MENU_MMSTASK_RESEND , On_Task_ReSend )
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CK_MmsTask message handlers
BOOL CK_MmsTask::ReShow(BOOL bRefresh)
{
ShowWindow( SW_SHOW );
if ( bRefresh || !m_bRefresh )
{
RefreshInfo();
}
return true;
}
BOOL CK_MmsTask::ReHide()
{
ShowWindow( SW_HIDE );
return true;
}
BOOL CK_MmsTask::RefreshInfo()
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_FILT) )
{
return false;
}
if ( !m_pMainFrame->GetUserPurview(PURVIEW_LIST,false) )
{
GetDlgItem(IDC_LIST_TBEGIN)->EnableWindow(false);
}
m_pMainFrame->SendFrame(SMSFUNC_CORP_NAME,NULL,0);
OnListQuery(); //²éѯÉóºËÖеÄÊý¾Ý
return true;
}
BOOL CK_MmsTask::ProcessSocket(Socket_Head_Add *pHead,BYTE* pFrame)
{
CString str;
//È¡Çåµ¥
if (pHead->lFuncType == SMSFUNC_PLTASKMMS_SEE)
{
ANS_PLTaskMms_See * pList = (ANS_PLTaskMms_See *)pFrame;
ANS_PLTaskMms_SeeData * pData = (ANS_PLTaskMms_SeeData *)(pFrame+sizeof(ANS_PLTaskMms_See));
//CString strTemp;
//strTemp.Format( _T("²éѯÆóÒµ (%d/%d)") , pList->lPageCount,pList->lPageAll );
//m_S_S1.SetWindowText( strTemp );
//Ìí¼Óµ½List
long lCount = m_wndList.GetItemCount();
TCHAR szBuf[512]={0};
CString str;
CString strTemp;
m_lCheckCount = 0;
for ( int i = 0 ; i< pList->lCount;i++)
{
ANS_PLTaskMms_SeeData * pNewData = new ANS_PLTaskMms_SeeData;
*pNewData = *pData;
POSITION pos = m_ListData.AddTail(pNewData);
//m_wndList.SetHeadings(_T("ÐòºÅ,40; Àà ÐÍ,80;״̬,50;ÆóÒµID,60;·¢ËÍÈË,70; ·¢ËͺÅÂë,120; ½ÓÊÕÈË,70; ½ÓÊÕºÅÂë,120; Ìύʱ¼ä,150; ·¢ËÍʱ¼ä,150; ½ÓÊÕʱ¼ä,150; ¶ÌÐÅÄÚÈÝ,1000; ÐÅÏ¢ID,120;"));
m_wndList.InsertItem( lCount+i,_itot(lCount+i+1,szBuf,10),0);
long lIcon;
switch(pNewData->lStatus)
{
case 0:
default:
strTemp = _T("ÕýÔÚÉÏ´«");
break;
case 1:
strTemp = _T("´ý·¢ËÍ");
lIcon = 0;
break;
case 2:
strTemp = _T("ÉóºËÖÐ");
lIcon = 0;
m_lCheckCount++;
break;
case 3:
strTemp = _T("ÉóºËʧ°Ü");
lIcon = 2;
break;
case 4:
strTemp = _T("ÕýÔÚ·¢ËÍ");
lIcon = 1;
break;
case 5:
strTemp = _T("Óà¶î²»×ã");
lIcon = 2;
break;
case 6:
strTemp = _T("Ç¿ÖÆÍ£Ö¹");
lIcon = 2;
break;
case 7:
strTemp = _T("·¢ËÍÍê³É");
lIcon = 3;
break;
case 8:
strTemp = _T("Óû§ÉóºË");
lIcon = 0;
break;
case 9:
strTemp = _T("Óû§ÉóºË2"); //´ËģʽÏ£¬Óû§ÉóºËºó£¬»¹ÐèÒª¹ÜÀíÔ±Éó
lIcon = 0;
break;
case 10:
strTemp = _T("Óû§ÉóºËʧ°Ü");
lIcon = 2;
break;
}
long lTemp=1;
////0-ÕýÔÚÉÏ´«£¬1-´ý·¢ËÍ£¬2-ÉóºË£¬3-ÉóºËʧ°Ü,4-ÕýÔÚ·¢ËÍ£¬5-Óà¶î²»×㣬6-Ç¿ÖÆÍ£Ö¹,7-·¢ËÍÍê³É,8-Óû§ÉóºË,9-Óû§ÉóºË2,10-Óû§ÉóºËʧ°Ü
m_wndList.SetItemText(lCount+i,lTemp++,strTemp);
str.Format( _T("%d-%s[%s]") , pNewData->lCorpID,pNewData->szCorpName,pNewData->szCreateUser);
m_wndList.SetItemText(lCount+i,lTemp++,str);
strTemp.Format(_T("%d") , pNewData->lMobileCount);
m_wndList.SetItemText(lCount+i,lTemp++,strTemp);
strTemp.Format(_T("%d") , pNewData->lYFMobileCount);
m_wndList.SetItemText(lCount+i,lTemp++,strTemp);
m_wndList.SetItemText(lCount+i,lTemp++,pNewData->szTitle);
strTemp.Format(_T("%.1fk") , (double)pNewData->lmmSize/1024.0f);
m_wndList.SetItemText(lCount+i,lTemp++,strTemp);
strTemp.Format(_T("%04d.%02d.%02d %02d:%02d") , pNewData->tCreateTime.wYear,pNewData->tCreateTime.wMonth,pNewData->tCreateTime.wDay,pNewData->tCreateTime.wHour,pNewData->tCreateTime.wMinute);
m_wndList.SetItemText(lCount+i,lTemp++,strTemp);
COleDateTime t(pNewData->tTimer);
if ( t.GetStatus() == COleDateTime::valid )
{
strTemp.Format(_T("%04d.%02d.%02d %02d:%02d") , pNewData->tTimer.wYear,pNewData->tTimer.wMonth,pNewData->tTimer.wDay,pNewData->tTimer.wHour,pNewData->tTimer.wMinute);
}
else
{
strTemp =_T(" ");
}
m_wndList.SetItemText(lCount+i,lTemp++,strTemp);
m_wndList.SetItemData(lCount+i,(DWORD_PTR)(pos) );
pData++;
}
return true;
}
if ( pHead->lFuncType == SMSFUNC_PLTASKMMS_MODIFY) //ÐÞ¸ÄÓû§
{
ANS_PLTaskMms_Modify * pSee = (ANS_PLTaskMms_Modify *)pFrame;
if ( pSee->bOK )
{
ANS_PLTaskMms_SeeData * pSeeData = NULL;
if ( m_wndList.GetItemData(pSee->lItem) >0 )
{
pSeeData = m_ListData.GetAt((POSITION)m_wndList.GetItemData(pSee->lItem));
}
if ( pSeeData && pSeeData->lPLTaskMmsID == pSee->lPLTaskMmsID )
{
CString strTemp;
long lIcon;
switch(pSee->lStatus)
{
case 0:
default:
strTemp = _T("ÕýÔÚÉÏ´«");
break;
case 1:
strTemp = _T("´ý·¢ËÍ");
lIcon = 0;
break;
case 2:
strTemp = _T("ÉóºËÖÐ");
lIcon = 0;
break;
case 3:
strTemp = _T("ÉóºËʧ°Ü");
lIcon = 2;
break;
case 4:
strTemp = _T("ÕýÔÚ·¢ËÍ");
lIcon = 1;
break;
case 5:
strTemp = _T("Óà¶î²»×ã");
lIcon = 2;
break;
case 6:
strTemp = _T("Ç¿ÖÆÍ£Ö¹");
lIcon = 2;
break;
case 7:
strTemp = _T("·¢ËÍÍê³É");
lIcon = 3;
break;
}
m_wndList.SetItemText(pSee->lItem , 1 , strTemp );
}
}
else
{
str.Format( _T("ÐÞ¸ÄÈÎÎñ״̬ʧ°Ü£º%s") , pSee->szErrMsg );
MessageBox(str , _T("´íÎó") , MB_ICONWARNING );
}
return true;
}
return false;
}
BOOL CK_MmsTask::ProcessSocket(Socket_Head *pHead)
{
CString strTemp;
//È¡¹ýÂËÐÅÏ¢
if (pHead->lFuncType == SMSFUNC_CORP_NAME)
{
m_bRefresh = true; //ÒѾ­Ë¢Ð¹ý
ANS_Corp_Name * pCorp = (ANS_Corp_Name *)pHead->pFrame;
ANS_Corp_NameData * pData = (ANS_Corp_NameData *)(pHead->pFrame+sizeof(ANS_Corp_Name));
m_L_Corp.ResetContent(); //ɾ³ýÔ­ÒÑÓÐµÄÆóÒµ
m_L_Corp.AddString( _T("ËùÓÐÆóÒµ") );
this->Close_Corp(); //¹Ø±ÕÔ­¶ÓÁÐ
for ( int i=0;i<pCorp->lCount;i++ )
{
ANS_Corp_NameData * pNewData = new ANS_Corp_NameData;
*pNewData = *pData;
POSITION pos = m_Corp.AddTail(pNewData);
strTemp.Format( _T("%d-%s"),pData->lCorpID,pData->szCorpName);
long lItem = m_L_Corp.AddString( strTemp );
m_L_Corp.SetItemData( lItem , (DWORD_PTR)pos);
pData ++;
}
m_L_Corp.SetCurSel(0);
return true;
}
return false;
}
BOOL CK_MmsTask::OnInitDialog()
{
CDialog::OnInitDialog();
//È¡µÃ¹²ÓòÎÊý
//CMainFrame * pFrame = static_cast <CMainFrame *>((CMainFrame *)AfxGetMainWnd());
this->GetParent()->GetParentFrame();
m_pMainFrame = (CMainFrame *)this->GetParent()->GetParentFrame();
m_pSocket = &m_pMainFrame->m_Socket;
//³õʼ»¯List
m_Image.Create(16,16,ILC_COLOR16|ILC_MASK,5,5);
m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_LIST) );
m_wndList.SubClassWindow2();
m_wndList.SetHeadings(_T("ÐòºÅ,40;״̬,80;Ìá½»Óû§,300; ºÅÂëÊý,60;ÒÑ·¢ºÅÂë,65; ²ÊÐűêÌâ,250;²ÊÐÅ´óС,70;Ìύʱ¼ä,150;¶¨Ê±Ê±¼ä,130;"));
m_wndList.SetGridLines(true);
// m_wndList.SetImageList(&m_Image,LVSIL_SMALL);
m_bInit = true;
/*
//ĬÈÏÈ¡ÉÏÔµÄÄÚÈÝ
SYSTEMTIME t; ::GetLocalTime(&t);
t.wDay = 1;//´Ó1ºÅÆð
t.wMonth = t.wMonth-1;
if ( t.wMonth <=0 )
{
t.wMonth = 12;
t.wYear = t.wYear-1;
}
m_tBegin.SetDate( t.wYear,t.wMonth,t.wDay ); //Æðʼ
if ( t.wMonth == 1 ||
t.wMonth == 3 ||
t.wMonth == 5 ||
t.wMonth == 7 ||
t.wMonth == 8 ||
t.wMonth == 10 ||
t.wMonth == 12 )
{
t.wDay = 31;
}
else
if (t.wMonth == 2 )
t.wDay = 28;
else
t.wDay = 30;
m_tEnd.SetDate( t.wYear,t.wMonth,t.wDay );//½áÊø
*/
COleDateTime t=COleDateTime::GetCurrentTime();
COleDateTime t2=t-COleDateTimeSpan(3,0,0,0); //ĬÈϲé3ÌìÄÚÊý¾Ý
m_tBegin = t2; //¿ªÊ¼
m_tEnd = t; //½áÊø
m_lStatus=3;
m_lTop = 1; //ĬÈÏÏÔʾǰ200Ìõ¶ÌÐÅ
UpdateData(false);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CK_MmsTask::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
if ( m_bInit )
{
CRect rect;
m_S_S1.GetWindowRect(&rect);
m_wndList.MoveWindow( 0 , 0+rect.Height()+5 , cx,cy-rect.Height()-5);
}
}
void CK_MmsTask::Close()
{
Close_Corp();
Close_ListData();
}
void CK_MmsTask::OnListQuery()
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_FILT) )
{
return ;
}
UpdateData(true);
if ( m_tEnd < m_tBegin )
{
MessageBox( _T("²éѯ½áÊøÈÕÆÚ²»ÄÜСÓÚÆðʼÈÕÆÚ£¬Çë¸ÄÕý!") , _T("´íÎó") , MB_ICONWARNING );
return ;
}
REQ_PLTaskMms_See * pSee = new REQ_PLTaskMms_See;
memset(pSee , 0 , sizeof(REQ_PLTaskMms_See));
if ( m_lQueryCorpID )
{
pSee->lCorpID = m_lQueryCorpID;
pSee->lStatus = -1; //²éѯËùÓеļǼ
m_lQueryCorpID = 0;
}
else
{
if ( m_lCorp <= 0 ) //Ñ¡ÁËËùÓÐÆóÒµ
{
pSee->lCorpID = -1;
}
else
{
POSITION pos = (POSITION)m_L_Corp.GetItemData(m_lCorp);
POSITION pos2 = pos;
ANS_Corp_NameData * pData = m_Corp.GetNext( pos );
if (pData)
{
pSee->lCorpID = pData->lCorpID;
}
else
{
return;
}
}
}
m_tBegin.GetAsSystemTime( pSee->tBegin );
m_tEnd.GetAsSystemTime( pSee->tEnd );
switch ( m_lTop )
{
case 1:
pSee->lTop = 200;
break;
case 2:
pSee->lTop = 500;
break;
case 3:
pSee->lTop = 1000;
break;
case 4:
pSee->lTop = 2000;
break;
case 5:
pSee->lTop = 5000;
break;
case 0:
default:
pSee->lTop = -1;
break;
}
pSee->lStatus = m_lStatus-1; //²éѯ״̬¡£
this->Close_ListData(); //¹Ø±ÕÔ­¶ÓÁÐ
m_wndList.ShowWindow( SW_HIDE ); //ΪÁ˼ӿìÏÔʾËÙ¶È
m_wndList.DeleteAllItems(); //ÏÈɾ³ýËùÓмǼ
m_pMainFrame->SendFrame(SMSFUNC_PLTASKMMS_SEE,(BYTE*)pSee,sizeof(REQ_PLTaskMms_See));
m_wndList.ShowWindow( SW_SHOW ); //ΪÁ˼ӿìÏÔʾËÙ¶È
return ;
}
void CK_MmsTask::OnDblclkListList(NMHDR* pNMHDR, LRESULT* pResult)
{
*pResult = 0;
On_User_See();
}
void CK_MmsTask::OnListQuery2()
{
CString strTemp;
CString strFind;
m_E_CorpID.GetWindowText(strFind);
if ( strFind.GetLength()<=0 )
return ;
long lSel = m_L_Corp.GetCurSel();
long lCount = m_L_Corp.GetCount();
for ( int i=lSel+1 ; i<lCount ; i++ )
{
m_L_Corp.GetLBText(i,strTemp);
if ( strTemp.Find(strFind)>=0 )
{
m_L_Corp.SetCurSel(i);
return ;
}
}
for ( i=0 ; i<lSel ; i++ )
{
m_L_Corp.GetLBText(i,strTemp);
if ( strTemp.Find(strFind)>=0 )
{
m_L_Corp.SetCurSel(i);
return ;
}
}
}
void CK_MmsTask::OnRclickListList(NMHDR* pNMHDR, LRESULT* pResult)
{
*pResult = 0;
ShowRMenu();
}
void CK_MmsTask::ShowRMenu()
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_FILT) )
{
return ;
}
CMenu menu;
menu.CreatePopupMenu();
BOOL bLock = false;
long lItem = this->GetCurrentSelected();
//Ìí¼Ó
if ( lItem>=0 )
{
//menu.AppendMenu(MF_STRING , MENU_LIST_SEE , _T(" ²é ¿´ ") );
menu.AppendMenu(MF_STRING , MENU_LIST_CORPLIST, _T(" ²éѯ´ËÆóÒµÇåµ¥ ") );
menu.AppendMenu(MF_SEPARATOR );
menu.AppendMenu(MF_STRING , MENU_LIST_CORPOFF , _T(" ½ûÓÃ´ËÆóÒµ ") );
menu.AppendMenu(MF_SEPARATOR );
//menu.AppendMenu(MF_STRING , MENU_LIST_ADDBACK, _T(" Ìí¼Óµ½ºÚÃûµ¥ ") );
//menu.AppendMenu(MF_SEPARATOR );
//menu.AppendMenu(MF_STRING , MENU_LIST_SENDBBS, _T(" ·¢ËͺÚÃûµ¥ÆÁ±Î֪ͨ ") );
ANS_PLTaskMms_SeeData * pSeeData = NULL;
if ( m_wndList.GetItemData(lItem) >0 )
{
pSeeData = m_ListData.GetAt((POSITION)m_wndList.GetItemData(lItem));
}
if ( pSeeData )
{
//0-ÕýÔÚÉÏ´«£¬1-´ý·¢ËÍ£¬2-ÉóºË£¬3-ÉóºËʧ°Ü,4-ÕýÔÚ·¢ËÍ£¬5-Óà¶î²»×㣬6-Ç¿ÖÆÍ£Ö¹,7-·¢ËÍÍê³É
switch(pSeeData->lStatus)
{
case 1: //´ý·¢ËÍ
case 2: //ÉóºËÖÐ
case 4: //ÕýÔÚ·¢ËÍ
case 5: //Óà¶î²»×ã
case 8: //Óû§ÉóºË
case 9: //Óû§ÉóºË2
if (pSeeData->lStatus==2) //ÉóºËÖÐ
{
menu.AppendMenu(MF_STRING , MENU_MMSTASK_PASS , _T(" ÉóºËͨ¹ý ") );
menu.AppendMenu(MF_STRING , MENU_MMSTASK_NOPASS , _T(" ÉóºËʧ°Ü ") );
menu.AppendMenu(MF_SEPARATOR );
}
menu.AppendMenu(MF_STRING , MENU_MMSTASK_STOP , _T(" Ç¿ÖÆÍ£Ö¹ÈÎÎñ ") );
break;
}
if ( m_pMainFrame->GetUserPurview(PURVIEW_LIST,false) )
{
switch(pSeeData->lStatus)
{
case 5: //Óà¶î²»×ã
case 6: //Ç¿ÖÆÍ£Ö¹
case 7: //ÒÑ·¢ËÍÍê³É
{
BOOL bReSend=true;
if ( pSeeData->lStatus==7 || pSeeData->lStatus==6 ) //·¢ËÍÍê³ÉµÄ£¬Èç¹ûÒÑ·¢ÊýÁ¿Ð¡ÓÚÈÎÎñÊýÁ¿£¬ÔÊÐíÖØÆôÈÎÎñ
{
if ( pSeeData->lYFMobileCount >= pSeeData->lMobileCount )
{
bReSend = false;
}
}
if ( bReSend )
{
menu.AppendMenu(MF_STRING , MENU_MMSTASK_RESEND , _T(" ÖØÆôÈÎÎñ ") );
}
}
break;
}
}
}
}
else
{
//menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_LIST_SEE , _T(" ²é ¿´ ") );
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_LIST_CORPLIST, _T(" ²éѯ´ËÆóÒµÇåµ¥ ") );
menu.AppendMenu(MF_SEPARATOR );
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_LIST_CORPOFF , _T(" ½ûÓÃ´ËÆóÒµ ") );
menu.AppendMenu(MF_SEPARATOR );
//menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_LIST_ADDBACK, _T(" Ìí¼Óµ½ºÚÃûµ¥ ") );
//menu.AppendMenu(MF_SEPARATOR );
//menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_LIST_SENDBBS, _T(" ·¢ËͺÚÃûµ¥ÆÁ±Î֪ͨ ") );
}
menu.AppendMenu(MF_SEPARATOR );
menu.AppendMenu(MF_STRING , MENU_LIST_COPY , _T(" ¸´ ÖÆ ") );
//ÏÔʾ²Ëµ¥
POINT pt ;
::GetCursorPos( &pt );
//this->ClientToScreen( &pt);
menu.TrackPopupMenu(TPM_LEFTBUTTON | TPM_RIGHTBUTTON,pt.x,pt.y, this, NULL);
menu.DestroyMenu();
}
long CK_MmsTask::GetCurrentSelected()
{
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
if ( pos )
{
return m_wndList.GetNextSelectedItem(pos);
}
return -1;
}
void CK_MmsTask::On_Task_Pass()
{
long lRet = MessageBox( _T("ȷʵҪ½«´ËÈÎÎñÉóºË³É¹¦£¿"),_T("ÌáÎÊ"),MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2);
if ( lRet != IDYES )
return ;
long lItem = this->GetCurrentSelected();
if ( lItem<0 )
return ;
ANS_PLTaskMms_SeeData * pSeeData = NULL;
if ( m_wndList.GetItemData(lItem) >0 )
{
pSeeData = m_ListData.GetAt((POSITION)m_wndList.GetItemData(lItem));
}
if ( !pSeeData )
return ;
REQ_PLTaskMms_Modify * pModify = new REQ_PLTaskMms_Modify;
memset(pModify , 0 , sizeof(REQ_PLTaskMms_Modify) );
pModify->lCorpID = pSeeData->lCorpID;
pModify->lUserID = pSeeData->lUserID;
pModify->lPLTaskMmsID = pSeeData->lPLTaskMmsID;
pModify->lItem = lItem;
pModify->lOldStatus = pSeeData->lStatus;
pModify->lStatus = 1; //Æô¶¯ÈÎÎñ,ÉóºË³É¹¦£¬Ï൱ÓÚÆô¶¯ÈÎÎñ
pModify->tMaxDelayTime = pSeeData->tCreateTime; //´´½¨Ê±¼ä
_tcscpy(pModify->szTitle, pSeeData->szTitle);
m_pMainFrame->SendFrame( SMSFUNC_PLTASKMMS_MODIFY , (BYTE*)pModify , sizeof(REQ_PLTaskMms_Modify) );
}
void CK_MmsTask::On_Task_NoPass()
{
long lRet = MessageBox( _T("ȷʵҪ½«´ËÈÎÎñÉóºËʧ°Ü£¿"),_T("ÌáÎÊ"),MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2);
if ( lRet != IDYES )
return ;
long lItem = this->GetCurrentSelected();
if ( lItem<0 )
return ;
ANS_PLTaskMms_SeeData * pSeeData = NULL;
if ( m_wndList.GetItemData(lItem) >0 )
{
pSeeData = m_ListData.GetAt((POSITION)m_wndList.GetItemData(lItem));
}
if ( !pSeeData )
return ;
REQ_PLTaskMms_Modify * pModify = new REQ_PLTaskMms_Modify;
memset(pModify , 0 , sizeof(REQ_PLTaskMms_Modify) );
pModify->lCorpID = pSeeData->lCorpID;
pModify->lUserID = pSeeData->lUserID;
pModify->lPLTaskMmsID = pSeeData->lPLTaskMmsID;
pModify->lItem = lItem;
pModify->lOldStatus = pSeeData->lStatus;
pModify->lStatus = 3; //ÉóºËʧ°Ü
pModify->tMaxDelayTime = pSeeData->tCreateTime; //´´½¨Ê±¼ä
_tcscpy(pModify->szTitle, pSeeData->szTitle);
m_pMainFrame->SendFrame( SMSFUNC_PLTASKMMS_MODIFY , (BYTE*)pModify , sizeof(REQ_PLTaskMms_Modify) );
}
void CK_MmsTask::On_Task_Stop()
{
long lRet = MessageBox( _T("È·ÊµÒªÇ¿ÖÆÍ£Ö¹´ËÈÎÎñÂð£¿"),_T("ÌáÎÊ"),MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2);
if ( lRet != IDYES )
return ;
long lItem = this->GetCurrentSelected();
if ( lItem<0 )
return ;
ANS_PLTaskMms_SeeData * pSeeData = NULL;
if ( m_wndList.GetItemData(lItem) >0 )
{
pSeeData = m_ListData.GetAt((POSITION)m_wndList.GetItemData(lItem));
}
if ( !pSeeData )
return ;
REQ_PLTaskMms_Modify * pModify = new REQ_PLTaskMms_Modify;
memset(pModify , 0 , sizeof(REQ_PLTaskMms_Modify) );
pModify->lCorpID = pSeeData->lCorpID;
pModify->lUserID = pSeeData->lUserID;
pModify->lPLTaskMmsID = pSeeData->lPLTaskMmsID;
pModify->lItem = lItem;
pModify->lOldStatus = pSeeData->lStatus;
pModify->lStatus = 6; //Ç¿ÖÆÍ£Ö¹
m_pMainFrame->SendFrame( SMSFUNC_PLTASKMMS_MODIFY , (BYTE*)pModify , sizeof(REQ_PLTaskMms_Modify) );
}
void CK_MmsTask::On_Task_ReSend()
{
long lRet = MessageBox( _T("È·ÊµÒªÖØÐÂÆô¶¯´ËÈÎÎñÂð£¿"),_T("ÌáÎÊ"),MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2);
if ( lRet != IDYES )
return ;
long lItem = this->GetCurrentSelected();
if ( lItem<0 )
return ;
ANS_PLTaskMms_SeeData * pSeeData = NULL;
if ( m_wndList.GetItemData(lItem) >0 )
{
pSeeData = m_ListData.GetAt((POSITION)m_wndList.GetItemData(lItem));
}
if ( !pSeeData )
return ;
REQ_PLTaskMms_Modify * pModify = new REQ_PLTaskMms_Modify;
memset(pModify , 0 , sizeof(REQ_PLTaskMms_Modify) );
pModify->lCorpID = pSeeData->lCorpID;
pModify->lUserID = pSeeData->lUserID;
pModify->lPLTaskMmsID = pSeeData->lPLTaskMmsID;
pModify->lItem = lItem;
pModify->lOldStatus = pSeeData->lStatus;
pModify->lStatus = 1; //ÖØÐÂÆô¶¯
m_pMainFrame->SendFrame( SMSFUNC_PLTASKMMS_MODIFY , (BYTE*)pModify , sizeof(REQ_PLTaskMms_Modify) );
}
void CK_MmsTask::On_User_See()
{
/*
if ( !m_pMainFrame->GetUserPurview(PURVIEW_FILT) )
{
return ;
}
long lItem = m_wndList.GetFirstSelectedItem();
if ( lItem < 0 )
return ;
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
POSITION pos2 = pos;
ANS_PLTaskMms_SeeData * pData = m_ListData.GetNext( pos );
if (!pData)
return ;
SMS_See sms={0};
_tcscpy( sms.szStatus , _T("δ֪") );
switch( pData->lSmsType )
{
case SMSTYPE_SEND:
_tcscpy(sms.szStatus , _T("·¢ ËÍ") );
break;
case SMSTYPE_ZF:
_tcscpy(sms.szStatus , _T("ת ·¢") );
break;
case SMSTYPE_ALARM:
_tcscpy(sms.szStatus , _T("ÈÕ³ÌÌáÐÑ") );
break;
case SMSTYPE_EMAIL:
_tcscpy(sms.szStatus , _T("Óʼþ֪ͨ") );
break;
case SMSTYPE_RECV:
_tcscpy(sms.szStatus , _T("½Ó ÊÕ") );
break;
case SMSTYPE_SP:
_tcscpy(sms.szStatus , _T("ÔöÖµÒµÎñ") );
break;
case SMSTYPE_SWT:
_tcscpy(sms.szStatus , _T("ÉÌÎñͨ") );
break;
}
if ( _tcslen(pData->szSender))
_stprintf( sms.szSender , _T("%s-%s") , pData->szSender,pData->szSendNum);
else
_stprintf( sms.szSender , _T("%s") , pData->szSendNum );
if ( _tcslen(pData->szRecver))
_stprintf( sms.szRecver , _T("%s-%s") , pData->szRecver,pData->szRecvNum);
else
_stprintf( sms.szRecver , _T("%s") , pData->szRecvNum );
_stprintf( sms.szSendTime , _T("%04d.%02d.%02d %02d:%02d:%02d") ,pData->tSendTime.wYear, pData->tSendTime.wMonth,pData->tSendTime.wDay,pData->tSendTime.wHour,pData->tSendTime.wMinute,pData->tSendTime.wSecond );
_stprintf( sms.szRecvTime , _T("%04d.%02d.%02d %02d:%02d:%02d") ,pData->tRecvTime.wYear,pData->tRecvTime.wMonth,pData->tRecvTime.wDay,pData->tRecvTime.wHour,pData->tRecvTime.wMinute,pData->tRecvTime.wSecond );
_tcscpy( sms.szMsg , pData->szMsg );
CString str;
str.Format(_T("%s; %-32s;%-4d") , pData->szRecvStatus,pData->szMsgID,pData->lSendRet);
str.TrimLeft();
str.TrimRight();
_tcscpy(sms.szAdd,str);
DLG_SmsLogSee dlg(this);
dlg.SetParam(sms);
dlg.DoModal();
*/
}
void CK_MmsTask::On_User_AddBack()
{
/*
if ( !m_pMainFrame->GetUserPurview(PURVIEW_FILT) )
{
return ;
}
long lItem = m_wndList.GetFirstSelectedItem();
if ( lItem < 0 )
return ;
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
POSITION pos2 = pos;
ANS_PLTaskMms_SeeData * pData = m_ListData.GetNext( pos );
if (!pData)
return ;
CString strTemp;
CString strMobile;
CString strMobile2;
CString strMsg;
CString str;
if ( pData->lSmsType == 4 )
{
strMobile = pData->szSendNum;
}
else
{
strMobile = pData->szRecvNum;
}
strMobile2 = strMobile;
#ifdef SMSMANAGER_KF
if ( strMobile2.GetLength()>7 )
{
strMobile2.SetAt(4,'*');
strMobile2.SetAt(5,'*');
strMobile2.SetAt(6,'*');
}
pData->szSendNum[4]='*';pData->szSendNum[5]='*';pData->szSendNum[6]='*';
#endif
strMsg = pData->szMsg;
str.Format( _T("ÕæµÄÒªÌí¼ÓÒÔÏÂÄÚÈݵ½ºÚÃûµ¥:\r\nºÅÂë:%s\r\nÄÚÈÝ:%s\r\n"),strMobile2,strMsg );
int iRet = MessageBox( str , _T("ÌáÎÊ") , MB_ICONQUESTION|MB_YESNO );
if ( iRet !=IDYES )
return ;
REQ_Back_Add * pAdd = new REQ_Back_Add;
memset(pAdd , 0 ,sizeof(REQ_Back_Add));
pAdd->lCorpID = pData->lCorpID;
pAdd->lUserID = -1;
_tcscpy(pAdd->szMobile , strMobile );
_stprintf( pAdd->szBZ , _T("ºǫ́Ìí¼Ó:%s") , strMsg );
m_pMainFrame->SendFrame(SMSFUNC_BACK_ADD,(BYTE*)pAdd,sizeof(REQ_Back_Add));
*/
}
void CK_MmsTask::On_User_SendBBS()
{
/*
if ( !m_pMainFrame->GetUserPurview(PURVIEW_FILT) )
{
return ;
}
long lItem = m_wndList.GetFirstSelectedItem();
if ( lItem < 0 )
return ;
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
POSITION pos2 = pos;
ANS_ListData * pData = m_ListData.GetNext( pos );
if (!pData)
return ;
//ÏòÓû§·¢ËÍÏûÏ¢
ANS_BBS_SeeData See={0};
See.lBBSID = 0;
See.lSCorpID = 0; //¹ÜÀíÔ±·¢µÄ
See.lSUserID = m_pMainFrame->m_lUserID; //¹ÜÀíÔ±ID
_tcscpy(See.szSCorpName,_T("¹ÜÀíÔ±"));
_tcscpy(See.szSLoginName , m_pMainFrame->m_Setup.szUser );
See.lRCorpID = pData->lCorpID;
See.lRUserID = pData->lUserID;
DLG_BBS_Send dlg(this);
dlg.SetParam( See , 3 );
if ( dlg.DoModal() == IDOK )
{
long lSize = sizeof(REQ_BBS_Send)+sizeof(ANS_BBS_SeeData);
BYTE * pModifyData = new BYTE[lSize];memset(pModifyData,0,lSize);
REQ_BBS_Send * pModify = (REQ_BBS_Send *)pModifyData; //Í·
ANS_BBS_SeeData * pSPData = (ANS_BBS_SeeData *)(pModifyData+sizeof(REQ_BBS_Send));
*pSPData = dlg.GetParam();
pModify->lItem = lItem;
pModify->lCount = 1;
m_pMainFrame->SendFrame( SMSFUNC_BBS_SEND , pModifyData , lSize );
}
return ;
*/
}
void CK_MmsTask::On_User_Export()
{
m_wndList.CopyToClipboard();
/*
//m_wndList.SetHeadings(_T("ÐòºÅ,40; Àà ÐÍ,80;״̬,50;ÆóÒµID,60;·¢ËÍÈË,70; ·¢ËͺÅÂë,120; ½ÓÊÕÈË,70; ½ÓÊÕºÅÂë,120; Ìύʱ¼ä,150; ·¢ËÍʱ¼ä,150; ½ÓÊÕʱ¼ä,150; ¶¨Ê±Ê±¼ä,150; ¶ÌÐÅÄÚÈÝ,1000; ÐÅÏ¢ID,150;"));
SortItem item[32]={0};
_tcscpy(item[0].szItem,_T("Àà ÐÍ"));
_tcscpy(item[1].szItem,_T("״̬"));
_tcscpy(item[2].szItem,_T("ÆóÒµID"));
_tcscpy(item[3].szItem,_T("·¢ËÍÈË"));
_tcscpy(item[4].szItem,_T("·¢ËͺÅÂë"));
_tcscpy(item[5].szItem,_T("½ÓÊÕÈË"));
_tcscpy(item[6].szItem,_T("½ÓÊÕºÅÂë"));
_tcscpy(item[7].szItem,_T("Ìύʱ¼ä"));
_tcscpy(item[8].szItem,_T("·¢ËÍʱ¼ä"));
_tcscpy(item[9].szItem,_T("½ÓÊÕʱ¼ä"));
_tcscpy(item[10].szItem,_T("¶¨Ê±Ê±¼ä"));
_tcscpy(item[11].szItem,_T("²ÊÐűêÌâ"));
_tcscpy(item[12].szItem,_T("״̬±¨¸æ"));
DLG_HZB_Export dlg(this);
dlg.SetParam( &m_wndList );
dlg.SetListItem(item,13,-2);
dlg.DoModal();
*/
}
void CK_MmsTask::On_User_Copy()
{
long lItem = m_wndList.GetFirstSelectedItem();
if ( lItem < 0 )
return ;
HGLOBAL hglbCopy;
LPTSTR lptstrCopy;
if (!OpenClipboard())
return ;
EmptyClipboard();
CString str,strTemp;
long lCol = m_wndList.GetColumnCount();
long lCount = m_wndList.GetSelectedItemCount();
for ( int i=0 ; i<lCol ; i++ )
{
LVCOLUMN lmn={0};
TCHAR szBuf[256]={0};
lmn.mask = LVCF_TEXT;
lmn.pszText = szBuf;
lmn.cchTextMax = sizeof(szBuf);
m_wndList.GetColumn(i , &lmn);
str += CString(lmn.pszText );
str += CString(_T("\t"));
}
str += _T("\r\n");
lItem = -1;
for ( i=0 ; i<lCount ; i++ )
{
lItem = m_wndList.GetFirstSelectedItem(lItem);
if ( lItem >=0 )
{
CString str1;
for ( int j=0 ; j<lCol; j++ )
{
str1=m_wndList.GetItemText(lItem,j);
#ifdef SMSMANAGER_KF
if ( j == 12 )
str1 = _T("");
#endif
str1.TrimLeft();str1.TrimRight();str1.Replace( _T("\t") , _T("") );str1.Replace( _T("\r") , _T("") );str1.Replace( _T("\n") , _T("") );
strTemp.Format(_T("%s\t"),str1);
str += strTemp;
}
str += _T("\r\n");
}
}
hglbCopy = GlobalAlloc(GMEM_MOVEABLE, (str.GetLength()+1)*sizeof(TCHAR));
if (hglbCopy == NULL)
{
CloseClipboard();
return ;
}
lptstrCopy = (LPTSTR)GlobalLock(hglbCopy);
_tcscpy(lptstrCopy,str);
GlobalUnlock(hglbCopy);
#ifdef _UNICODE
::SetClipboardData(CF_UNICODETEXT, hglbCopy);
#else
::SetClipboardData(CF_TEXT, hglbCopy);
#endif
CloseClipboard();
return ;
}
void CK_MmsTask::Close_Corp()
{
//Çå³ý¶ÓÁÐÖеÄÄÚÈÝ
while (!m_Corp.IsEmpty())
{
ANS_Corp_NameData * pData = m_Corp.GetHead();
m_Corp.RemoveHead();
delete pData;
}
}
void CK_MmsTask::Close_ListData()
{
//Çå³ý¶ÓÁÐÖеÄÄÚÈÝ
while (!m_ListData.IsEmpty())
{
ANS_PLTaskMms_SeeData * pData = m_ListData.GetHead();
m_ListData.RemoveHead();
delete pData;
}
}
void CK_MmsTask::On_User_CorpList()
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_FILT) )
{
return ;
}
long lItem = m_wndList.GetFirstSelectedItem();
if ( lItem < 0 )
return ;
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
POSITION pos2 = pos;
ANS_PLTaskMms_SeeData * pData = m_ListData.GetNext( pos );
if (!pData)
return ;
m_lQueryCorpID = pData->lCorpID;
OnListQuery();
}
void CK_MmsTask::On_User_CorpOFF()
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_FILT) )
{
return ;
}
long lItem = m_wndList.GetFirstSelectedItem();
if ( lItem < 0 )
return ;
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
POSITION pos2 = pos;
ANS_PLTaskMms_SeeData * pData = m_ListData.GetNext( pos );
if (!pData)
return ;
// CString str;
// str.Format( _T("ÊÇ·ñÒª½ûÓÃ´ËÆóÒµID:%d£¿\r\n½ûÓúó´ËÆóÒµ½«²»ÄܵǼ!"),pData->lCorpID );
// if ( MessageBox(str , _T("ÌáÎÊ") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2) != IDYES )
// return ;
ANS_Corp_SeeData data={0};
data.lCorpID = pData->lCorpID;
DLG_Corp_Oper_Open dlg(this);
dlg.SetParam(&data,false,this->m_pMainFrame->m_Setup.szUser);
if ( dlg.DoModal() == IDOK )
{
REQ_CorpOFF * pCorp = new REQ_CorpOFF;memset(pCorp,0,sizeof(REQ_CorpOFF));
pCorp->lCorpID = pData->lCorpID;
pCorp->lStatus = 0; //0Ϊ½ûÓã¬1ΪÆôÓÃ
_tcscpy(pCorp->szBZ , dlg.m_strBZ );
_tcscpy(pCorp->szOper , dlg.m_strOperName );
m_pMainFrame->SendFrame(SMSFUNC_CORPOFF,(BYTE*)pCorp,sizeof(REQ_CorpOFF));
}
}