AgentManager/DLG_ChangeCM.cpp

510 lines
12 KiB
C++
Raw Normal View History

2025-01-22 15:45:17 +08:00
// DLG_ChangeCM.cpp : implementation file
//
#include "stdafx.h"
#include "smsmanager.h"
#include "DLG_ChangeCM.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// DLG_ChangeCM dialog
DLG_ChangeCM::DLG_ChangeCM(CWnd* pParent /*=NULL*/)
: CDialog(DLG_ChangeCM::IDD, pParent)
, m_strCorpID(_T(""))
, m_strCorpName(_T(""))
, m_strUserName(_T(""))
, m_strFileName1(_T(""))
, m_lDocument1Type(0)
, m_strFileName2(_T(""))
, m_lDocument2Type(0)
, m_strRemark(_T(""))
, m_lSignNameType(0)
, m_lBelongTo(0)
{
//{{AFX_DATA_INIT(DLG_ChangeCM)
m_strCM = _T("");
m_lModifyType=0;
m_lCorpID=0;
m_lUserID = 0;
m_lAgentID = 0;
m_pMainFrame = 0;
// m_strMsg = _T("");
//}}AFX_DATA_INIT
m_bProcess = false;
memset(&m_SignNameData, 0, sizeof(m_SignNameData));
m_lUpAllSize = 0;
m_lUpUpSize = 0;
m_lUpFileID = 0;
m_lUploadFileIndex = 0;
}
void DLG_ChangeCM::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(DLG_ChangeCM)
DDX_Text(pDX, IDC_CHANGECM_CM, m_strCM);
DDV_MaxChars(pDX, m_strCM, 20);
// DDX_Text(pDX, IDC_CHANGECM_MSG, m_strMsg);
// DDV_MaxChars(pDX, m_strMsg, 510);
//}}AFX_DATA_MAP
DDX_Text(pDX, IDC_CHANGECM_CORPID, m_strCorpID);
DDX_Text(pDX, IDC_CHANGECM_CORPNAME, m_strCorpName);
DDX_Text(pDX, IDC_CHANGECM_USERNAME, m_strUserName);
// DDX_Text(pDX, IDC_CHANGECM_DOCUMENT1FILE, m_strFileName);
DDX_Control(pDX, IDC_CHANGECM_DOCUMENT1FILE, m_E_FileName1);
DDX_Text(pDX, IDC_CHANGECM_DOCUMENT1FILE, m_strFileName1);
DDX_CBIndex(pDX, IDC_CHANGECM_DOCUMENT1TYPE, m_lDocument1Type);
// DDX_Control(pDX, IDC_CHANGECM_DOCUMENT2FILE, m_E_File2);
DDX_Control(pDX, IDC_CHANGECM_DOCUMENT2FILE, m_E_FileName2);
DDX_Text(pDX, IDC_CHANGECM_DOCUMENT2FILE, m_strFileName2);
DDX_CBIndex(pDX, IDC_CHANGECM_DOCUMENT2TYPE, m_lDocument2Type);
DDX_Text(pDX, IDC_CHANGECM_REMARK, m_strRemark);
DDV_MaxChars(pDX, m_strRemark, 100);
DDX_CBIndex(pDX, IDC_CHANGECM_SIGNNMETYPE, m_lSignNameType);
DDX_CBIndex(pDX, IDC_CHANGECM_BELONGTO, m_lBelongTo);
}
BEGIN_MESSAGE_MAP(DLG_ChangeCM, CDialog)
//{{AFX_MSG_MAP(DLG_ChangeCM)
//}}AFX_MSG_MAP
ON_BN_CLICKED(IDC_CHANGECM_DOCUMENT1FILESEL, &DLG_ChangeCM::OnBnClickedChangecmDocument1filesel)
ON_BN_CLICKED(IDOK, &DLG_ChangeCM::OnBnClickedOk)
ON_BN_CLICKED(IDC_CHANGECM_DOCUMENT2FILESEL, &DLG_ChangeCM::OnBnClickedChangecmDocument2filesel)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// DLG_ChangeCM message handlers
void DLG_ChangeCM::SetBZ(const TCHAR *pType, const TCHAR *pBZ)
{
m_strType2 = pType;
m_strBZ2 = pBZ;
}
BOOL DLG_ChangeCM::OnInitDialog()
{
CDialog::OnInitDialog();
m_strCorpID.Format(_T("%d"), m_lCorpID);
m_lSignNameType = 0;
m_lBelongTo = 0;
m_lDocument1Type = 0;
m_lDocument2Type = 0;
if (m_lModifyType == 0)
{
GetDlgItem(IDC_CHANGECM_USERNAME)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_CHANGECM_USERNAME_S)->ShowWindow(SW_HIDE);
}
UpdateData(false);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void DLG_ChangeCM::OnBnClickedChangecmDocument1filesel()
{
CString str;
TCHAR szFile[256] = { 0 };
TCHAR szFileB[256] = { 0 };
*szFileB = NULL;
OPENFILENAME sOpen;
sOpen.lStructSize = sizeof(sOpen);
sOpen.hwndOwner = this->m_hWnd;
sOpen.Flags = OFN_EXPLORER | OFN_OVERWRITEPROMPT | OFN_HIDEREADONLY;
sOpen.lpstrFilter = TEXT("֤<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD> (*.jpg,*.png,*.pdf)\0*.jpg;*.png;*.pdf\0\0");
sOpen.lpstrDefExt = NULL;
sOpen.lpstrCustomFilter = NULL;
sOpen.nMaxCustFilter = 0;
sOpen.lpstrFile = szFile;
sOpen.nMaxFile = sizeof(szFile);
sOpen.lpstrFileTitle = szFileB;
sOpen.nMaxFileTitle = sizeof(szFileB);
sOpen.lpstrInitialDir = NULL;
sOpen.lpstrTitle = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǩ<EFBFBD><EFBFBD>֤<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD>jpg,png,pdf<64><66>ʽ");
if (!::GetOpenFileName(&sOpen))
{
return;
}
CString strName = sOpen.lpstrFile;
m_strSortFileName1 = sOpen.lpstrFileTitle;
if (m_strSortFileName1.GetLength() > 32)
m_strSortFileName1 = m_strSortFileName1.Right(32);
CFile file;
if (!file.Open(strName, CFile::modeRead))
{
str.Format(_T("<EFBFBD>޷<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>!\r\n%s"), strName);
MessageBox(str, _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), MB_ICONWARNING);
return;
}
if (file.GetLength() > 2*1024* 1024)
{
file.Close();
str.Format(_T("֤<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ2M<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С!\r\n%s"), strName);
MessageBox(str, _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), MB_ICONWARNING);
return;
}
file.Close();
m_E_FileName1.SetWindowText(strName);
}
void DLG_ChangeCM::OnBnClickedOk()
{
if (!UpdateData(true))
return;
if (m_strCM.GetLength() < 3 || m_strCM.GetLength() > 30)
{
MessageBox(_T("<EFBFBD><EFBFBD>д<EFBFBD><EFBFBD>ǩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD>ϣ<EFBFBD>"), _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), MB_ICONWARNING);
GetDlgItem(IDC_CHANGECM_CM)->SetFocus();
return;
}
if (m_strFileName1.GetLength() <= 0 && m_strFileName2.GetLength() <= 0)
{
MessageBox(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>ǩ<EFBFBD><EFBFBD>֤<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>"), _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), MB_ICONWARNING);
GetDlgItem(IDC_CHANGECM_DOCUMENT1FILESEL)->SetFocus();
return;
}
m_lUploadFileIndex = 0;
UpSignName(0);
//CDialog::OnOK();
}
void DLG_ChangeCM::SetParam(long lCorpID, long lUserID, long lAgentID, CMainFrame * pFrame, CString strCorpName, CString strUserName,long lModifyType)
{
m_lCorpID = lCorpID;
m_lUserID = lUserID;
m_lAgentID = lAgentID;
m_pMainFrame = pFrame;
m_strCorpName = strCorpName;
m_strUserName = strUserName;
m_lModifyType = lModifyType;
}
void DLG_ChangeCM::OnBnClickedChangecmDocument2filesel()
{
CString str;
TCHAR szFile[256] = { 0 };
TCHAR szFileB[256] = { 0 };
*szFileB = NULL;
OPENFILENAME sOpen;
sOpen.lStructSize = sizeof(sOpen);
sOpen.hwndOwner = this->m_hWnd;
sOpen.Flags = OFN_EXPLORER | OFN_OVERWRITEPROMPT | OFN_HIDEREADONLY;
sOpen.lpstrFilter = TEXT("֤<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD> (*.jpg,*.png,*.pdf)\0*.jpg;*.png;*.pdf\0\0");
sOpen.lpstrDefExt = NULL;
sOpen.lpstrCustomFilter = NULL;
sOpen.nMaxCustFilter = 0;
sOpen.lpstrFile = szFile;
sOpen.nMaxFile = sizeof(szFile);
sOpen.lpstrFileTitle = szFileB;
sOpen.nMaxFileTitle = sizeof(szFileB);
sOpen.lpstrInitialDir = NULL;
sOpen.lpstrTitle = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǩ<EFBFBD><EFBFBD>֤<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD>jpg,png,pdf<64><66>ʽ");
if (!::GetOpenFileName(&sOpen))
{
return;
}
CString strName = sOpen.lpstrFile;
m_strSortFileName2=sOpen.lpstrFileTitle;
if (m_strSortFileName2.GetLength() > 32)
m_strSortFileName2 = m_strSortFileName2.Right(32);
CFile file;
if (!file.Open(strName, CFile::modeRead))
{
str.Format(_T("<EFBFBD>޷<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>!\r\n%s"), strName);
MessageBox(str, _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), MB_ICONWARNING);
return;
}
if (file.GetLength() > 2 * 1024 * 1024)
{
file.Close();
str.Format(_T("֤<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ2M<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С!\r\n%s"), strName);
MessageBox(str, _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), MB_ICONWARNING);
return;
}
file.Close();
m_E_FileName2.SetWindowText(strName);
}
BOOL DLG_ChangeCM::UpFileOpen()
{
CString strFileName;
CString strSortFileName;
long lDocumentType = 0;
if (m_lUploadFileIndex == 0)
{
strFileName = m_strFileName1;
strSortFileName = m_strSortFileName1;
lDocumentType = m_lDocument1Type;
}
try
{
if (m_UpFile.m_hFile != CFile::hFileNull)
m_UpFile.Close();
}
catch (...)
{
}
BOOL bOpenFile = false;
if (strFileName.GetLength() > 0 && m_UpFile.Open(strFileName, CFile::modeRead))
{
bOpenFile = true;
}
else
{
if (m_lUploadFileIndex == 1)
{
strFileName = m_strFileName2;
strSortFileName = m_strSortFileName2;
lDocumentType = m_lDocument2Type;
}
if (strFileName.GetLength() > 0 && m_UpFile.Open(strFileName, CFile::modeRead))
{
bOpenFile = true;
}
}
if (bOpenFile)
{
long lSize = sizeof(REQ_Corp_File) + sizeof(ANS_Corp_FileData);
BYTE * pData = new BYTE[lSize]; memset(pData, 0, lSize);
REQ_Corp_File * pPayRet = (REQ_Corp_File *)pData;
ANS_Corp_FileData * pPayDataRet = (ANS_Corp_FileData *)(pData + sizeof(REQ_Corp_File));
pPayRet->lCorpID = m_lCorpID;
pPayRet->lCorpType = 0;//0<>ն˿ͻ<CBBF><CDBB><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
pPayRet->lReqType = 1; //<2F><><EFBFBD><EFBFBD>
pPayDataRet->lCorpID = m_lCorpID;
pPayDataRet->lCorpType = 0;//0<>ն˿ͻ<CBBF><CDBB><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
_stprintf(pPayDataRet->szFileType, _T("ǩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>%s<><73>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-%d"),m_strCM,lDocumentType);
_tcscpy(pPayDataRet->szFileName, strSortFileName);
m_strUpFileName = strSortFileName;
_tcscpy(pPayDataRet->szBZ, _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǩ<EFBFBD><EFBFBD>"));
::GetLocalTime(&pPayDataRet->tFileTime);
SendFrame(SMSFUNC_CORP_FILE, pData, lSize);
m_lUpAllSize = m_UpFile.GetLength();
m_lUpUpSize = 0;
CString strTitle;
strTitle.Format(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>֤<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>:%s..."), strSortFileName);
m_Process.SetProcessTitle(strTitle);
return true;
}
else
{
return UpSignName(1); //<2F><><EFBFBD><EFBFBD>FileID<49><44>
}
return false;
}
BOOL DLG_ChangeCM::UpSignName(long bAddType)
{
if (bAddType == 0)
{
memset(&m_SignNameData, 0, sizeof(m_SignNameData));
m_SignNameData.lSignNameID = 0;
m_SignNameData.lDefaultSignName = 1;
}
m_SignNameData.lCorpID = m_lCorpID;
m_SignNameData.lUserID = m_lUserID;
m_SignNameData.lAgentID = m_lAgentID;
//if (m_lUserID > 0) m_SignNameData.lUserSignName = 1; //<2F>û<EFBFBD>ǩ<EFBFBD><C7A9>
m_SignNameData.lUserSignName = m_lModifyType;
m_SignNameData.lSignNameType = m_lSignNameType;
m_SignNameData.lSignNameBelongTo = m_lBelongTo;
_tcscpy(m_SignNameData.szSignName, m_strCM);
m_SignNameData.lDocument1Type = m_lDocument1Type;
m_SignNameData.lDocument2Type = m_lDocument2Type;
_tcscpy(m_SignNameData.szRemark, m_strRemark);
REQ_SignName_Add * pAdd = new REQ_SignName_Add;
memset(pAdd, 0, sizeof(REQ_SignName_Add));
pAdd->lAddType = bAddType;
pAdd->data = m_SignNameData;
SendFrame(SMSFUNC_SIGNNAME_ADD, (BYTE*)pAdd, sizeof(REQ_SignName_Add));
return false;
}
BOOL DLG_ChangeCM::UpFileNext()
{
#define MAXUPFILESIZE 32*1024 //ÿ<><C3BF><EFBFBD>ϴ<EFBFBD>32K
long lSize = sizeof(REQ_Corp_File) + MAXUPFILESIZE;
BYTE * pData = new BYTE[lSize];
memset(pData, 0, lSize);
REQ_Corp_File * pFile = (REQ_Corp_File *)pData;
BYTE * pBuf = pData + sizeof(REQ_Corp_File);
pFile->lFileID = m_lUpFileID;
pFile->lReqType = 4; //<2F>ϴ<EFBFBD>
_tcscpy(pFile->szCorpName, m_strUpFileName);
pFile->lAllSize = m_lUpAllSize;
DWORD dwRead = 0;
dwRead = m_UpFile.Read(pBuf, MAXUPFILESIZE);
if (dwRead > 0)
{
m_lUpUpSize += dwRead;
pFile->lUpSize = m_lUpUpSize;
pFile->lSize = dwRead;
SendFrame(SMSFUNC_CORP_FILE, pData, lSize);
return true;
}
return false;
}
BOOL DLG_ChangeCM::SendFrame(DWORD lFuncType, unsigned char *pFrame, unsigned long lFrameLen)
{
try
{
if (m_pMainFrame)
return m_pMainFrame->SendFrame(lFuncType, pFrame, lFrameLen);
}
catch(...)
{
}
return false;
}
BOOL DLG_ChangeCM::ProcessSocket(Socket_Head *pHead)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
if (pHead->lFuncType == SMSFUNC_CORP_FILE)
{
ANS_Corp_File * pFile = (ANS_Corp_File *)pHead->pFrame;
ANS_Corp_FileData * pFileData = (ANS_Corp_FileData *)(pHead->pFrame + sizeof(ANS_Corp_File));
if (pFile->lCount < 0) //Ȩ<>޲<EFBFBD><DEB2><EFBFBD><E3A3AC><EFBFBD>ش<EFBFBD><D8B4><EFBFBD>
return true;
if (pFile->ret.lReqType == 1) //<2F><><EFBFBD><EFBFBD>
{
if (pFile->bOK && pFile->lCount > 0)
{
m_lUpFileID = pFileData->lFileID;
if (m_lUploadFileIndex == 0)
m_SignNameData.lDocument1FileID = m_lUpFileID;
if (m_lUploadFileIndex == 1)
m_SignNameData.lDocument2FileID = m_lUpFileID;
UpFileNext();
}
}
if (pFile->ret.lReqType == 4) //<2F>ϴ<EFBFBD>
{
if (pFile->bOK && pFile->lCount > 0)
{
if (pFile->ret.lAllSize == pFile->ret.lUpSize) //<2F><><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD>
{
m_lUploadFileIndex++;
UpFileOpen();
}
else
{
m_Process.SetProcess(pFile->ret.lAllSize+1, pFile->ret.lUpSize);
UpFileNext();
}
}
}
return true;
}
return false;
}
BOOL DLG_ChangeCM::ProcessSocket(Socket_Head_Add *pHead, BYTE *pFrame)
{
//<2F><><EFBFBD><EFBFBD>ǩ<EFBFBD><C7A9>
if (pHead->lFuncType == SMSFUNC_SIGNNAME_ADD)
{
ANS_SignName_Add * pAdd = (ANS_SignName_Add *)pFrame;
if (pAdd->lErrCode == 0)
{
if (pAdd->lAddType == 0)
{
m_SignNameData = pAdd->data;
m_lUploadFileIndex = 0;
if (UpFileOpen())
{
if (!m_bProcess)
{
m_bProcess = true;
m_Process.DoModal();
m_bProcess = false;
}
}
}
else
{
if (pAdd->lAddType == 1)
{
if (m_bProcess)
{
m_Process.SetProcess(100, 100); //<2F>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
MessageBox(_T("<EFBFBD>޸<EFBFBD>ǩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѵݽ<EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD>\r\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), _T("<EFBFBD><EFBFBD>Ϣ"), MB_ICONINFORMATION);
CDialog::OnOK();
return true;
}
}
}
else
{
if (m_bProcess)
{
m_Process.SetProcess(100, 100); //<2F>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
CString strError;
strError.Format(_T("<EFBFBD>޸<EFBFBD>ǩ<EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><EFBFBD>쳣ԭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>%s"), pAdd->szErrMsg);
MessageBox(strError, _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), MB_ICONERROR);
return true;
}
return true;
}
return false;
}