SmsManager/K_SmsTask.cpp
2025-01-14 10:46:18 +08:00

1478 lines
35 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_SmsTask.cpp : implementation file
//
#include "stdafx.h"
#include "smsmanager.h"
#include "K_SmsTask.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CK_SmsTask 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"
#include "SmsManagerDoc.h"
#include "UserView.h"
#include "DLG_CheckupSee.h"
#include "DLG_SmsTask_Modify.h"
CK_SmsTask::CK_SmsTask(CWnd* pParent /*=NULL*/)
: CDialog(CK_SmsTask::IDD, pParent)
{
//{{AFX_DATA_INIT(CK_SmsTask)
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_SmsTask::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CK_SmsTask)
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_SmsTask, CDialog)
//{{AFX_MSG_MAP(CK_SmsTask)
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_SMSLIST , On_User_SmsList)
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_SMSTASK_PASS , On_Task_Pass )
ON_COMMAND( MENU_SMSTASK_NOPASS , On_Task_NoPass )
ON_COMMAND( MENU_SMSTASK_STOP , On_Task_Stop )
ON_COMMAND( MENU_SMSTASK_RESEND , On_Task_ReSend )
ON_WM_TIMER()
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CK_SmsTask message handlers
BOOL CK_SmsTask::ReShow(BOOL bRefresh)
{
ShowWindow( SW_SHOW );
if ( bRefresh || !m_bRefresh )
{
RefreshInfo();
}
return true;
}
BOOL CK_SmsTask::ReHide()
{
ShowWindow( SW_HIDE );
return true;
}
BOOL CK_SmsTask::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_SmsTask::ProcessSocket(Socket_Head_Add *pHead,BYTE* pFrame)
{
CString str;
//È¡Çåµ¥
if (pHead->lFuncType == SMSFUNC_PLTASKSMS_SEE)
{
ANS_PLTaskSms_See * pList = (ANS_PLTaskSms_See *)pFrame;
ANS_PLTaskSms_SeeData * pData = (ANS_PLTaskSms_SeeData *)(pFrame+sizeof(ANS_PLTaskSms_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_PLTaskSms_SeeData * pNewData = new ANS_PLTaskSms_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-·¢ËÍÍê³É
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->szMsg);
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.SetItemText(lCount + i, lTemp++, pNewData->szAuditResult);
m_wndList.SetItemData(lCount+i,(DWORD)(pos) );
pData++;
}
//ÐèÒªÌáÐÑ
if (this->m_pMainFrame->m_Setup.Warning_Enable && m_pMainFrame->m_Setup.Warning_Timer > 0)
{
if (!m_pMainFrame->m_Setup.Warning_OnlyContent)
{
/*
KillTimer(1);
m_pMainFrame->m_pUserView->m_dlgCheckup.Warning_Close(); //Ë¢ÐÂÁË£¬Í£Ö¹±¨¾¯
#ifdef _DEBUG
SetTimer(1, 8 * 1000, NULL);
#else
SetTimer(1, m_pMainFrame->m_Setup.Warning_Timer * 60 * 1000, NULL);
#endif
*/
}
else
{
KillTimer(11); //Ë¢ÐÂÁË£¬²»Óó¬Ê±¼ì²â
if (m_lCheckCount > 0) //ÓÐÊý¾Ý£¬ÐèÒªÌáÐÑ
{
m_pMainFrame->m_pUserView->m_dlgCheckup.Warning_Checkup(_T("ÓÐÅúÁ¿ÐèÉóºË"));
}
else
{
//±¾´ÎÎÞÊý¾Ý£¬Í¬Ê±ÐèÅжÏÅúÁ¿ÉóºËÊÇ·ñÓÐÊý¾Ý£¬Èç¹ûÅúÁ¿ÉóºËҲûÊý¾Ý£¬¾Í²»ÓÃÔÙÌáÐÑÁË
if (m_pMainFrame->m_pUserView->m_dlgCheckup.m_wndList.GetItemCount() <= 0 &&
m_pMainFrame->m_pUserView->m_dlgTemplate.m_lCheckCount <= 0 &&
m_pMainFrame->m_pUserView->m_dlgSignName.m_lCheckCount <= 0)
{
KillTimer(2); //¹Øµôͼ±êÉÁ¶¯
m_pMainFrame->m_pUserView->m_dlgCheckup.Warning_Close(); //ÎÞÊý¾ÝÁË£¬Í£Ö¹±¨¾¯
}
#ifdef _DEBUG
SetTimer(10, 8 * 1000, NULL);
#else
SetTimer(10, m_pMainFrame->m_Setup.Warning_Timer * 60 * 1000, NULL); //Ï´Î×Ô¶¯Ë¢ÐÂʱ¼ä
#endif
}
}
}
return true;
}
if ( pHead->lFuncType == SMSFUNC_PLTASKSMS_MODIFY) //ÐÞ¸ÄÓû§
{
ANS_PLTaskSms_Modify * pSee = (ANS_PLTaskSms_Modify *)pFrame;
if ( pSee->bOK )
{
ANS_PLTaskSms_SeeData * pSeeData = NULL;
if ( m_wndList.GetItemData(pSee->lItem) >0 )
{
pSeeData = m_ListData.GetAt((POSITION)m_wndList.GetItemData(pSee->lItem));
}
if ( pSeeData && pSeeData->lPLTaskSmsID == pSee->lPLTaskSmsID )
{
pSeeData->lStatus = pSee->lStatus;
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;
}
if (pHead->lFuncType == SMSFUNC_PLTASKSMS_PLMODIFY) //ÐÞ¸ÄÓû§
{
ANS_PLTaskSms_PLModify* pSee = (ANS_PLTaskSms_PLModify*)pFrame;
REQ_PLTaskSms_PLModifyData * pData = (REQ_PLTaskSms_PLModifyData*)(pFrame + sizeof(ANS_PLTaskSms_PLModify));
if (pSee->bOK)
{
for (int i = 0; i < pSee->lCount; i++)
{
if (pData[i].lCorpID > 0 && pData[i].lPLTaskSmsID > 0)
{
ANS_PLTaskSms_SeeData* pSeeData = NULL;
if (m_wndList.GetItemData(pData[i].lItem) > 0)
{
pSeeData = m_ListData.GetAt((POSITION)m_wndList.GetItemData(pData[i].lItem));
}
if (pSeeData && pSeeData->lPLTaskSmsID == pData[i].lPLTaskSmsID && pData[i].bOK)
{
pSeeData->lStatus = pData[i].lStatus;
CString strTemp;
long lIcon;
switch (pSeeData->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(pData[i].lItem, 1, strTemp);
}
}
}
}
else
{
str.Format(_T("ÐÞ¸ÄÈÎÎñ״̬ʧ°Ü£º%s"), pSee->szErrMsg);
MessageBox(str, _T("´íÎó"), MB_ICONWARNING);
}
return true;
}
return false;
}
BOOL CK_SmsTask::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)pos);
pData ++;
}
m_L_Corp.SetCurSel(0);
return true;
}
return false;
}
BOOL CK_SmsTask::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;¶ÌÐÅÄÚÈÝ,450;Ìύʱ¼ä,150;¶¨Ê±Ê±¼ä,130;ÉóºËÀíÓÉ,150;"));
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_SmsTask::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_SmsTask::Close()
{
Close_Corp();
Close_ListData();
}
void CK_SmsTask::OnListQuery()
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_FILT) )
{
return ;
}
UpdateData(true);
if ( m_tEnd < m_tBegin )
{
MessageBox( _T("²éѯ½áÊøÈÕÆÚ²»ÄÜСÓÚÆðʼÈÕÆÚ£¬Çë¸ÄÕý!") , _T("´íÎó") , MB_ICONWARNING );
return ;
}
REQ_PLTaskSms_See * pSee = new REQ_PLTaskSms_See;
memset(pSee , 0 , sizeof(REQ_PLTaskSms_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_PLTASKSMS_SEE,(BYTE*)pSee,sizeof(REQ_PLTaskSms_See));
m_wndList.ShowWindow( SW_SHOW ); //ΪÁ˼ӿìÏÔʾËÙ¶È
return ;
}
void CK_SmsTask::OnDblclkListList(NMHDR* pNMHDR, LRESULT* pResult)
{
*pResult = 0;
On_User_See();
}
void CK_SmsTask::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_SmsTask::OnRclickListList(NMHDR* pNMHDR, LRESULT* pResult)
{
*pResult = 0;
ShowRMenu();
}
void CK_SmsTask::ShowRMenu()
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_FILT) )
{
return ;
}
if (m_lQueryCorpID == -100)
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_STRING , MENU_LIST_SMSLIST, _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_PLTaskSms_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_SMSTASK_PASS , _T(" Ñ¡ÖеÄÉóºËͨ¹ý ") );
menu.AppendMenu(MF_STRING , MENU_SMSTASK_NOPASS , _T(" Ñ¡ÖеÄÉóºËʧ°Ü ") );
menu.AppendMenu(MF_SEPARATOR );
}
menu.AppendMenu(MF_STRING , MENU_SMSTASK_STOP , _T(" Ç¿ÖÆÍ£Ö¹ÈÎÎñ ") );
break;
}
if ( m_pMainFrame->GetUserPurview(PURVIEW_FILT,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_SMSTASK_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_SmsTask::GetCurrentSelected()
{
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
if ( pos )
{
return m_wndList.GetNextSelectedItem(pos);
}
return -1;
}
void CK_SmsTask::On_Task_Pass()
{
SmsCheckup(true);
/*
long lRet = MessageBox( _T("ȷʵҪ½«´ËÈÎÎñÉóºË³É¹¦£¿"),_T("ÌáÎÊ"),MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2);
if ( lRet != IDYES )
return ;
long lItem = this->GetCurrentSelected();
if ( lItem<0 )
return ;
ANS_PLTaskSms_SeeData * pSeeData = NULL;
if ( m_wndList.GetItemData(lItem) >0 )
{
pSeeData = m_ListData.GetAt((POSITION)m_wndList.GetItemData(lItem));
}
if ( !pSeeData )
return ;
REQ_PLTaskSms_Modify * pModify = new REQ_PLTaskSms_Modify;
memset(pModify , 0 , sizeof(REQ_PLTaskSms_Modify) );
pModify->lCorpID = pSeeData->lCorpID;
pModify->lUserID = pSeeData->lUserID;
pModify->lPLTaskSmsID = pSeeData->lPLTaskSmsID;
pModify->lItem = lItem;
pModify->lOldStatus = pSeeData->lStatus;
pModify->lStatus = 1; //Æô¶¯ÈÎÎñ,ÉóºË³É¹¦£¬Ï൱ÓÚÆô¶¯ÈÎÎñ
pModify->tMaxDelayTime = pSeeData->tCreateTime; //´´½¨Ê±¼ä
_tcscpy(pModify->szMsg, pSeeData->szMsg);
pModify->lNotifyMobiles = pSeeData->lNotifyMobiles; //ÊÇ·ñÐèҪ֪ͨÊÖ»ú
m_pMainFrame->SendFrame( SMSFUNC_PLTASKSMS_MODIFY , (BYTE*)pModify , sizeof(REQ_PLTaskSms_Modify) );
*/
}
void CK_SmsTask::On_Task_NoPass()
{
SmsCheckup(false);
/*
long lItem = this->GetCurrentSelected();
if (lItem < 0)
return;
ANS_PLTaskSms_SeeData * pSeeData = NULL;
if (m_wndList.GetItemData(lItem) > 0)
{
pSeeData = m_ListData.GetAt((POSITION)m_wndList.GetItemData(lItem));
}
if (!pSeeData)
return;
CString strReason;
if (pSeeData->lNotifyMobiles) //ÓÐ֪ͨºÅÂëµÄ£¬ÐèҪдʧ°ÜÔ­Òò
{
DLG_SmsTask_Modify dlg(this);
dlg.SetParam(pSeeData);
if (dlg.DoModal() != IDOK)
return;
strReason = dlg.m_strReason;
}
else
{
long lRet = MessageBox(_T("ȷʵҪ½«´ËÈÎÎñÉóºËʧ°Ü£¿"), _T("ÌáÎÊ"), MB_ICONQUESTION | MB_YESNO | MB_DEFBUTTON2);
if (lRet != IDYES)
return;
}
REQ_PLTaskSms_Modify * pModify = new REQ_PLTaskSms_Modify;
memset(pModify , 0 , sizeof(REQ_PLTaskSms_Modify) );
pModify->lCorpID = pSeeData->lCorpID;
pModify->lUserID = pSeeData->lUserID;
pModify->lPLTaskSmsID = pSeeData->lPLTaskSmsID;
pModify->lItem = lItem;
pModify->lOldStatus = pSeeData->lStatus;
pModify->lStatus = 3; //ÉóºËʧ°Ü
pModify->tMaxDelayTime = pSeeData->tCreateTime; //´´½¨Ê±¼ä
_tcscpy(pModify->szMsg, pSeeData->szMsg);
pModify->lNotifyMobiles = pSeeData->lNotifyMobiles; //ÊÇ·ñÐèҪ֪ͨÊÖ»ú
_tcscpy(pModify->szReason, strReason); //ÉóºËʧ°ÜÔ­Òò
m_pMainFrame->SendFrame( SMSFUNC_PLTASKSMS_MODIFY , (BYTE*)pModify , sizeof(REQ_PLTaskSms_Modify) );
*/
}
void CK_SmsTask::SmsCheckup(BOOL bPass, BOOL bAllSelect)
{
//bPass ÊÇ·ñÉóºËͨ¹ý¡£
//bAllSelect ÊÇ·ñ²Ù×÷ËùÓÐÑ¡ÔñµÄ£¬·ñ-Ö»²Ù×÷Ñ¡ÔñµÄµÚÒ»Ìõ
if (!m_pMainFrame->GetUserPurview(PURVIEW_FILT))
{
return;
}
long lCount = m_wndList.GetSelectedCount();
if (lCount <= 0)
return;
if (lCount > 9)
{
MessageBox(_T("ÿ´Î×î¶àÖ»¿ÉÒÔ²Ù×÷9Ìõ¼Ç¼£¬Çë¼õÉÙÑ¡Ôñ·¶Î§¡£"), _T("¾¯¸æ"), MB_ICONWARNING);
return;
}
long lSize = sizeof(REQ_PLTaskSms_PLModify) + sizeof(REQ_PLTaskSms_PLModifyData) * lCount;
BYTE* pCheckupSend = new BYTE[lSize]; memset(pCheckupSend, 0, lSize);
BOOL bGetFirst = false;
REQ_PLTaskSms_PLModify* pCheckup = (REQ_PLTaskSms_PLModify*)pCheckupSend; //Í·
REQ_PLTaskSms_PLModifyData* pCheckupData = (REQ_PLTaskSms_PLModifyData*)(pCheckupSend + sizeof(REQ_PLTaskSms_PLModify));
pCheckup->lCount = lCount;
pCheckup->lUserID = this->m_pMainFrame->m_lUserID;
if (bPass)
pCheckup->lStatus = 1; //ÉóºËͨ¹ý
else
pCheckup->lStatus = 3; //ÉóºËʧ°Ü
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
ANS_PLTaskSms_SeeData* pSeeData;
COleDateTime tMaxDelayTime = COleDateTime::GetCurrentTime(); //È¡×ʱ¼äµÄ¶ÌÐÅ
CString strMaxDelayMsg;
long lMaxDelayCorpID = 0;
long lMaxDelayUserID = 0;
BOOL bNotifyMobiles = false;
POSITION pos2;
while (pos)
{
long lItem = m_wndList.GetNextSelectedItem(pos);
pos2 = (POSITION)m_wndList.GetItemData(lItem);
pSeeData = m_ListData.GetNext(pos2); //È¡µÃÁбíÖеÄpos
if (pSeeData && pSeeData->lStatus == 2) //Ö»ÓÐ״̬Ϊ2µÄ²ÅÐèÒªÉóºË
{
pCheckupData->lCorpID = pSeeData->lCorpID;
pCheckupData->lUserID = pSeeData->lUserID;
pCheckupData->lPLTaskSmsID = pSeeData->lPLTaskSmsID;
pCheckupData->lStatus = bPass;
pCheckupData->lItem = lItem;
pCheckupData->lOldStatus = pSeeData->lStatus;
pCheckupData->lStatus = pCheckup->lStatus;
_tcscpy(pCheckupData->szMsg, pSeeData->szMsg);
pCheckupData->lNotifyMobiles = pSeeData->lNotifyMobiles; //ÊÇ·ñÐèҪ֪ͨÊÖ»ú
if (pCheckupData->lNotifyMobiles)
bNotifyMobiles = true;
if (COleDateTime(pSeeData->tCreateTime) < tMaxDelayTime) //È¡×ʱ¼äµÄ¶ÌÐÅ
{
tMaxDelayTime = pSeeData->tCreateTime;
strMaxDelayMsg = pSeeData->szMsg;
lMaxDelayCorpID = pSeeData->lCorpID;
lMaxDelayUserID = pSeeData->lUserID;
}
}
if (!bGetFirst)
{
bGetFirst = true;
pCheckup->lCorpID = pSeeData->lCorpID;
}
if (!bAllSelect) //Èç¹û²»ÊÇ´¦ÀíÈ«²¿Ñ¡ÔñµÄ£¬µÚÒ»ÌõºóÍ˳ö¡£
break;
pCheckupData++;
}
if (strMaxDelayMsg.GetLength() > 0)
{
_tcscpy(pCheckup->szDelayMsg, strMaxDelayMsg);
pCheckup->lDelayCorpID = lMaxDelayCorpID;
tMaxDelayTime.GetAsSystemTime(pCheckup->tMaxDelayTime);
}
if (bPass == false && bNotifyMobiles)
{
DLG_SmsTask_Modify dlg(this);
dlg.SetParam(pSeeData,0,lCount);
if (dlg.DoModal() != IDOK)
{
delete [] pCheckupSend;
return;
}
_tcscpy(pCheckup->szReason, dlg.m_strReason);
}
else
{
CString strTip = _T("ȷʵҪ½«´ËÈÎÎñÉóºËʧ°Ü£¿");
if (bPass)
{
strTip = _T("ȷʵҪ½«´ËÈÎÎñÉóºËͨ¹ý£¿");
}
if (lCount > 1)
strTip.Append(_T("\r\n×¢Ò⣺ÄãÒÑÑ¡Ôñ¶àÌõ¼Ç¼£¬´ËΪÅúÁ¿²Ù×÷£¡"));
long lRet = MessageBox(strTip, _T("ÌáÎÊ"), MB_ICONQUESTION | MB_YESNO | MB_DEFBUTTON2);
if (lRet != IDYES)
{
delete[] pCheckupSend;
return;
}
}
m_pMainFrame->SendFrame(SMSFUNC_PLTASKSMS_PLMODIFY, pCheckupSend, lSize);
}
void CK_SmsTask::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_PLTaskSms_SeeData * pSeeData = NULL;
if ( m_wndList.GetItemData(lItem) >0 )
{
pSeeData = m_ListData.GetAt((POSITION)m_wndList.GetItemData(lItem));
}
if ( !pSeeData )
return ;
DLG_SmsTask_Modify dlg(this);
dlg.SetParam(pSeeData,1); //Ç¿ÖÆÍ£Ö¹
if (dlg.DoModal() != IDOK)
return;
CString strReason = dlg.m_strReason;
REQ_PLTaskSms_Modify * pModify = new REQ_PLTaskSms_Modify;
memset(pModify , 0 , sizeof(REQ_PLTaskSms_Modify) );
pModify->lCorpID = pSeeData->lCorpID;
pModify->lUserID = pSeeData->lUserID;
pModify->lPLTaskSmsID = pSeeData->lPLTaskSmsID;
pModify->lItem = lItem;
pModify->lOldStatus = pSeeData->lStatus;
pModify->lStatus = 6; //Ç¿ÖÆÍ£Ö¹
_tcscpy(pModify->szReason, strReason);//Í£Ö¹Ô­Òò
m_pMainFrame->SendFrame( SMSFUNC_PLTASKSMS_MODIFY , (BYTE*)pModify , sizeof(REQ_PLTaskSms_Modify) );
}
void CK_SmsTask::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_PLTaskSms_SeeData * pSeeData = NULL;
if ( m_wndList.GetItemData(lItem) >0 )
{
pSeeData = m_ListData.GetAt((POSITION)m_wndList.GetItemData(lItem));
}
if ( !pSeeData )
return ;
DLG_SmsTask_Modify dlg(this);
dlg.SetParam(pSeeData, 2); //ÖØÆôÈÎÎñ
if (dlg.DoModal() != IDOK)
return;
CString strReason = dlg.m_strReason;
REQ_PLTaskSms_Modify * pModify = new REQ_PLTaskSms_Modify;
memset(pModify , 0 , sizeof(REQ_PLTaskSms_Modify) );
pModify->lCorpID = pSeeData->lCorpID;
pModify->lUserID = pSeeData->lUserID;
pModify->lPLTaskSmsID = pSeeData->lPLTaskSmsID;
pModify->lItem = lItem;
pModify->lOldStatus = pSeeData->lStatus;
pModify->lStatus = 1; //ÖØÐÂÆô¶¯
_tcscpy(pModify->szReason, strReason);//ÖØÆôÔ­Òò
m_pMainFrame->SendFrame( SMSFUNC_PLTASKSMS_MODIFY , (BYTE*)pModify , sizeof(REQ_PLTaskSms_Modify) );
}
void CK_SmsTask::On_User_See()
{
if (!m_pMainFrame->GetUserPurview(PURVIEW_FILT))
{
return;
}
ANS_PLTaskSms_SeeData * pSeeData = NULL;
long lItem = GetCurrentSelected();
if (lItem < 0)
return;
if (m_wndList.GetItemData(lItem) > 0)
{
pSeeData = m_ListData.GetAt((POSITION)m_wndList.GetItemData(lItem));
}
if (!pSeeData)
return;
DLG_CheckupSee dlg(this);
dlg.SetParam2(*pSeeData);
dlg.DoModal();
}
void CK_SmsTask::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_PLTaskSms_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_SmsTask::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_SmsTask::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_SmsTask::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_SmsTask::Close_Corp()
{
//Çå³ý¶ÓÁÐÖеÄÄÚÈÝ
while (!m_Corp.IsEmpty())
{
ANS_Corp_NameData * pData = m_Corp.GetHead();
m_Corp.RemoveHead();
delete pData;
}
}
void CK_SmsTask::Close_ListData()
{
//Çå³ý¶ÓÁÐÖеÄÄÚÈÝ
while (!m_ListData.IsEmpty())
{
ANS_PLTaskSms_SeeData * pData = m_ListData.GetHead();
m_ListData.RemoveHead();
delete pData;
}
}
void CK_SmsTask::On_User_SmsList()
{
/*
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_PLTaskSms_SeeData * pData = m_ListData.GetNext(pos);
if (!pData)
return;
REQ_PLTaskSms_See * pSee = new REQ_PLTaskSms_See;
memset(pSee, 0, sizeof(REQ_PLTaskSms_See));
pSee->lCorpID = pData->lPLTaskSmsID;
pSee->lStatus = -100; //²éѯËùÓеļǼ
m_lQueryCorpID = -100;
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;
}
this->Close_ListData(); //¹Ø±ÕÔ­¶ÓÁÐ
m_wndList.ShowWindow(SW_HIDE); //ΪÁ˼ӿìÏÔʾËÙ¶È
m_wndList.DeleteAllItems(); //ÏÈɾ³ýËùÓмǼ
m_pMainFrame->SendFrame(SMSFUNC_PLTASKSMS_SEE, (BYTE*)pSee, sizeof(REQ_PLTaskSms_See));
m_wndList.ShowWindow(SW_SHOW); //ΪÁ˼ӿìÏÔʾËÙ¶È
}
void CK_SmsTask::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_PLTaskSms_SeeData * pData = m_ListData.GetNext( pos );
if (!pData)
return ;
this->m_pMainFrame->ShowFuncDlg(FUNC_LIST);
this->m_pMainFrame->m_pUserView->m_dlgList.m_lQueryCorpID = pData->lCorpID;
this->m_pMainFrame->m_pUserView->m_dlgList.OnListQuery();
/*
m_lQueryCorpID = pData->lCorpID;
OnListQuery();
*/
}
void CK_SmsTask::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_PLTaskSms_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));
}
}
void CK_SmsTask::OnTimer(UINT_PTR nIDEvent)
{
CDialog::OnTimer(nIDEvent);
if (nIDEvent == 10) //Ë¢ÐÂÊý¾Ý
{
KillTimer(10);
#ifdef _DEBUG
SetTimer(11, 5000, NULL); //40Ãëˢг¬Ê±
#else
SetTimer(11, 40000, NULL); //40Ãëˢг¬Ê±
#endif
OnListQuery();
}
if (nIDEvent == 11) //ˢг¬Ê±
{
KillTimer(nIDEvent);
m_pMainFrame->m_pUserView->m_dlgCheckup.Warning_Checkup(_T("¶ÌÐÅˢг¬Ê±"));
#ifdef _DEBUG
SetTimer(10, 8 * 1000, NULL);
#else
SetTimer(10, m_pMainFrame->m_Setup.Warning_Timer * 60 * 1000 /2, NULL); //³¬Ê±ºóÔÙ´ÎË¢ÐÂ
#endif
}
}