SmsManager/DLG_TemplateSee.cpp

254 lines
7.6 KiB
C++
Raw Normal View History

2025-01-14 10:46:18 +08:00
// DLG_TemplateSee.cpp: 实现文件
//
#include "stdafx.h"
#include "SmsManager.h"
#include "DLG_TemplateSee.h"
#include "afxdialogex.h"
// DLG_TemplateSee 对话框
IMPLEMENT_DYNAMIC(DLG_TemplateSee, CDialogEx)
DLG_TemplateSee::DLG_TemplateSee(CWnd* pParent /*=nullptr*/)
: CDialogEx(IDD_TEMPLATESEE, pParent)
, m_strAuditKF(_T(""))
, m_strAuditOpinion(_T(""))
, m_strCorp(_T(""))
, m_strCreateTime(_T(""))
, m_strRemark(_T(""))
, m_strTemplateContent(_T(""))
, m_strTemplateName(_T(""))
, m_strTemplateType(_T(""))
{
m_lSeeType = 0; //0-仅查看1-允许修改
m_lAuditStatus = 0; //0-不改变审核1-改变审核成功2-改为审核失败
memset(&m_SeeData, 0, sizeof(m_SeeData));
}
DLG_TemplateSee::~DLG_TemplateSee()
{
}
void DLG_TemplateSee::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Text(pDX, IDC_TEMPLATESEE_AUDITKF, m_strAuditKF);
DDX_Text(pDX, IDC_TEMPLATESEE_AUDITOPINION, m_strAuditOpinion);
DDV_MaxChars(pDX, m_strAuditOpinion, 450);
DDX_Text(pDX, IDC_TEMPLATESEE_CORP, m_strCorp);
DDX_Text(pDX, IDC_TEMPLATESEE_CREATETIME, m_strCreateTime);
DDX_Text(pDX, IDC_TEMPLATESEE_REMARK, m_strRemark);
DDX_Text(pDX, IDC_TEMPLATESEE_TEMPLATECONTENT, m_strTemplateContent);
DDX_Text(pDX, IDC_TEMPLATESEE_TEMPLATENAME, m_strTemplateName);
DDX_Text(pDX, IDC_TEMPLATESEE_TEMPLATETYPE, m_strTemplateType);
}
BEGIN_MESSAGE_MAP(DLG_TemplateSee, CDialogEx)
ON_BN_CLICKED(IDOK, &DLG_TemplateSee::OnBnClickedOk)
ON_BN_CLICKED(IDCANCEL, &DLG_TemplateSee::OnBnClickedCancel)
ON_BN_CLICKED(IDC_TEMPLATESEE_AIDIT_FAILREASON, &DLG_TemplateSee::OnBnClickedTemplateseeAiditFailreason)
ON_COMMAND_RANGE(MENU_TEMPLATE_FAILREASON_BEGIN, MENU_TEMPLATE_FAILREASON_END, On_User_FailReason)
END_MESSAGE_MAP()
// DLG_TemplateSee 消息处理程序
BOOL DLG_TemplateSee::OnInitDialog()
{
CDialogEx::OnInitDialog();
// TODO: 在此添加额外的初始化
CString strTemp;
switch (m_SeeData.lStatus)
{
case 0:
strTemp = _T("待审核");
break;
case 1:
strTemp = _T("审核成功");
break;
case 2:
strTemp = _T("审核失败");
break;
default:
strTemp = _T("未知状态");
break;
}
//提交用户
m_strCorp.Format(_T("%d-%s[%s]"), m_SeeData.lCorpID, m_SeeData.szCorpName, m_SeeData.szCreateUser);
//提交时间
m_strCreateTime.Format(_T("%s / %04d.%02d.%02d %02d:%02d:%02d / %d"), strTemp, 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);
//模板类型
switch (m_SeeData.lTemplateType)
{
case 1:
m_strTemplateType = _T("应用模板");
break;
case 2:
m_strTemplateType = _T("营销模板");
break;
default:
m_strTemplateType = _T("未知模板");
break;
}
//模板标题,内容,申请备注
m_strTemplateName = m_SeeData.szTemplateName;
m_strTemplateContent = m_SeeData.szTemplateContent;
m_strRemark = m_SeeData.szRemark;
//审核情况
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_TEMPLATESEE_AUDIT_PASS))->SetCheck(true);
((CButton*)GetDlgItem(IDC_TEMPLATESEE_AIDIT_FAIL))->SetCheck(false);
}
if (lAuditStatus == 2)
{
((CButton*)GetDlgItem(IDC_TEMPLATESEE_AUDIT_PASS))->SetCheck(false);
((CButton*)GetDlgItem(IDC_TEMPLATESEE_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_strAuditOpinion = m_SeeData.szAuditOpinion;
if (m_lSeeType == 0)//仅查看
{
GetDlgItem(IDC_TEMPLATESEE_AUDIT_PASS)->EnableWindow(false);
GetDlgItem(IDC_TEMPLATESEE_AIDIT_FAIL)->EnableWindow(false);
GetDlgItem(IDC_TEMPLATESEE_AIDIT_FAILREASON)->EnableWindow(false);
((CEdit*)GetDlgItem(IDC_TEMPLATESEE_AUDITOPINION))->SetReadOnly(true);
}
UpdateData(false);
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}
void DLG_TemplateSee::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
if (m_lSeeType == 0)//仅查看
{
CDialogEx::OnCancel();
return;
}
if (!UpdateData(true))
return;
//取审核状态
long lStatus = 0;
if (((CButton*)GetDlgItem(IDC_TEMPLATESEE_AUDIT_PASS))->GetCheck())
lStatus = 1;
if (((CButton*)GetDlgItem(IDC_TEMPLATESEE_AIDIT_FAIL))->GetCheck())
lStatus = 2;
if (lStatus == 0)
{
MessageBox(_T("请选择一种审核状态!"), _T("错误"), MB_ICONWARNING);
GetDlgItem(IDC_TEMPLATESEE_AUDIT_PASS)->SetFocus();
return;
}
if (lStatus == 2 && m_strAuditOpinion.GetLength()<=5) //审核失败
{
MessageBox(_T("请输入审核失败的详细原因!"), _T("错误"), MB_ICONWARNING);
GetDlgItem(IDC_TEMPLATESEE_AUDITOPINION)->SetFocus();
return;
}
if (m_SeeData.lStatus!=0 && lStatus == 1 && m_strAuditOpinion.GetLength() <= 5) //审核失败
{
MessageBox(_T("重新审核的短信模板必须输入审核原因!"), _T("错误"), MB_ICONWARNING);
GetDlgItem(IDC_TEMPLATESEE_AUDITOPINION)->SetFocus();
return;
}
m_SeeData.lStatus = lStatus;
_tcscpy(m_SeeData.szAuditOpinion, m_strAuditOpinion);
CDialogEx::OnOK();
}
void DLG_TemplateSee::OnBnClickedCancel()
{
// TODO: 在此添加控件通知处理程序代码
CDialogEx::OnCancel();
}
void DLG_TemplateSee::SetParam(ANS_Template_SeeData seeData,long lSeeType,long lAuditStatus)
{
m_SeeData = seeData;
m_lSeeType = lSeeType;
m_lAuditStatus = lAuditStatus;
}
void DLG_TemplateSee::OnBnClickedTemplateseeAiditFailreason()
{
CMenu menu;
menu.CreatePopupMenu();
if (m_strFailReason.GetCount() <= 0)
{
m_strFailReason.Add(_T("短信内容含双签名,请修改后重新提交。"));
m_strFailReason.Add(_T("短信内容有乱码,请修改后重新提交。"));
m_strFailReason.Add(_T("短信内容含涉嫌敏感内容,请修改后重新提交。"));
m_strFailReason.Add(_T("不允许多个变量连在一起,请修改后重新提交。"));
m_strFailReason.Add(_T("模板短信不能包含链接,请修改后重新提交。"));
m_strFailReason.Add(_T("模板内容无法辨识应用场景,请细化后重新提交。"));
m_strFailReason.Add(_T("行业应用账号不允许发送此内容,请用营销账号重新提交。"));
m_strFailReason.Add(_T("请规范退订格式修改后重新提交。短信结尾为拒收请回复R"));
m_strFailReason.Add(_T("此内容暂不支持发送。"));
m_strFailReason.Add(_T("客户申请驳回,审核失败。"));
}
int iCount = m_strFailReason.GetCount();
for (int i = 0; i < iCount; i++)
{
menu.AppendMenu(MF_STRING, MENU_TEMPLATE_FAILREASON_BEGIN + i, m_strFailReason.GetAt(i));
}
//显示菜单
RECT rect = { 0 };
this->GetDlgItem(IDC_TEMPLATESEE_AIDIT_FAILREASON)->GetWindowRect(&rect);
//this->ClientToScreen( &pt);
menu.TrackPopupMenu(TPM_LEFTBUTTON | TPM_RIGHTBUTTON, rect.left, rect.bottom, this, NULL);
menu.DestroyMenu();
}
void DLG_TemplateSee::On_User_FailReason(UINT nID)
{
UINT ll = MENU_TEMPLATE_FAILREASON_BEGIN;
long lIndex = nID - ll;
if (lIndex >= 0 && lIndex < m_strFailReason.GetCount())
{
//CString str = m_strFailReason.GetAt(lIndex);
//if (!UpdateData(true))
// return;
//m_strReason = m_strReason + str;
((CEdit*)GetDlgItem(IDC_TEMPLATESEE_AUDITOPINION))->SetWindowText(m_strFailReason.GetAt(lIndex));
}
}