// DLG_SignNameSee.cpp: 实现文件 // #include "stdafx.h" #include "SmsManager.h" #include "DLG_SignNameSee.h" #include "afxdialogex.h" #include "DLG_Corp_LXR_SF.h" // DLG_Corp_File dialog #include "MainFrm.h" #include "K_SignName.h" // DLG_SignNameSee 对话框 IMPLEMENT_DYNAMIC(DLG_SignNameSee, CDialogEx) DLG_SignNameSee::DLG_SignNameSee(CWnd* pParent /*=nullptr*/) : CDialogEx(IDD_SIGNNAMESEE, pParent) , m_strAuditKF(_T("")) , m_strAuditOpinon(_T("")) , m_strBelongTo(_T("")) , m_strCorp(_T("")) , m_strCreateTime(_T("")) , m_bDefaultSignName(FALSE) , m_strDocType1(_T("")) , m_strDocType2(_T("")) , m_strDocType3(_T("")) , m_strFileName1(_T("")) , m_strFileName2(_T("")) , m_strFileName3(_T("")) , m_strRemark(_T("")) , m_strSignName(_T("")) , m_strSignNameType(_T("")) , m_bOpenCorp(FALSE) , m_strCorpBelongTo(_T("")) { m_pDlg = (CDialog *)pParent; m_lSeeType = 0; //0-仅查看,1-允许修改 m_lAuditStatus = 0; //0-不改变审核;1-改变审核成功,2-改为审核失败 memset(&m_SeeData, 0, sizeof(m_SeeData)); m_lDownAllSize = 0; m_lDownUpSize = 0; m_lDownFileID = 0; } DLG_SignNameSee::~DLG_SignNameSee() { } void DLG_SignNameSee::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); DDX_Text(pDX, IDC_SIGNNAMESEE_AUDITKF, m_strAuditKF); DDX_Text(pDX, IDC_SIGNNAMESEE_AUDITOPINION, m_strAuditOpinon); DDX_Text(pDX, IDC_SIGNNAMESEE_BELONGTO, m_strBelongTo); DDX_Text(pDX, IDC_SIGNNAMESEE_CORP, m_strCorp); DDX_Text(pDX, IDC_SIGNNAMESEE_CREATETIME, m_strCreateTime); DDX_Check(pDX, IDC_SIGNNAMESEE_DEFAULTSIGNNAME, m_bDefaultSignName); DDX_Text(pDX, IDC_SIGNNAMESEE_DOCTYPE1, m_strDocType1); DDX_Text(pDX, IDC_SIGNNAMESEE_DOCTYPE2, m_strDocType2); DDX_Text(pDX, IDC_SIGNNAMESEE_DOCTYPE3, m_strDocType3); DDX_Text(pDX, IDC_SIGNNAMESEE_FILENAME1, m_strFileName1); DDX_Text(pDX, IDC_SIGNNAMESEE_FILENAME2, m_strFileName2); DDX_Text(pDX, IDC_SIGNNAMESEE_FILENAME3, m_strFileName3); DDX_Text(pDX, IDC_SIGNNAMESEE_REMARK, m_strRemark); DDV_MaxChars(pDX, m_strRemark, 200); DDX_Text(pDX, IDC_SIGNNAMESEE_SIGNNAME, m_strSignName); DDX_Text(pDX, IDC_SIGNNAMESEE_SIGNNAMETYPE, m_strSignNameType); DDX_Check(pDX, IDC_SIGNNAMESEE_OPEN, m_bOpenCorp); DDX_Control(pDX, IDC_SIGNNAMESEE_GDT, m_P_GDT); DDX_Text(pDX, IDC_SIGNNAMESEE_CORPBELONGTO, m_strCorpBelongTo); } BEGIN_MESSAGE_MAP(DLG_SignNameSee, CDialogEx) ON_BN_CLICKED(IDOK, &DLG_SignNameSee::OnBnClickedOk) ON_BN_CLICKED(IDCANCEL, &DLG_SignNameSee::OnBnClickedCancel) ON_BN_CLICKED(IDC_SIGNNAMESEE_DOCSEE1, &DLG_SignNameSee::OnBnClickedSignnameseeDocsee1) ON_BN_CLICKED(IDC_SIGNNAMESEE_DOCSEE2, &DLG_SignNameSee::OnBnClickedSignnameseeDocsee2) ON_BN_CLICKED(IDC_SIGNNAMESEE_DOCSEE3, &DLG_SignNameSee::OnBnClickedSignnameseeDocsee3) END_MESSAGE_MAP() // DLG_SignNameSee 消息处理程序 void DLG_SignNameSee::SetParam(ANS_SignName_SeeData seeData, long lSeeType, long lAuditStatus) { m_SeeData = seeData; m_lSeeType = lSeeType; m_lAuditStatus = lAuditStatus; } void DLG_SignNameSee::OnBnClickedOk() { // TODO: 在此添加控件通知处理程序代码 if (m_lSeeType == 0)//仅查看 { CDialogEx::OnCancel(); return; } if (!UpdateData(true)) return; //取审核状态 long lStatus = 0; if (((CButton*)GetDlgItem(IDC_SIGNNAMESEE_AUDIT_PASS))->GetCheck()) lStatus = 1; if (((CButton*)GetDlgItem(IDC_SIGNNAMESEE_AIDIT_FAIL))->GetCheck()) lStatus = 2; if (lStatus == 0) { MessageBox(_T("请选择一种审核状态!"), _T("错误"), MB_ICONWARNING); GetDlgItem(IDC_SIGNNAMESEE_AUDIT_PASS)->SetFocus(); return; } if (lStatus == 2 && m_strAuditOpinon.GetLength() <= 5) //审核失败 { MessageBox(_T("请输入审核失败的详细原因!"), _T("错误"), MB_ICONWARNING); GetDlgItem(IDC_SIGNNAMESEE_AUDITOPINION)->SetFocus(); return; } if (m_SeeData.lStatus != 0 && lStatus == 1 && m_strAuditOpinon.GetLength() <= 5) //审核失败 { MessageBox(_T("重新审核的短信签名必须输入审核原因!"), _T("错误"), MB_ICONWARNING); GetDlgItem(IDC_SIGNNAMESEE_AUDITOPINION)->SetFocus(); return; } m_SeeData.lStatus = lStatus; _tcscpy(m_SeeData.szAuditOpinion, m_strAuditOpinon); CDialogEx::OnOK(); } void DLG_SignNameSee::OnBnClickedCancel() { // TODO: 在此添加控件通知处理程序代码 CDialogEx::OnCancel(); } BOOL DLG_SignNameSee::OnInitDialog() { CDialogEx::OnInitDialog(); // TODO: 在此添加额外的初始化 if (m_SeeData.lUserSignName == 1) { SetWindowText(_T("[子帐号签名]查看签名申请")); } CString strTemp; strTemp = m_SeeData.szCreateUser; //if (m_SeeData.lAgentID > 0) //{ // strTemp.Format(_T("代理商:%s"), m_SeeData.szCreateUser); // strTemp= m_SeeData.szCreateUser; //} //提交用户 m_strCorp.Format(_T("%d-%s[%s]"), m_SeeData.lCorpID, m_SeeData.szCorpName, strTemp); if (_tcslen(m_SeeData.szUserName) > 0) { m_strCorpBelongTo.Append(_T("子账户:")); m_strCorpBelongTo.Append(m_SeeData.szUserName); } if (_tcslen(m_SeeData.szAgentName) > 0) { m_strCorpBelongTo.Append(_T(" 代理商:")); m_strCorpBelongTo.Append(m_SeeData.szAgentName); } if (_tcslen(m_SeeData.szYWYName) > 0) { m_strCorpBelongTo.Append(_T(" 客户经理:")); m_strCorpBelongTo.Append(m_SeeData.szYWYName); } //提交时间 m_strCreateTime.Format(_T("%s / %04d.%02d.%02d %02d:%02d:%02d / %d"), GetSignNameStatus(m_SeeData.lStatus), m_SeeData.tCreateTime.wYear, m_SeeData.tCreateTime.wMonth, m_SeeData.tCreateTime.wDay, m_SeeData.tCreateTime.wHour, m_SeeData.tCreateTime.wMinute, m_SeeData.tCreateTime.wSecond, m_SeeData.lReqCount); //签名类型,名称,归属,申请备注 m_strSignNameType = GetSignNameType(m_SeeData.lSignNameType); m_strSignName = m_SeeData.szSignName; m_strBelongTo = GetSignNameBelongTo(m_SeeData.lSignNameBelongTo); m_strRemark = m_SeeData.szRemark; m_bDefaultSignName = m_SeeData.lDefaultSignName; //文件 m_strDocType1 = GetSignNameDocType(m_SeeData.lDocument1Type); m_strFileName1 = m_SeeData.szDocument1FileName; m_strDocType2 = GetSignNameDocType(m_SeeData.lDocument2Type); m_strFileName2 = m_SeeData.szDocument2FileName; m_strDocType3 = GetSignNameDocType(m_SeeData.lDocument3Type); m_strFileName3 = m_SeeData.szDocument3FileName; //按扭 if (m_SeeData.lDocument1FileID <= 0) GetDlgItem(IDC_SIGNNAMESEE_DOCSEE1)->EnableWindow(false); if (m_SeeData.lDocument2FileID <= 0) GetDlgItem(IDC_SIGNNAMESEE_DOCSEE2)->EnableWindow(false); if (m_SeeData.lDocument3FileID <= 0) GetDlgItem(IDC_SIGNNAMESEE_DOCSEE3)->EnableWindow(false); //审核情况 long lAuditStatus = 0; lAuditStatus = m_SeeData.lStatus; if (m_lSeeType == 1 && m_lAuditStatus == 1) //强制改成已审核 { lAuditStatus = 1; } if (m_lSeeType == 1 && m_lAuditStatus == 2) //强制改成审核失败 { lAuditStatus = 2; } if (lAuditStatus == 1) { ((CButton*)GetDlgItem(IDC_SIGNNAMESEE_AUDIT_PASS))->SetCheck(true); ((CButton*)GetDlgItem(IDC_SIGNNAMESEE_AIDIT_FAIL))->SetCheck(false); } if (lAuditStatus == 2) { ((CButton*)GetDlgItem(IDC_SIGNNAMESEE_AUDIT_PASS))->SetCheck(false); ((CButton*)GetDlgItem(IDC_SIGNNAMESEE_AIDIT_FAIL))->SetCheck(true); } if (_tcslen(m_SeeData.szAuditKF) > 0) { m_strAuditKF.Format(_T("%s / %04d.%02d.%02d %02d:%02d:%02d"), m_SeeData.szAuditKF, m_SeeData.tAuditTime.wYear, m_SeeData.tAuditTime.wMonth, m_SeeData.tAuditTime.wDay, m_SeeData.tAuditTime.wHour, m_SeeData.tAuditTime.wMinute, m_SeeData.tAuditTime.wSecond); } m_strAuditOpinon = m_SeeData.szAuditOpinion; if (m_lSeeType == 0)//仅查看 { GetDlgItem(IDC_SIGNNAMESEE_AUDIT_PASS)->EnableWindow(false); GetDlgItem(IDC_SIGNNAMESEE_AIDIT_FAIL)->EnableWindow(false); ((CEdit*)GetDlgItem(IDC_SIGNNAMESEE_AUDITOPINION))->SetReadOnly(true); } if (m_SeeData.lCorpStatus != 0 && m_SeeData.lUserSignName==0 ) //企业状态为未开通,并且为企业签名 { COleDateTime t(m_SeeData.tCorpCreateTime); if (t.GetStatus() == COleDateTime::valid && COleDateTime::GetCurrentTime() - t < COleDateTimeSpan(31, 0, 0, 0)) //创建时间1个月内的 { strTemp.Format(_T("同时开通此企业(此企业创建时间为:%04d.%02d.%02d)"), t.GetYear(), t.GetMonth(), t.GetDay()); GetDlgItem(IDC_SIGNNAMESEE_OPEN)->SetWindowText(strTemp); GetDlgItem(IDC_SIGNNAMESEE_OPEN)->ShowWindow(SW_SHOW); m_bOpenCorp = true; } } m_P_GDT.ShowWindow(SW_HIDE); //滚动条默认关闭。 UpdateData(false); return TRUE; // return TRUE unless you set the focus to a control // 异常: OCX 属性页应返回 FALSE } CString DLG_SignNameSee::GetSignNameStatus(long lStatus) { CString strTemp; switch (lStatus) { case 0: strTemp = _T("待审核"); break; case 1: strTemp = _T("审核成功"); break; case 2: strTemp = _T("审核失败"); break; default: strTemp = _T("未知状态"); break; } return strTemp; } CString DLG_SignNameSee::GetSignNameType(long lType) { CString strTemp; switch (lType) { case 0: strTemp = _T("企业/单位名称"); break; case 1: strTemp = _T("商标名称"); break; case 2: strTemp = _T("网站名称"); break; case 3: strTemp = _T("App/公众号/小程序名称"); break; case 4: strTemp = _T("其它名称"); break; default: strTemp = _T("未知类型"); break; } return strTemp; } CString DLG_SignNameSee::GetSignNameDocType(long lType) { CString strTemp; switch (lType) { case 0: strTemp = _T("三证合一/营业执照"); break; case 1: strTemp = _T("组织机构代码证"); break; case 2: strTemp = _T("社会信用代码证"); break; case 3: strTemp = _T("商标证书"); break; case 4: strTemp = _T("网站备案证明"); break; case 5: strTemp = _T("授权书"); break; case 6: strTemp = _T("其它证明文件"); break; default: strTemp = _T("未知文件"); break; } return strTemp; } CString DLG_SignNameSee::GetSignNameBelongTo(long lBelongTo) { CString strTemp; switch (lBelongTo) { case 0: strTemp = _T("自用"); break; case 1: strTemp = _T("他人"); break; default: strTemp = _T("未知"); break; } return strTemp; } BOOL DLG_SignNameSee::ProcessSocket(Socket_Head *pHead) { //查看文件 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) //权限不足,返回错误 return true; if (pFile->ret.lReqType == 5) //下载 { if (pFile->bOK && pFile->lCount > 0) { if (pFile->ret.lSize <= pFile->ret.lUpSize) //收到第一帧 { m_P_GDT.SetRange32(0, pFile->ret.lAllSize); m_P_GDT.ShowWindow(SW_SHOW); } m_DownFile.Write((BYTE*)pFileData, pFile->ret.lSize); //写文件 if (pFile->ret.lAllSize == pFile->ret.lUpSize) //下载完成 { m_P_GDT.SetRange(0, 0); //上传完成,关闭滚动条 m_P_GDT.ShowWindow(SW_HIDE); m_DownFile.Close(); //下载完成,打开文件 ShellExecute(NULL, _T("open"), m_strDownFileName, NULL, m_strDownFilePath, SW_SHOWNORMAL); } else { m_P_GDT.SetPos(pFile->ret.lUpSize); } } } return true; } return false; } void DLG_SignNameSee::OnBnClickedSignnameseeDocsee1() { DownLoadFile(m_SeeData.lDocument1FileID, m_SeeData.szDocument1FileName); } void DLG_SignNameSee::DownLoadFile(long lFileID, CString strFileName) { if (lFileID <= 0 || strFileName.GetLength() < 2) return; //取扩展名 TCHAR * pFilename = strFileName.GetBuffer(); TCHAR *ext = _tcsrchr(pFilename, _T('.')); if (ext) { *ext = '\0'; ext++; } CString strFileTitle = pFilename; CString strExtName = ext; //取当前文件夹 TCHAR szPath[512] = { 0 }; DLG_Corp_LXR_SF::GetCurrentPath(szPath); _tcscat(szPath, _T("Files\\")); ::CreateDirectory(szPath, NULL); //创建文件夹 CString strDownLoadFile; strDownLoadFile.Format(_T("%s%d.%s"), szPath,lFileID, strExtName); if (_taccess(strDownLoadFile, 0) != -1) { if (!::DeleteFile(strDownLoadFile)) { MessageBox(_T("文件冲突,建议重启后再试!"), _T("错误"), MB_ICONWARNING); return; } } m_strDownRarFile = strDownLoadFile; m_strDownFilePath = szPath; m_strDownFileName = strDownLoadFile; //原始文件名 if (!m_DownFile.Open(m_strDownRarFile, CFile::modeCreate | CFile::modeWrite)) { MessageBox(_T("创建文件失败,建议重启后再试!"), _T("错误"), MB_ICONWARNING); return; } REQ_Corp_File * pFile = new REQ_Corp_File; memset(pFile, 0, sizeof(REQ_Corp_File)); pFile->lFileID = lFileID; pFile->lReqType = 5; //下载 _tcscpy(pFile->szCorpName, strFileName); //原始文件名 if (m_pDlg) { ((CK_SignName*)m_pDlg)->m_pMainFrame->SendFrame(SMSFUNC_CORP_FILE, (BYTE*)pFile, sizeof(REQ_Corp_File)); } } void DLG_SignNameSee::OnBnClickedSignnameseeDocsee2() { DownLoadFile(m_SeeData.lDocument2FileID, m_SeeData.szDocument2FileName); } void DLG_SignNameSee::OnBnClickedSignnameseeDocsee3() { DownLoadFile(m_SeeData.lDocument3FileID, m_SeeData.szDocument3FileName); }