SmsManager/DLG_SignNameSee.cpp

474 lines
13 KiB
C++
Raw Normal View History

2025-01-14 10:46:18 +08:00
// 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);
}