SmsCenter/ProcessSocket3.cpp

982 lines
34 KiB
C++
Raw Normal View History

// ProcessSocket3.cpp : implementation file
//
#include "stdafx.h"
#include "SmsCenter.h"
#include "ProcessSocket.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CProcessSocket
#include "SmsCenterDlg.h"
#include "..\public\pop3\pop3.h"
#include "..\public\ProxySocket\CBase64Coding.hpp"
#include "..\public\AutoBuffer\AutoBuffer.h"
#include "..\public\md53\MD5_L.h"
#include "..\public\mailclient\SMTPClient.h"
long CProcessSocket::Process_TDSet_Signature_See(REQ_TD2Signature_See* pSee)
{
try
{
if (!(m_ulPurview & PURVIEW_LIST)) //û<><C3BB>Ȩ<EFBFBD><C8A8><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>
{
ANS_TD2Signature_See* pSeeRet = new ANS_TD2Signature_See; //Ȩ<>޲<EFBFBD><DEB2><EFBFBD><EFBFBD><EFBFBD>ʲôҲ<C3B4><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
memset(pSeeRet, 0, sizeof(ANS_TD2Signature_See));
pSeeRet->req = *pSee;
pSeeRet->lCount = -1;
_tcscpy(pSeeRet->szErrMsg, _T("<EFBFBD><EFBFBD>ѯȨ<EFBFBD><EFBFBD><EFBFBD>쳣1"));
SendFrame(SMSFUNC_TD2SIGNATURETITLE_SEE, (BYTE*)pSeeRet, sizeof(ANS_TD2Signature_See)); //<2F><><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>
return 1;
}
CString str;
CString strWhere = _T(" 1=1 ");
if (pSee->lSignatureID > 0) //<2F><>ѯ<EFBFBD><D1AF>һǩ<D2BB><C7A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
{
str.Format(_T(" and SignatureID=%d"), pSee->lSignatureID);
strWhere.Append(str);
}
if (pSee->iTDID > 0) //<2F><>ѯ<EFBFBD><D1AF>һͨ<D2BB><CDA8>ID
{
str.Format(_T(" and TDID=%d"), pSee->iTDID);
strWhere.Append(str);
}
if (pSee->lCorpID > 0) //<2F><>ѯ<EFBFBD><D1AF>һ<EFBFBD><D2BB>ҵID
{
str.Format(_T(" and CorpID=%d"),pSee->lCorpID);
strWhere.Append(str);
}
if (_tcslen(pSee->szKey) > 0) //<2F>ؼ<EFBFBD><D8BC>ֲ<EFBFBD>ѯ<EFBFBD><D1AF>ҵ
{
str.Format(_T(" and ( signature like '%%%%%s%%%%' or corpanyname like '%%%%%s%%%%' or smsnum like '%%%%%s%%%%' )"), pSee->szKey, pSee->szKey, pSee->szKey);
strWhere.Append(str);
}
if (pSee->lStatus > 0) //<2F><>ѯ<EFBFBD><D1AF>һ״̬
{
str.Format(_T(" and status=%d"), pSee->lStatus-1);
strWhere.Append(str);
}
if (pSee->lOperType > 0) //<2F><>ѯ<EFBFBD><D1AF>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
str.Format(_T(" and opertype=%d"), pSee->lOperType - 1);
strWhere.Append(str);
}
if (pSee->bAddTime) //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
{
str.Format(_T(" and AddTime>='%04d%02d%02d %02d:%02d:%02d' and AddTime<='%04d%02d%02d %02d:%02d:%02d'"), pSee->tAddTimeBegin.wYear, pSee->tAddTimeBegin.wMonth, pSee->tAddTimeBegin.wDay, pSee->tAddTimeBegin.wHour, pSee->tAddTimeBegin.wMinute, pSee->tAddTimeBegin.wSecond, pSee->tAddTimeEnd.wYear, pSee->tAddTimeEnd.wMonth, pSee->tAddTimeEnd.wDay, pSee->tAddTimeEnd.wHour, pSee->tAddTimeEnd.wMinute, pSee->tAddTimeEnd.wSecond );
strWhere.Append(str);
}
if (pSee->bModifyTime) //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
{
str.Format(_T(" and UploadTime>='%04d%02d%02d %02d:%02d:%02d' and UploadTime<='%04d%02d%02d %02d:%02d:%02d'"), pSee->tModifyTimeBegin.wYear, pSee->tModifyTimeBegin.wMonth, pSee->tModifyTimeBegin.wDay, pSee->tModifyTimeBegin.wHour, pSee->tModifyTimeBegin.wMinute, pSee->tModifyTimeBegin.wSecond, pSee->tModifyTimeEnd.wYear, pSee->tModifyTimeEnd.wMonth, pSee->tModifyTimeEnd.wDay, pSee->tModifyTimeEnd.wHour, pSee->tModifyTimeEnd.wMinute, pSee->tModifyTimeEnd.wSecond);
strWhere.Append(str);
}
if (pSee->bAuditTime) //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
{
str.Format(_T(" and AuditTime>='%04d%02d%02d %02d:%02d:%02d' and AuditTime<='%04d%02d%02d %02d:%02d:%02d'"), pSee->tAuditTimeBegin.wYear, pSee->tAuditTimeBegin.wMonth, pSee->tAuditTimeBegin.wDay, pSee->tAuditTimeBegin.wHour, pSee->tAuditTimeBegin.wMinute, pSee->tAuditTimeBegin.wSecond, pSee->tAuditTimeEnd.wYear, pSee->tAuditTimeEnd.wMonth, pSee->tAuditTimeEnd.wDay, pSee->tAuditTimeEnd.wHour, pSee->tAuditTimeEnd.wMinute, pSee->tAuditTimeEnd.wSecond);
strWhere.Append(str);
}
m_bCheckTimeOut = false; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ⳬʱʱ<CAB1><CAB1>
str.Format(_T("select * from TD2Signature with(nolock) where %s"), strWhere);
BOOL b = m_AdoRS.Open(str);
long lCount = m_AdoRS.GetRecordCount();
if (lCount < 0) lCount = 0;
m_AdoRS.MoveFirst(); //<2F>ƶ<EFBFBD><C6B6><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>¼
//<2F><><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3>
long lPageRecords = LISTPAGE_RECORD;
long lPageMax = lCount / lPageRecords;
if (lPageMax * lPageRecords != lCount) lPageMax++;
long lAllCount = 0;
for (int j = 0; j < lPageMax; j++)
{
//lFrameCount<6E><74><EFBFBD><EFBFBD><EFBFBD>㵱ǰҳ<C7B0>ļ<EFBFBD>¼<EFBFBD><C2BC>
long lFrameCount = lPageRecords;
if (lFrameCount * (j + 1) > lCount)
lFrameCount = lCount - lFrameCount * j;
long lSize = sizeof(ANS_TD2Signature_See) + sizeof(ANS_TD2Signature_Data) * lFrameCount;
BYTE* pData = new BYTE[lSize]; memset(pData, 0, lSize);
ANS_TD2Signature_See* pListRet = (ANS_TD2Signature_See*)pData;
ANS_TD2Signature_Data* pListDataRet = (ANS_TD2Signature_Data*)(pData + sizeof(ANS_TD2Signature_See));
pListRet->lCount = lFrameCount;
pListRet->lPageAll = lPageMax;
pListRet->lPageCount = j + 1;
COleDateTime t;
long lTempCount = 0;
while (!m_AdoRS.IsEOF() && lTempCount < lFrameCount)
{
m_AdoRS.GetCollect(_T("SignatureID"), pListDataRet->iSignatureID);
m_AdoRS.GetCollect(_T("Status"), pListDataRet->iStatus);
m_AdoRS.GetCollect(_T("TDID"), pListDataRet->iTDID);
m_AdoRS.GetCollect(_T("Signature"), pListDataRet->szSignature);
m_AdoRS.GetCollect(_T("SmsNum"), pListDataRet->szSmsNum);
m_AdoRS.GetCollect(_T("CorpID"), pListDataRet->iCorpID);
m_AdoRS.GetCollect(_T("UserID"), pListDataRet->iUserID);
m_AdoRS.GetCollect(_T("SendCount"), pListDataRet->iSendCount);
m_AdoRS.GetCollect(_T("AddTime"), pListDataRet->tAddTime);
m_AdoRS.GetCollect(_T("OperType"), pListDataRet->iOperType);
m_AdoRS.GetCollect(_T("UploadTime"), pListDataRet->tUploadTime);
m_AdoRS.GetCollect(_T("AuditTime"), pListDataRet->tAuditTime);
m_AdoRS.GetCollect(_T("MainSmsNum"), pListDataRet->szMainSmsNum);
m_AdoRS.GetCollect(_T("CorpanyName"), pListDataRet->szCorpanyName);
m_AdoRS.GetCollect(_T("CorpanyNum"), pListDataRet->szCorpanyNum);
m_AdoRS.GetCollect(_T("Provvince"), pListDataRet->szProvvince);
m_AdoRS.GetCollect(_T("City"), pListDataRet->szCity);
m_AdoRS.GetCollect(_T("LegalName"), pListDataRet->szLegalName);
m_AdoRS.GetCollect(_T("LegalCertType"), pListDataRet->szLegalCertType);
m_AdoRS.GetCollect(_T("LegalCertID"), pListDataRet->szLegalCertID);
m_AdoRS.GetCollect(_T("AgencyName"), pListDataRet->szAgencyName);
m_AdoRS.GetCollect(_T("AgencyCertType"), pListDataRet->szAgencyCertType);
m_AdoRS.GetCollect(_T("AgencyCertID"), pListDataRet->szAgencyCertID);
m_AdoRS.GetCollect(_T("PortUsage"), pListDataRet->szPortUsage);
m_AdoRS.GetCollect(_T("PortType"), pListDataRet->szPortType);
m_AdoRS.GetCollect(_T("PortUsageCategory"), pListDataRet->szPortUsageCategory);
m_AdoRS.GetCollect(_T("SignatureSource"), pListDataRet->szSignatureSource);
m_AdoRS.GetCollect(_T("LocationServerRoom"), pListDataRet->szLocationServerRoom);
m_AdoRS.GetCollect(_T("ContentTemplate"), pListDataRet->szContentTemplate);
m_AdoRS.GetCollect(_T("fileId"), pListDataRet->szfileId);
m_AdoRS.GetCollect(_T("errData"), pListDataRet->szerrData);
m_AdoRS.GetCollect(_T("errType"), pListDataRet->szerrType);
m_AdoRS.GetCollect(_T("BZ"), pListDataRet->szBZ);
m_AdoRS.MoveNext();
pListDataRet++;
lTempCount++;
lAllCount++;
}
SendFrame(SMSFUNC_TD2SIGNATURE_SEE, (BYTE*)pData, lSize); //<2F><><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>
}
if (lAllCount <= 0) //ʲôҲ<C3B4>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>
{
ANS_TD2Signature_See* pSeeRet = new ANS_TD2Signature_See; //Ȩ<>޲<EFBFBD><DEB2><EFBFBD><EFBFBD><EFBFBD>ʲôҲ<C3B4><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
memset(pSeeRet, 0, sizeof(ANS_TD2Signature_See));
pSeeRet->lCount = 0;
_tcscpy(pSeeRet->szErrMsg, _T("<EFBFBD><EFBFBD>ѯ<EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>м<EFBFBD>¼"));
pSeeRet->lPageCount = 0;
pSeeRet->lPageAll = 0;
SendFrame(SMSFUNC_TD2SIGNATURE_SEE, (BYTE*)pSeeRet, sizeof(ANS_TD2Signature_See)); //<2F><><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>
}
m_bCheckTimeOut = true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ⳬʱʱ<CAB1><CAB1>
return 1;
}
catch (...)
{
LOG_APPERROR(_T("T"));
return 0;
}
return 0;
}
long CProcessSocket::Process_TDSet_SignatureTitle_See(REQ_TD2SignatureTitle_See* pSee)
{
try
{
ANS_TD2SignatureTitle_See* pSeeRet = new ANS_TD2SignatureTitle_See; //Ȩ<>޲<EFBFBD><DEB2><EFBFBD><EFBFBD><EFBFBD>ʲôҲ<C3B4><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
memset(pSeeRet, 0, sizeof(ANS_TD2SignatureTitle_See));
pSeeRet->req = *pSee;
if (!(m_ulPurview & PURVIEW_LIST)) //û<><C3BB>Ȩ<EFBFBD><C8A8><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>
{
pSeeRet->lCount = -1;
_tcscpy(pSeeRet->szErrMsg, _T("<EFBFBD><EFBFBD>ѯȨ<EFBFBD><EFBFBD><EFBFBD>쳣1"));
SendFrame(SMSFUNC_TD2SIGNATURETITLE_SEE, (BYTE*)pSeeRet, sizeof(ANS_TD2SignatureTitle_See)); //<2F><><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>
return 1;
}
CString str;
str.Format(_T("select * from TD2 with(nolock) where len(SignatureTitle)>0 order by tdid"));
m_AdoRS.Open(str);
long lCount = m_AdoRS.GetRecordCount();
if (lCount <= 0)
{
pSeeRet->lCount = 0;
_tcscpy(pSeeRet->szErrMsg, _T("<EFBFBD><EFBFBD>ѯ<EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD>¼"));
SendFrame(SMSFUNC_TD2SIGNATURETITLE_SEE, (BYTE*)pSeeRet, sizeof(ANS_TD2SignatureTitle_See)); //<2F><><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>
return 1;
}
long lSize = sizeof(ANS_TD2SignatureTitle_See) + sizeof(ANS_TD2SignatureTitle_Data) * lCount;
BYTE* pData = new BYTE[lSize];
memset(pData, 0, lSize);
ANS_TD2SignatureTitle_See* pRet = (ANS_TD2SignatureTitle_See*)pData;
ANS_TD2SignatureTitle_Data* pRetData = (ANS_TD2SignatureTitle_Data*)(pData + sizeof(ANS_TD2SignatureTitle_See));
*pRet = *pSeeRet;
delete pSeeRet; //ɾ<><C9BE>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>
for (int i = 0; i < lCount && !m_AdoRS.IsEOF(); i++)
{
m_AdoRS.GetCollect(_T("TDID"), pRetData->iTDID);
m_AdoRS.GetCollect(_T("SignatureTitle"), pRetData->szSignatureTitle);
m_AdoRS.GetCollect(_T("SignatureNum"), pRetData->szSmsNum);
m_AdoRS.MoveNext();
pRetData++;
}
pRet->lCount = i; //<2F><><EFBFBD>ؼ<EFBFBD>¼<EFBFBD><C2BC>
_tcscpy(pRet->szErrMsg, _T("<EFBFBD><EFBFBD>ѯ<EFBFBD>ɹ<EFBFBD>"));
SendFrame(SMSFUNC_TD2SIGNATURETITLE_SEE, (BYTE*)pData, lSize); //<2F><><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>
return 1;
}
catch (...)
{
LOG_APPERROR(_T("T"));
return 0;
}
return 0;
}
long CProcessSocket::Process_TDSet_Signature_Modify(REQ_TD2Signature_Modify* pModify)
{
try
{
CString str;
ANS_TD2Signature_Modify* pModifyRet = new ANS_TD2Signature_Modify; //Ȩ<>޲<EFBFBD><DEB2><EFBFBD><EFBFBD><EFBFBD>ʲôҲ<C3B4><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
memset(pModifyRet, 0, sizeof(ANS_TD2Signature_Modify));
pModifyRet->req = *pModify;
if (!(m_ulPurview & PURVIEW_LIST)) //û<><C3BB>Ȩ<EFBFBD><C8A8><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>
{
pModifyRet->iErrCode = -1;
_tcscpy(pModifyRet->szErrMsg, _T("Ȩ<EFBFBD><EFBFBD><EFBFBD>쳣1"));
SendFrame(SMSFUNC_TD2SIGNATURE_MODIFY, (BYTE*)pModifyRet, sizeof(ANS_TD2Signature_Modify)); //<2F><><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>
return 1;
}
ANS_TD2Signature_Data* pData = (ANS_TD2Signature_Data*)((BYTE*)pModify + sizeof(REQ_TD2Signature_Modify));
pModifyRet->iCount = pModify->iCount;
int iAllCover=0;
int iAllAdd = 0;
int iAllDel = 0;
int iAllIgnore = 0;
int iAllFail = 0;
for (int i = 0; i < pModify->iCount; i++)
{
CString strSignature = pData[i].szSignature;
CString strSmsNum = pData[i].szSmsNum;
CString strBZ;
CString strOldSignature;
BOOL bExist = false;
int iCover = 0;
int iAdd = 0;
int iDel = 0;
int iIgnore = 0;
int iError = 0;
BOOL bGetNewPort = false;
int iStatus = pData[i].iStatus;
BOOL bSql = true;
if (strSmsNum.GetLength() > 0)
{
//<2F><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>Ȳ<EFBFBD>ѯ<EFBFBD>˿ں<CBBF><DABA>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
if (pModify->iOperType == 0)//<2F><><EFBFBD><EFBFBD>
str.Format(_T("select * from TD2Signature where SmsNum='%s' and TDID=%d order by SignatureID desc"), strSmsNum, pModify->iTDID);
if (pModify->iOperType == 1)//<2F>޸<EFBFBD>
str.Format(_T("select * from TD2Signature where SignatureID<>%d and SmsNum='%s' and TDID=%d order by SignatureID desc"), pData->iSignatureID, strSmsNum, pModify->iTDID);
if (strSmsNum.GetLength() > 0 && m_AdoRS.Open(str) && !m_AdoRS.IsEOF())
{
bExist = true;
if (pData[i].iOperType == 2) ////<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>0-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1-<2D>޸ģ<DEB8>2-ɾ<><C9BE>
{
iDel = 1;
}
//int iConflict; //<2F><>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0-<2D>Ѵ<EFBFBD><D1B4><EFBFBD>-<2D><><EFBFBD><EFBFBD>;1-<2D><><EFBFBD>Ѵ<EFBFBD><D1B4><EFBFBD>-<2D><>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD>;2-<2D><><EFBFBD>Ѵ<EFBFBD><D1B4><EFBFBD>-<2D><><EFBFBD><EFBFBD>;3-<2D><><EFBFBD>Ѵ<EFBFBD><D1B4><EFBFBD>-<2D><><EFBFBD>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD>;
switch (pModify->iConflict)
{
case 0: //<2F><><EFBFBD><EFBFBD>
iCover = 1;
break;
case 2:
iAdd = 1; //<2F><><EFBFBD><EFBFBD>
bGetNewPort = true; //<2F><><EFBFBD>¶˿ں<CBBF>
break;
case 3:
iAdd = 1; //<2F><>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD>
bGetNewPort = false; //<2F><><EFBFBD>¶˿ں<CBBF>
break;
default: //1-<2D><><EFBFBD><EFBFBD>
iIgnore = 1;
break;
}
if (iCover == 1) //<2F><><EFBFBD>ڸ<EFBFBD><DAB8>ǣ<EFBFBD><C7A3><EFBFBD>Ҫ<EFBFBD><D2AA>¼ԭ<C2BC><D4AD>Ϣ
{
//<2F><><EFBFBD>ӱ<EFBFBD>ע<EFBFBD><D7A2>Ϣ
int lOldStatus = 0;
m_AdoRS.GetCollect(_T("SignatureID"), pData[i].iSignatureID);
m_AdoRS.GetCollect(_T("Status"), lOldStatus);
m_AdoRS.GetCollect(_T("Signature"), strOldSignature);
m_AdoRS.GetCollect(_T("BZ"), strBZ);
str.Format(_T("ԭ״̬<EFBFBD><EFBFBD>%d<><64>ԭǩ<D4AD><C7A9>:%s "), lOldStatus, strOldSignature);
strBZ.Append(str);
}
}
else
{
if (pModify->iOperType == 0)//<2F><><EFBFBD><EFBFBD>
iAdd = 1; //û<>ҵ<EFBFBD><D2B5>˿ڼ<CBBF>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (pModify->iOperType == 1)//<2F>޸<EFBFBD>
iCover = 1;
}
}
else
{
if (pModify->iConflict == 2) //<2F><><EFBFBD>¶˿<C2B6>
{
iAdd = 1; //<2F><><EFBFBD><EFBFBD>
bGetNewPort = true; //<2F><><EFBFBD>¶˿ں<CBBF>
}
}
if (bGetNewPort) //<2F><><EFBFBD><EFBFBD><EFBFBD>¶˿ں<CBBF>
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¶˿ںţ<DABA>״̬<D7B4>϶<EFBFBD><CFB6>Ǵ<EFBFBD><C7B4>ϴ<EFBFBD>
iStatus = 0; ////״̬<D7B4><CCAC>0-<2D><><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>1-<2D><><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>2-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>3-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δͨ<CEB4><CDA8><EFBFBD><EFBFBD>4-<2D><>ɾ<EFBFBD><C9BE>
CString strNewSmsNum;
//<2F><><EFBFBD><EFBFBD><EFBFBD>¶˿ں<CBBF>
str.Format(_T("select * from TD2 with(nolock) where TDID=%d"), pModify->iTDID);
if (m_AdoRS.Open(str) && !m_AdoRS.IsEOF())
{
m_AdoRS.GetCollect(_T("SignatureNum"), strNewSmsNum);
if (strNewSmsNum.GetLength() >= 6)
{
#ifdef SMSCENTER_ONE
strNewSmsNum.Append(_T("1550000"));
#endif
#ifdef SMSCENTER_THREE
strNewSmsNum.Append(_T("3550000"));
#endif
CString strLeftSmsNum = strNewSmsNum.Left(10);
str.Format(_T("select top 1 * from TD2Signature where TDID=%d and left(smsnum,10)='%s' order by smsnum desc"), pModify->iTDID, strLeftSmsNum);
if (m_AdoRS.Open(str) && !m_AdoRS.IsEOF())
{
m_AdoRS.GetCollect(_T("SmsNum"), strNewSmsNum);
}
LONGLONG llSmsNum = _ttoll(strNewSmsNum);
llSmsNum++;
strNewSmsNum.Format(_T("%lld"), llSmsNum);
}
}
if (strNewSmsNum.GetLength() >= 10)
{
_tcscpy(pData[i].szSmsNum, strNewSmsNum);
strSmsNum = strNewSmsNum; //<2F>¶˿ں<CBBF>
}
else
{
iError = 1;
}
}
if (strSmsNum.GetLength() <= 0) //û<>ж˿ںŵ<DABA><C5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
iError = 1;
}
if (iError == 0 && iIgnore == 0) //<2F><><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>к<EFBFBD><D0BA>ԣ<EFBFBD><D4A3><EFBFBD><EFBFBD><EFBFBD>
{
CString strStatus;
CString strTDID;
CString strOperType;
CString strAuditTime = _T("NULL");
if (pData[i].iOperType == 2) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˼<EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>״̬Ϊ4-<2D><>ɾ<EFBFBD><C9BE>
{
if (iStatus == 2)
{
iStatus = 4;////״̬<D7B4><CCAC>0-<2D><><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>1-<2D><><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>2-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>3-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δͨ<CEB4><CDA8><EFBFBD><EFBFBD>4-<2D><>ɾ<EFBFBD><C9BE>
strAuditTime = _T("GetDate()"); //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ϊ<EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD>¼ʱ<C2BC><CAB1>
}
}
strStatus.Format(_T("%d"), iStatus);
strTDID.Format(_T("%d"), pData[i].iTDID);
strOperType.Format(_T("%d"), pData[i].iOperType);
if (iAdd == 1)
{
//<2F><><EFBFBD>Ӽ<EFBFBD>¼
str.Format(_T("insert into TD2Signature (Status,TDID,Signature,SmsNum,CorpID,UserID,OperType,AuditTime,MainSmsNum,CorpanyName,CorpanyNum,Provvince,City,LegalName,LegalCertType,LegalCertID,AgencyName,AgencyCertType,AgencyCertID,PortUsage,PortType,PortUsageCategory,SignatureSource,LocationServerRoom,ContentTemplate,BZ,OperUser) " \
"values(% d, % d, '%s', '%s', % d, % d, % d, % s, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s','%s')"),
iStatus,
pData[i].iTDID,
SqlStr(strSignature),
SqlStr(strSmsNum),
0, 0, //corpID,UserID
pData[i].iOperType,
strAuditTime,
SqlStr(pData[i].szMainSmsNum),
SqlStr(pData[i].szCorpanyName),
SqlStr(pData[i].szCorpanyNum),
SqlStr(pData[i].szProvvince),
SqlStr(pData[i].szCity),
SqlStr(pData[i].szLegalName),
SqlStr(pData[i].szLegalCertType),
SqlStr(pData[i].szLegalCertID),
SqlStr(pData[i].szAgencyName),
SqlStr(pData[i].szAgencyCertType),
SqlStr(pData[i].szAgencyCertID),
SqlStr(pData[i].szPortUsage),
SqlStr(pData[i].szPortType),
SqlStr(pData[i].szPortUsageCategory),
SqlStr(pData[i].szSignatureSource),
SqlStr(pData[i].szLocationServerRoom),
SqlStr(pData[i].szContentTemplate),
SqlStr(strBZ),
SqlStr(m_szLoginName));
if (m_AdoRS.Open(str)) //ִ<>гɹ<D0B3><C9B9><EFBFBD>ȡIDֵ
{
str= _T("SELECT SCOPE_IDENTITY()");
bSql = m_AdoRS.Open(str);
if (bSql)
{
m_AdoRS.GetCollect((long)0, pData[i].iSignatureID);
}
}
else
{
bSql = false;
}
}
else
{
//<2F>޸ļ<DEB8>¼
CString strSignatureID;
strSignatureID.Format(_T("%d"), pData[i].iSignatureID);
str = CString("update TD2Signature set ") +
CString("Status='") + strStatus + CString("',") +
CString("TDID=") + strTDID + CString(",") +
CString("Signature='") + SqlStr(strSignature) + CString("',") +
CString("SmsNum='") + SqlStr(strSmsNum) + CString("',") +
CString("CorpID='") + CString(_T("0")) + CString("',") +
CString("UserID='") + CString(_T("0")) + CString("',") +
CString("OperType='") + strOperType + CString("',") +
CString("AuditTime=") + strAuditTime + CString(",") +
CString("MainSmsNum='") + SqlStr(pData[i].szMainSmsNum) + CString("',") +
CString("CorpanyName='") + SqlStr(pData[i].szCorpanyName) + CString("',") +
CString("CorpanyNum='") + SqlStr(pData[i].szCorpanyNum) + CString("',") +
CString("Provvince='") + SqlStr(pData[i].szProvvince) + CString("',") +
CString("City='") + SqlStr(pData[i].szCity) + CString("',") +
CString("LegalName='") + SqlStr(pData[i].szLegalName) + CString("',") +
CString("LegalCertType='") + SqlStr(pData[i].szLegalCertType) + CString("',") +
CString("LegalCertID='") + SqlStr(pData[i].szLegalCertID) + CString("',") +
CString("AgencyName='") + SqlStr(pData[i].szAgencyName) + CString("',") +
CString("AgencyCertType='") + SqlStr(pData[i].szAgencyCertType) + CString("',") +
CString("AgencyCertID='") + SqlStr(pData[i].szAgencyCertID) + CString("',") +
CString("PortUsage='") + SqlStr(pData[i].szPortUsage) + CString("',") +
CString("PortType='") + SqlStr(pData[i].szPortType) + CString("',") +
CString("PortUsageCategory='") + SqlStr(pData[i].szPortUsageCategory) + CString("',") +
CString("SignatureSource='") + SqlStr(pData[i].szSignatureSource) + CString("',") +
CString("LocationServerRoom='") + SqlStr(pData[i].szLocationServerRoom) + CString("',") +
CString("ContentTemplate='") + SqlStr(pData[i].szContentTemplate) + CString("',") +
CString("BZ='") + SqlStr(strBZ) + CString("', ") +
CString("OperUser='") + SqlStr(m_szLoginName) + CString("' ") +
CString("where SignatureID=") + strSignatureID;
bSql = m_AdoRS.Open(str);
}
if (!bSql) //ִ<><D6B4>ʧ<EFBFBD><CAA7>
{
iCover = 0; //
iAdd = 0;
iDel = 0;
iError = 1;
}
}
if (iIgnore == 1 || iError == 1)
{
pData[i].iSignatureID = 0; //<2F><><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>־
}
iAllCover = iAllCover + iCover;
iAllAdd = iAllAdd + iAdd;
iAllDel = iAllDel + iDel;
iAllIgnore = iAllIgnore + iIgnore;
iAllFail = iAllCover + iError;
}
long lSize = sizeof(ANS_TD2Signature_Modify) + sizeof(ANS_TD2Signature_Data) * pModify->iCount;// pUploadRet->iCount; //<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD><D8BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE* pDataRet = new BYTE[lSize];
memset(pDataRet, 0, lSize);
ANS_TD2Signature_Modify* pRet = (ANS_TD2Signature_Modify*)pDataRet;
ANS_TD2Signature_Data* pRetData = (ANS_TD2Signature_Data*)(pDataRet + sizeof(ANS_TD2Signature_Modify));
memcpy((BYTE*)pRetData, (BYTE*)pData, sizeof(ANS_TD2Signature_Data)* pModify->iCount); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*pRet = *pModifyRet;
delete pModifyRet; //ɾ<><C9BE>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>
/*
for (int i = 0; i < lCount && !m_AdoRS.IsEOF(); i++)
{
m_AdoRS.GetCollect(_T("TDID"), pRetData->iTDID);
m_AdoRS.GetCollect(_T("AccessPort"), pRetData->szSmsNum);
m_AdoRS.GetCollect(_T("SignatureTitle"), pRetData->szSignatureTitle);
m_AdoRS.MoveNext();
pRetData++;
}
*/
pRet->iErrCode = 0; //<2F><><EFBFBD>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
_stprintf(pRet->szErrMsg, _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>\r\n<EFBFBD><EFBFBD><EFBFBD>Ӽ<EFBFBD>¼<EFBFBD><EFBFBD>%d<><64>\r\n<EFBFBD>޸ļ<EFBFBD>¼<EFBFBD><EFBFBD>%d<><64>\r\n<EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD>¼<EFBFBD><EFBFBD>%d<><64>\r\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>%d\r\n"), iAllAdd, iAllCover, iAllIgnore, iAllFail);
SendFrame(SMSFUNC_TD2SIGNATURE_MODIFY, (BYTE*)pDataRet, lSize); //<2F><><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>
return 1;
}
catch (...)
{
LOG_APPERROR(_T("T"));
return 0;
}
return 0;
}
long CProcessSocket::Process_TDSet_Signature_ModifyStatus(REQ_TD2Signature_ModifyStatus* pModify)
{
try
{
if (!(m_ulPurview & PURVIEW_LIST)) //û<><C3BB>Ȩ<EFBFBD><C8A8><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>
{
ANS_TD2Signature_ModifyStatus* pSeeRet = new ANS_TD2Signature_ModifyStatus; //Ȩ<>޲<EFBFBD><DEB2><EFBFBD><EFBFBD><EFBFBD>ʲôҲ<C3B4><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
memset(pSeeRet, 0, sizeof(ANS_TD2Signature_ModifyStatus));
pSeeRet->lCount = -1;
_tcscpy(pSeeRet->szErrMsg, _T("<EFBFBD><EFBFBD>ѯȨ<EFBFBD><EFBFBD><EFBFBD>쳣1"));
SendFrame(SMSFUNC_TD2SIGNATURE_MODIFYSTATUS, (BYTE*)pSeeRet, sizeof(ANS_TD2Signature_ModifyStatus)); //<2F><><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>
return 1;
}
ANS_TD2Signature_ModifyStatus_Data* pReqData = (ANS_TD2Signature_ModifyStatus_Data*)( ((BYTE*)pModify) + sizeof(REQ_TD2Signature_ModifyStatus));
long lSize = sizeof(ANS_TD2Signature_ModifyStatus) + sizeof(ANS_TD2Signature_ModifyStatus_Data) * pModify->lCount;
BYTE* pData = new BYTE[lSize];
memset(pData, 0, lSize);
ANS_TD2Signature_ModifyStatus* pRet = (ANS_TD2Signature_ModifyStatus*)pData;
ANS_TD2Signature_ModifyStatus_Data* pRetData = (ANS_TD2Signature_ModifyStatus_Data*)(pData + sizeof(ANS_TD2Signature_ModifyStatus));
CString str;
for (int i = 0; i < pModify->lCount; i++)
{
long lCount1 = 0;
str.Format(_T("update TD2Signature set Status=%d, UploadTime=GetDate(), OperUser='%s' where SignatureID=%d"), pReqData->iNewStatus, SqlStr(this->m_szLoginName),pReqData->iSignatureID);
if (m_AdoRS2.GetConnection()->Execute(str, lCount1) && lCount1>0)
//if (m_AdoRS.Open(str))
{
pRetData->iItem = pReqData->iItem;
pRetData->iNewStatus = pReqData->iNewStatus;
pRetData->iSignatureID = pReqData->iSignatureID;
}
pReqData++;
pRetData++;
}
pRet->lCount = i; //<2F><><EFBFBD>ؼ<EFBFBD>¼<EFBFBD><C2BC>
_tcscpy(pRet->szErrMsg, _T("<EFBFBD><EFBFBD>ѯ<EFBFBD>ɹ<EFBFBD>"));
pRet->iNewStatus = pModify->iNewStatus;
pRet->iTDID = pModify->iTDID;
pRet->lPageAll = pModify->lPageAll;
pRet->lPageCount = pModify->lPageCount;
SendFrame(SMSFUNC_TD2SIGNATURE_MODIFYSTATUS, (BYTE*)pData, lSize); //<2F><><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>
return 1;
}
catch (...)
{
LOG_APPERROR(_T("T"));
return 0;
}
return 0;
}
long CProcessSocket::Process_TDSet_Signature_GetMaxSmsNum(REQ_TD2Signature_GetMaxSmsNum* pGet)
{
try
{
ANS_TD2Signature_GetMaxSmsNum* pGetRet = new ANS_TD2Signature_GetMaxSmsNum; //Ȩ<>޲<EFBFBD><DEB2><EFBFBD><EFBFBD><EFBFBD>ʲôҲ<C3B4><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
memset(pGetRet, 0, sizeof(ANS_TD2Signature_GetMaxSmsNum));
if (!(m_ulPurview & PURVIEW_LIST)) //û<><C3BB>Ȩ<EFBFBD><C8A8><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>
{
pGetRet->iErrCode = -1;
_tcscpy(pGetRet->szErrMsg, _T("<EFBFBD><EFBFBD>ѯȨ<EFBFBD><EFBFBD><EFBFBD>쳣1"));
SendFrame(SMSFUNC_TD2SIGNATURE_GETMAXSMSNUM, (BYTE*)pGetRet, sizeof(ANS_TD2Signature_GetMaxSmsNum)); //<2F><><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>
return 1;
}
CString str;
str.Format(_T("select * from TD2 with(nolock) where TDID=%d"), pGet->iTDID);
if (!m_AdoRS.Open(str) || m_AdoRS.IsEOF())
{
pGetRet->iErrCode = -2;
_tcscpy(pGetRet->szErrMsg, _T("ͨ<EFBFBD><EFBFBD>ID<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
SendFrame(SMSFUNC_TD2SIGNATURE_GETMAXSMSNUM, (BYTE*)pGetRet, sizeof(ANS_TD2Signature_GetMaxSmsNum)); //<2F><><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>
return 1;
}
CString strNewSmsNum;
m_AdoRS.GetCollect(_T("SignatureNum"), strNewSmsNum);
m_AdoRS.GetCollect(_T("SignatureTitle"), pGetRet->szSignatureTitle);
_tcscpy(pGetRet->szSmsNum, strNewSmsNum);
if (strNewSmsNum.GetLength() < 6)
{
pGetRet->iErrCode = -3;
_tcscpy(pGetRet->szErrMsg, _T("δ<EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
SendFrame(SMSFUNC_TD2SIGNATURE_GETMAXSMSNUM, (BYTE*)pGetRet, sizeof(ANS_TD2Signature_GetMaxSmsNum)); //<2F><><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>
return 1;
}
#ifdef SMSCENTER_ONE
strNewSmsNum.Append(_T("1550000"));
#endif
#ifdef SMSCENTER_THREE
strNewSmsNum.Append(_T("3550000"));
#endif
CString strLeftSmsNum = strNewSmsNum.Left(10);
str.Format(_T("select top 1 * from TD2Signature where TDID=%d and left(smsnum,10)='%s' order by smsnum desc"), pGet->iTDID, strLeftSmsNum);
if (m_AdoRS.Open(str) && !m_AdoRS.IsEOF())
{
m_AdoRS.GetCollect(_T("SmsNum"), strNewSmsNum);
}
LONGLONG llSmsNum = _ttoll(strNewSmsNum);
llSmsNum++;
str.Format(_T("%lld"), llSmsNum);
if (str.GetLength() < 10)
{
pGetRet->iErrCode = -4;
_tcscpy(pGetRet->szErrMsg, _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µĶ˿ںŴ<EFBFBD><EFBFBD><EFBFBD>"));
SendFrame(SMSFUNC_TD2SIGNATURE_GETMAXSMSNUM, (BYTE*)pGetRet, sizeof(ANS_TD2Signature_GetMaxSmsNum)); //<2F><><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>
return 1;
}
pGetRet->iTDID = pGet->iTDID;
pGetRet->iErrCode = 0;
_tcscpy(pGetRet->szErrMsg, _T("ȡ<EFBFBD>¶˿ںųɹ<EFBFBD>"));
_tcscpy(pGetRet->szMaxSmsNum, str);
SendFrame(SMSFUNC_TD2SIGNATURE_GETMAXSMSNUM, (BYTE*)pGetRet, sizeof(ANS_TD2Signature_GetMaxSmsNum)); //<2F><><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>
return 1;
}
catch (...)
{
LOG_APPERROR(_T("T"));
return 0;
}
return 0;
}
long CProcessSocket::Process_TDSet_Signature_Upload(REQ_TD2Signature_Upload* pUpload)
{
try
{
CString str;
ANS_TD2Signature_Upload* pUploadRet = new ANS_TD2Signature_Upload; //Ȩ<>޲<EFBFBD><DEB2><EFBFBD><EFBFBD><EFBFBD>ʲôҲ<C3B4><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
memset(pUploadRet, 0, sizeof(ANS_TD2Signature_Upload));
pUploadRet->iTDID = pUpload->iTDID;
pUploadRet->iType = pUpload->iType;
pUploadRet->iConflict = pUpload->iConflict;
pUploadRet->iAutoPort = pUpload->iAutoPort;
pUploadRet->iAllCount = pUpload->iAllCount;
pUploadRet->iUpCount = pUpload->iUpCount + pUpload->iCount; //<2F><><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
pUploadRet->iCount = pUpload->iCount;
pUploadRet->iCover = pUpload->iCover;
pUploadRet->iAdd = pUpload->iAdd;
pUploadRet->iDel = pUpload->iDel;
pUploadRet->iIgnore = pUpload->iIgnore;
pUploadRet->iFail = pUpload->iFail;
if (!(m_ulPurview & PURVIEW_LIST)) //û<><C3BB>Ȩ<EFBFBD><C8A8><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>
{
pUploadRet->iStatus = -1;
_tcscpy(pUploadRet->szErrMsg, _T("Ȩ<EFBFBD><EFBFBD><EFBFBD>쳣1"));
SendFrame(SMSFUNC_TD2SIGNATURE_UPLOAD, (BYTE*)pUploadRet, sizeof(ANS_TD2Signature_Upload)); //<2F><><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>
return 1;
}
ANS_TD2Signature_Data* pData = (ANS_TD2Signature_Data*)((BYTE*)pUpload + sizeof(REQ_TD2Signature_Upload));
for (int i = 0; i < pUploadRet->iCount; i++)
{
CString strSignature = pData[i].szSignature;
CString strSmsNum = pData[i].szSmsNum;
CString strBZ;
CString strOldSignature;
BOOL bExist = false;
int iCover = 0;
int iAdd = 0;
int iDel = 0;
int iIgnore = 0;
int iError = 0;
BOOL bGetNewPort = false;
int iStatus = 0;
//<2F><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>Ȳ<EFBFBD>ѯ<EFBFBD>˿ں<CBBF><DABA>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
str.Format(_T("select * from TD2Signature where SmsNum='%s' and TDID=%d order by SignatureID desc"), strSmsNum, pUploadRet->iTDID);
if (strSmsNum.GetLength() > 0 && m_AdoRS.Open(str) && !m_AdoRS.IsEOF())
{
bExist = true;
if (pData[i].iOperType == 2) ////<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>0-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1-<2D>޸ģ<DEB8>2-ɾ<><C9BE>
{
iDel = 1;
}
//int iConflict; //<2F><>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0-<2D>Ѵ<EFBFBD><D1B4><EFBFBD>-<2D><><EFBFBD><EFBFBD>;1-<2D><><EFBFBD>Ѵ<EFBFBD><D1B4><EFBFBD>-<2D><>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD>;2-<2D><><EFBFBD>Ѵ<EFBFBD><D1B4><EFBFBD>-<2D><><EFBFBD><EFBFBD>;3-<2D><><EFBFBD>Ѵ<EFBFBD><D1B4><EFBFBD>-<2D><><EFBFBD>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD>;
switch (pUploadRet->iConflict)
{
case 0: //<2F><><EFBFBD><EFBFBD>
iCover = 1;
break;
case 1: //<2F><><EFBFBD><EFBFBD>
iAdd = 1;
break;
case 3:
iAdd = 1; //<2F><><EFBFBD><EFBFBD>
bGetNewPort = true; //<2F><><EFBFBD>¶˿ں<CBBF>
break;
default: //<2F><><EFBFBD><EFBFBD>
iIgnore = 1;
break;
}
if (iCover == 1) //<2F><><EFBFBD>ڸ<EFBFBD><DAB8>ǣ<EFBFBD><C7A3><EFBFBD>Ҫ<EFBFBD><D2AA>¼ԭ<C2BC><D4AD>Ϣ
{
//<2F><><EFBFBD>ӱ<EFBFBD>ע<EFBFBD><D7A2>Ϣ
int lOldStatus = 0;
m_AdoRS.GetCollect(_T("SignatureID"), pData[i].iSignatureID);
m_AdoRS.GetCollect(_T("Status"), lOldStatus);
m_AdoRS.GetCollect(_T("Signature"), strOldSignature);
m_AdoRS.GetCollect(_T("BZ"), strBZ);
str.Format(_T("ԭ״̬<EFBFBD><EFBFBD>%d<><64>ԭǩ<D4AD><C7A9>:%s "), lOldStatus, strOldSignature);
strBZ.Append(str);
}
}
else
{
iAdd = 1; //û<>ҵ<EFBFBD><D2B5>˿ڼ<CBBF>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
if (pUploadRet->iType == 0) //0-<2D><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>,1Ϊ<31>ѱ<EFBFBD><D1B1><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD>ϴ<EFBFBD>
{
iStatus = 0; ////״̬<D7B4><CCAC>0-<2D><><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>1-<2D><><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>2-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>3-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δͨ<CEB4><CDA8><EFBFBD><EFBFBD>4-<2D><>ɾ<EFBFBD><C9BE>
if (pUploadRet->iAutoPort && _tcslen(pData[i].szSmsNum) <= 0) //<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¶˿ںţ<DABA><C5A3><EFBFBD><EFBFBD>Ҷ˿ں<CBBF>Ϊ<EFBFBD><CEAA>
{
bGetNewPort = true; //<2F><><EFBFBD>¶˿ں<CBBF>
}
}
else
{
iStatus = 2; ////״̬<D7B4><CCAC>0-<2D><><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>1-<2D><><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>2-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>3-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δͨ<CEB4><CDA8><EFBFBD><EFBFBD>4-<2D><>ɾ<EFBFBD><C9BE>
}
if (bGetNewPort) //<2F><><EFBFBD><EFBFBD><EFBFBD>¶˿ں<CBBF>
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¶˿ںţ<DABA>״̬<D7B4>϶<EFBFBD><CFB6>Ǵ<EFBFBD><C7B4>ϴ<EFBFBD>
iStatus = 0; ////״̬<D7B4><CCAC>0-<2D><><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>1-<2D><><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>2-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>3-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δͨ<CEB4><CDA8><EFBFBD><EFBFBD>4-<2D><>ɾ<EFBFBD><C9BE>
CString strNewSmsNum;
//<2F><><EFBFBD><EFBFBD><EFBFBD>¶˿ں<CBBF>
str.Format(_T("select * from TD2 with(nolock) where TDID=%d"), pUploadRet->iTDID);
if (m_AdoRS.Open(str) && !m_AdoRS.IsEOF())
{
m_AdoRS.GetCollect(_T("SignatureNum"), strNewSmsNum);
if (strNewSmsNum.GetLength() >= 6)
{
#ifdef SMSCENTER_ONE
strNewSmsNum.Append(_T("1550000"));
#endif
#ifdef SMSCENTER_THREE
strNewSmsNum.Append(_T("3550000"));
#endif
CString strLeftSmsNum = strNewSmsNum.Left(10);
str.Format(_T("select top 1 * from TD2Signature where TDID=%d and left(smsnum,10)='%s' order by smsnum desc"), pUploadRet->iTDID, strLeftSmsNum);
if (m_AdoRS.Open(str) && !m_AdoRS.IsEOF())
{
m_AdoRS.GetCollect(_T("SmsNum"), strNewSmsNum);
}
LONGLONG llSmsNum = _ttoll(strNewSmsNum);
llSmsNum++;
strNewSmsNum.Format(_T("%lld"), llSmsNum);
}
}
if (strNewSmsNum.GetLength() >= 10)
{
_tcscpy(pData[i].szSmsNum, strNewSmsNum);
strSmsNum = strNewSmsNum; //<2F>¶˿ں<CBBF>
}
else
{
iError = 1;
}
}
if (strSmsNum.GetLength() <= 0) //û<>ж˿ںŵ<DABA><C5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
iError = 1;
}
if (iError == 0 && iIgnore == 0) //<2F><><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>к<EFBFBD><D0BA>ԣ<EFBFBD><D4A3><EFBFBD><EFBFBD><EFBFBD>
{
CString strStatus;
CString strTDID;
CString strOperType;
CString strAuditTime = _T("NULL");
if (pData[i].iOperType == 2) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˼<EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>״̬Ϊ4-<2D><>ɾ<EFBFBD><C9BE>
{
if (iStatus == 2)
{
iStatus = 4;////״̬<D7B4><CCAC>0-<2D><><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>1-<2D><><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>2-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>3-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δͨ<CEB4><CDA8><EFBFBD><EFBFBD>4-<2D><>ɾ<EFBFBD><C9BE>
strAuditTime = _T("GetDate()"); //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ϊ<EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD>¼ʱ<C2BC><CAB1>
}
}
strStatus.Format(_T("%d"), iStatus);
strTDID.Format(_T("%d"), pData[i].iTDID);
strOperType.Format(_T("%d"), pData[i].iOperType);
if (iAdd == 1)
{
//<2F><><EFBFBD>Ӽ<EFBFBD>¼
str.Format(_T("insert into TD2Signature (Status,TDID,Signature,SmsNum,CorpID,UserID,OperType,AuditTime,MainSmsNum,CorpanyName,CorpanyNum,Provvince,City,LegalName,LegalCertType,LegalCertID,AgencyName,AgencyCertType,AgencyCertID,PortUsage,PortType,PortUsageCategory,SignatureSource,LocationServerRoom,ContentTemplate,BZ,OperUser) " \
"values(% d, % d, '%s', '%s', % d, % d, % d, % s, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s','%s')"),
iStatus,
pData[i].iTDID,
SqlStr(strSignature),
SqlStr(strSmsNum),
0, 0, //corpID,UserID
pData[i].iOperType,
strAuditTime,
SqlStr(pData[i].szMainSmsNum),
SqlStr(pData[i].szCorpanyName),
SqlStr(pData[i].szCorpanyNum),
SqlStr(pData[i].szProvvince),
SqlStr(pData[i].szCity),
SqlStr(pData[i].szLegalName),
SqlStr(pData[i].szLegalCertType),
SqlStr(pData[i].szLegalCertID),
SqlStr(pData[i].szAgencyName),
SqlStr(pData[i].szAgencyCertType),
SqlStr(pData[i].szAgencyCertID),
SqlStr(pData[i].szPortUsage),
SqlStr(pData[i].szPortType),
SqlStr(pData[i].szPortUsageCategory),
SqlStr(pData[i].szSignatureSource),
SqlStr(pData[i].szLocationServerRoom),
SqlStr(pData[i].szContentTemplate),
SqlStr(strBZ),
SqlStr(m_szLoginName) );
}
else
{
//<2F>޸ļ<DEB8>¼
CString strSignatureID;
strSignatureID.Format(_T("%d"), pData[i].iSignatureID);
str = CString("update TD2Signature set ") +
CString("Status='") + strStatus + CString("',") +
CString("TDID=") + strTDID + CString(",") +
CString("Signature='") + SqlStr(strSignature) + CString("',") +
CString("SmsNum='") + SqlStr(strSmsNum) + CString("',") +
CString("CorpID='") + CString(_T("0")) + CString("',") +
CString("UserID='") + CString(_T("0")) + CString("',") +
CString("OperType='") + strOperType + CString("',") +
CString("AuditTime=") + strAuditTime + CString(",") +
CString("MainSmsNum='") + SqlStr(pData[i].szMainSmsNum) + CString("',") +
CString("CorpanyName='") + SqlStr(pData[i].szCorpanyName) + CString("',") +
CString("CorpanyNum='") + SqlStr(pData[i].szCorpanyNum) + CString("',") +
CString("Provvince='") + SqlStr(pData[i].szProvvince) + CString("',") +
CString("City='") + SqlStr(pData[i].szCity) + CString("',") +
CString("LegalName='") + SqlStr(pData[i].szLegalName) + CString("',") +
CString("LegalCertType='") + SqlStr(pData[i].szLegalCertType) + CString("',") +
CString("LegalCertID='") + SqlStr(pData[i].szLegalCertID) + CString("',") +
CString("AgencyName='") + SqlStr(pData[i].szAgencyName) + CString("',") +
CString("AgencyCertType='") + SqlStr(pData[i].szAgencyCertType) + CString("',") +
CString("AgencyCertID='") + SqlStr(pData[i].szAgencyCertID) + CString("',") +
CString("PortUsage='") + SqlStr(pData[i].szPortUsage) + CString("',") +
CString("PortType='") + SqlStr(pData[i].szPortType) + CString("',") +
CString("PortUsageCategory='") + SqlStr(pData[i].szPortUsageCategory) + CString("',") +
CString("SignatureSource='") + SqlStr(pData[i].szSignatureSource) + CString("',") +
CString("LocationServerRoom='") + SqlStr(pData[i].szLocationServerRoom) + CString("',") +
CString("ContentTemplate='") + SqlStr(pData[i].szContentTemplate) + CString("',") +
CString("BZ='") + SqlStr(strBZ) + CString("', ") +
CString("OperUser='") + SqlStr(m_szLoginName) + CString("' ") +
CString("where SignatureID=") + strSignatureID;
}
if (!m_AdoRS.Open(str)) //ִ<><D6B4>ʧ<EFBFBD><CAA7>
{
iCover = 0; //
iAdd = 0;
iDel = 0;
iError = 1;
}
}
pUploadRet->iCover = pUploadRet->iCover + iCover;
pUploadRet->iAdd = pUploadRet->iAdd + iAdd;
pUploadRet->iDel = pUploadRet->iDel + iDel;
pUploadRet->iIgnore = pUploadRet->iIgnore + iIgnore;
pUploadRet->iFail = pUploadRet->iFail + iError;
}
long lSize = sizeof(ANS_TD2Signature_Upload) + sizeof(ANS_TD2Signature_Data) * 0;// pUploadRet->iCount; //<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD><D8BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE* pDataRet = new BYTE[lSize];
memset(pDataRet, 0, lSize);
ANS_TD2Signature_Upload* pRet = (ANS_TD2Signature_Upload*)pDataRet;
ANS_TD2Signature_Data* pRetData = (ANS_TD2Signature_Data*)(pDataRet + sizeof(ANS_TD2Signature_Upload));
*pRet = *pUploadRet;
delete pUploadRet; //ɾ<><C9BE>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>
/*
for (int i = 0; i < lCount && !m_AdoRS.IsEOF(); i++)
{
m_AdoRS.GetCollect(_T("TDID"), pRetData->iTDID);
m_AdoRS.GetCollect(_T("AccessPort"), pRetData->szSmsNum);
m_AdoRS.GetCollect(_T("SignatureTitle"), pRetData->szSignatureTitle);
m_AdoRS.MoveNext();
pRetData++;
}
*/
pRet->iStatus = 0; //<2F><><EFBFBD>ؼ<EFBFBD>¼<EFBFBD><C2BC>
_tcscpy(pRet->szErrMsg, _T("<EFBFBD>ϴ<EFBFBD><EFBFBD>ɹ<EFBFBD>"));
SendFrame(SMSFUNC_TD2SIGNATURE_UPLOAD, (BYTE*)pDataRet, lSize); //<2F><><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>
return 1;
}
catch (...)
{
LOG_APPERROR(_T("T"));
return 0;
}
return 0;
}