// 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)); } }