AgentManager/DLG_ChangeCM.cpp
2025-01-22 15:45:17 +08:00

510 lines
12 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.

// 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;
}