199 lines
5.8 KiB
C++
199 lines
5.8 KiB
C++
#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; //发送状态,0-提交成功,1-提交失败,2-用户余额不足,3-企业余额不足,4-企业已过期
|
|
long lSendID; //发送返回的ID
|
|
long lCorpID; //发送的企业ID
|
|
long lUserID; //发送的用户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; //是否需要状态报告
|
|
TCHAR szRecvStatus[32]; //接收状态
|
|
TCHAR szMsg[512]; //短信内容
|
|
long lMsgType;
|
|
long lSendRet; //SubmitAExEx的返回值
|
|
long lSendFCS; //SubmitAExEx fcs的返回值
|
|
SYSTEMTIME tTimer; //定时时间
|
|
SYSTEMTIME tOvrTime; //超时时间
|
|
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; //发送状态,0-提交成功,1-提交失败,2-用户余额不足,3-企业余额不足,4-企业已过期
|
|
long lItem; //保存Item
|
|
long lItemID; //保存在smsitem里的ID
|
|
long lSendID; //发送返回的ID
|
|
long lCorpID; //发送的企业ID
|
|
long lUserID; //发送的用户ID
|
|
TCHAR szSendNum[32];//发送号码
|
|
TCHAR szName[32]; //目标姓名
|
|
TCHAR szMobile[32]; //目标号码
|
|
TCHAR szMsg[2048]; //短信内容
|
|
|
|
long lMobileCount; //目标号码数量,如果数量小于=0,则以szName,szMobile为准
|
|
SubmitData_Mobile Mobile[SubmitData_Mobile_Max];//最多100个号码
|
|
long lKFCount; //扣费数量
|
|
|
|
long lPrority; //优先级
|
|
SYSTEMTIME tTimer; //定时时间
|
|
SYSTEMTIME tOvrTime; //超时时间
|
|
}SubmitData;
|
|
|
|
typedef struct _UpSmsS
|
|
{
|
|
long lCorpID;
|
|
long lUserID;
|
|
long lType;
|
|
LPVOID pDlg; //主窗口
|
|
TCHAR szSendNum[32];
|
|
TCHAR szRecvNum[32];
|
|
TCHAR szMsg[256]; //短信内容
|
|
TCHAR szUrl[128]; //短信内容
|
|
TCHAR szAddNum[32];
|
|
SYSTEMTIME tSendTime;
|
|
|
|
long lSendID;
|
|
long lStatus;
|
|
TCHAR szAddStatus[32];
|
|
}UpSmsS;
|
|
|
|
|
|
|
|
typedef struct _MmsRecv
|
|
{
|
|
|
|
long lSendID; //发送返回的ID
|
|
long lCorpID; //发送的企业ID
|
|
long lUserID; //发送的用户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 //发送短消息
|
|
#define TH_RECV WM_USER + 401 //发送短消息
|
|
|
|
#define SEND_SMS_MAXRESEND 3 //发送短信时,最大重试次数
|
|
|
|
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; //现在是否在发送短信中
|
|
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_)
|