SmsCenter/SendThread.h

199 lines
5.8 KiB
C
Raw Normal View History

2025-01-03 16:47:25 +08:00
#if !defined(AFX_SENDTHREAD_H__25693B28_4ADE_405D_A48D_E71E7850D4FD__INCLUDED_)
#define AFX_SENDTHREAD_H__25693B28_4ADE_405D_A48D_E71E7850D4FD__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// SendThread.h : header file
//
typedef struct _SmsSendData
{
long lStatus; //<2F><><EFBFBD><EFBFBD>״̬,0-<2D><EFBFBD>ɹ<EFBFBD>,1-<2D>ύʧ<E1BDBB><CAA7>,2-<2D>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EEB2BB>,3-<2D><>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EEB2BB>,4-<2D><>ҵ<EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD>
long lSendID; //<2F><><EFBFBD>ͷ<EFBFBD><CDB7>ص<EFBFBD>ID
long lCorpID; //<2F><><EFBFBD>͵<EFBFBD><CDB5><EFBFBD>ҵID
long lUserID; //<2F><><EFBFBD>͵<EFBFBD><CDB5>û<EFBFBD>ID
TCHAR szGroupID[32];
long lReSendCount;
TCHAR szMsgID[32];
TCHAR szSender[32];
TCHAR szSendNum[32];
TCHAR szRecver[32];
TCHAR szRecvNum[32];
long lRecvNumType;
BOOL bStatusReport; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD>Ҫ״̬<D7B4><CCAC><EFBFBD><EFBFBD>
TCHAR szRecvStatus[32]; //<2F><><EFBFBD><EFBFBD>״̬
TCHAR szMsg[512]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
long lMsgType;
long lSendRet; //SubmitAExEx<45>ķ<EFBFBD><C4B7><EFBFBD>ֵ
long lSendFCS; //SubmitAExEx fcs<63>ķ<EFBFBD><C4B7><EFBFBD>ֵ
SYSTEMTIME tTimer; //<2F><>ʱʱ<CAB1><CAB1>
SYSTEMTIME tOvrTime; //<2F><>ʱʱ<CAB1><CAB1>
SYSTEMTIME tSendTime;
SYSTEMTIME tSubTime;
}SmsSendData;
typedef struct _SubmitData_Mobile
{
TCHAR szName[32];
TCHAR szMobile[32];
CString * pMsg;
}SubmitData_Mobile;
#define SubmitData_Mobile_Max 100
typedef struct _SubmitData
{
long lStatus; //<2F><><EFBFBD><EFBFBD>״̬,0-<2D><EFBFBD>ɹ<EFBFBD>,1-<2D>ύʧ<E1BDBB><CAA7>,2-<2D>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EEB2BB>,3-<2D><>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EEB2BB>,4-<2D><>ҵ<EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD>
long lItem; //<2F><><EFBFBD><EFBFBD>Item
long lItemID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>smsitem<65><6D><EFBFBD><EFBFBD>ID
long lSendID; //<2F><><EFBFBD>ͷ<EFBFBD><CDB7>ص<EFBFBD>ID
long lCorpID; //<2F><><EFBFBD>͵<EFBFBD><CDB5><EFBFBD>ҵID
long lUserID; //<2F><><EFBFBD>͵<EFBFBD><CDB5>û<EFBFBD>ID
TCHAR szSendNum[32];//<2F><><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>
TCHAR szName[32]; //Ŀ<><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TCHAR szMobile[32]; //Ŀ<><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TCHAR szMsg[2048]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
long lMobileCount; //Ŀ<><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1>=0,<2C><><EFBFBD><EFBFBD>szName,szMobileΪ׼
SubmitData_Mobile Mobile[SubmitData_Mobile_Max];//<2F><><EFBFBD><EFBFBD>100<30><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
long lKFCount; //<2F>۷<EFBFBD><DBB7><EFBFBD><EFBFBD><EFBFBD>
long lPrority; //<2F><><EFBFBD>ȼ<EFBFBD>
SYSTEMTIME tTimer; //<2F><>ʱʱ<CAB1><CAB1>
SYSTEMTIME tOvrTime; //<2F><>ʱʱ<CAB1><CAB1>
}SubmitData;
typedef struct _UpSmsS
{
long lCorpID;
long lUserID;
long lType;
LPVOID pDlg; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TCHAR szSendNum[32];
TCHAR szRecvNum[32];
TCHAR szMsg[256]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TCHAR szUrl[128]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TCHAR szAddNum[32];
SYSTEMTIME tSendTime;
long lSendID;
long lStatus;
TCHAR szAddStatus[32];
}UpSmsS;
typedef struct _MmsRecv
{
long lSendID; //<2F><><EFBFBD>ͷ<EFBFBD><CDB7>ص<EFBFBD>ID
long lCorpID; //<2F><><EFBFBD>͵<EFBFBD><CDB5><EFBFBD>ҵID
long lUserID; //<2F><><EFBFBD>͵<EFBFBD><CDB5>û<EFBFBD>ID
long lMmsFileID;
long lmmSize;
TCHAR szTitle[256];
TCHAR szSendNum[32];
TCHAR szRecvNum[32];
long lRecvNumType;
SYSTEMTIME tSendTime;
}MmsRecv;
///////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// CSendThread thread
#define TH_SEND WM_USER + 400 //<2F><><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>Ϣ
#define TH_RECV WM_USER + 401 //<2F><><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>Ϣ
#define SEND_SMS_MAXRESEND 3 //<2F><><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD>
class CSmsCenterDlg;
class CSendThread : public CWinThread
{
public:
typedef struct _BBS_Insert
{
long BBSID;
long SCorpID;
long SUserID;
TCHAR SCorpName[128];
TCHAR SUserName[128];
long RCorpID;
long RUserID;
long RAgentID;
long Status;
TCHAR Type[128];
TCHAR Name[128];
TCHAR Tel[128];
TCHAR Email[128];
TCHAR BZ[512];
long BBSType;
long CorpID;
long UserID;
TCHAR CM[128];
long AgentID;
long AgentYJ;
SYSTEMTIME expTime;
}BBS_Insert;
public:
BOOL m_bSend; //<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>ڷ<EFBFBD><DAB7>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD><EFBFBD>
CAdoConnection m_adoConnection;
CAdoRecordSet m_AdoRS;
CAdoRecordSet m_AdoRS1;
CAdoRecordSet m_AdoRS2;
CSmsCenterDlg * m_pSMSDlg;
long m_lSendCount;
DECLARE_DYNCREATE(CSendThread)
public:
CSendThread(); // protected constructor used by dynamic creation
// Attributes
public:
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CSendThread)
public:
virtual BOOL InitInstance();
virtual int ExitInstance();
//}}AFX_VIRTUAL
// Implementation
public:
static BOOL Recv_QQT(long lCorpID,long lUserID,long lRtx_GroupTaskID, CAdoRecordSet *pAdoRS, CAdoRecordSet *pAdoRS2, CSmsCenterDlg *pSMSDlg);
static BOOL PushRecvSmsToOtherCenter(HANDLE & hPipe,SmsSendData data, CString strProv,CString strCity);
static BOOL PushRecvSmsToOtherCenter(long lType,CAdoRecordSet *pAdoRS, SmsSendData data, CString strProv, CString strCity);
static BOOL Bbs_Insert_Sys(CAdoRecordSet *pAdoRS,CString strBZ, COleDateTime * pExpTime=NULL);
static BOOL Bbs_Insert(CAdoRecordSet *pAdoRS,BBS_Insert & bbs);
static BOOL ProcessUp(CSmsCenterDlg * pSMSDlg,DWORD dwType,long lMobileType,SmsSendData sms , CAdoRecordSet * pAdoRS, CAdoRecordSet * pAdoRS2,CAdoRecordSet * pAdoRS3,BOOL bReportNumber,long lCorpID,long lUserID,long lTDMode,CString strSName);
static BOOL Recv_Mms(MmsRecv mms,CAdoRecordSet * pAdoRS,CAdoRecordSet * pAdoRS2,CSmsCenterDlg * pSMSDlg);
//static BOOL SetSmsAddOne(CAdoRecordSet *pAdoRS,long lSendID,long lType=0);
//static BOOL SetSmsAddOne(CAdoRecordSet * pAdoRS , long lCorpID , long lUserID , long lKF , const TCHAR * pRecvStatus,long lSendRet,BOOL bAdc );
static DWORD WINAPI Recv_Sms_UpSms(LPVOID pParam);
static BOOL SplitNum( TCHAR * pCorp , TCHAR * pMan );
static long SubmitSms(SubmitData & SendData,CAdoRecordSet * pAdoRS,CAdoRecordSet * pAdoRS2,CSmsCenterDlg * pSMSDlg,long lMobileType,long lSmsType,long lSmsKF=0);
static BOOL Recv_Sms(HANDLE & hPipe,SmsSendData sms,CAdoRecordSet * pAdoRS,CAdoRecordSet * pAdoRS2,CAdoRecordSet * pAdoRS3,CSmsCenterDlg * pSMSDlg);
virtual ~CSendThread();
protected:
// Generated message map functions
//{{AFX_MSG(CSendThread)
// NOTE - the ClassWizard will add and remove member functions here.
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_SENDTHREAD_H__25693B28_4ADE_405D_A48D_E71E7850D4FD__INCLUDED_)