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

254 lines
7.6 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_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));
}
}