SmsManager/DLG_SignNameSee.cpp
2025-01-14 10:46:18 +08:00

474 lines
13 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_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);
}