본문으로 건너뛰기

CRM 반복그룹 이메일 발송이 개선되었어요.

PHP 8 · GODO25
변경 파일 수: 2개
변경 파일 목록
2
변경 파일 코드
추가삭제
Admin/member/mail_send.php+29-21
변경 전mail_send.php
window.open('../share/popup_add_member.php?sendMode=mail', 'member_search', 'width=1450, height=760, scrollbars=no');
});
 
// CRM 그룹 선택
$('#btnSearchCrm').click(function (e) {
// 팝업 창 열기
window.open("/member/crm_group_select.php", "popupWindow", "width=1150,height=745");
// 메시지 수신 이벤트 리스너 추가
window.addEventListener('message', function(event) {
let receivedData = event.data || {};
// crm_group_select(CRM aggregator)에서 전달받은 반복추출 그룹 여부를 발송 폼 전송용 y/n 으로 정규화
receivedData.isRepeat = receivedData.isRepeat ? 'y' : 'n';
let crmGroupCountTemplate = _.template($('#templateCrmGroupCount').html());
$('#crmGroupCount').html(crmGroupCountTemplate(receivedData));
 
let crmGroupItemTemplate = _.template($('#templateCrmGroupItem').html());
$('#crmGroupItem').html(crmGroupItemTemplate(receivedData));
 
// CRM 그룹 삭제 event 추가
$('.crm-group-delete').click(function (e) {
$("#member_groupLayer").remove();
let crmGroupCountTemplate = _.template($('#templateCrmGroupCount').html());
$('#crmGroupCount').html(crmGroupCountTemplate({memberCount: 0, optOutMemberCount: 0}));
});
});
 
 
 
 
 
 
 
});
 
//수신동의, 수신거절 에디터 생성
window.open("/member/crm_group_select.php", "popupWindow", "width=1150,height=745");
// 메시지 수신 이벤트 리스너 추가
window.addEventListener('message', function(event) {
let receivedData = event.data;
 
 
let crmGroupCountTemplate = _.template($('#templateCrmGroupCount').html());
$('#crmGroupCount').html(crmGroupCountTemplate(receivedData));
 
<div id="info_crm_group_<%= targetNo %>" class="btn-group btn-group-xs">
<input type="hidden" name="crmGroupNo" value="<%= targetNo %>">
<input type="hidden" name="crmGroupName" value="<%= name %>">
 
<span class="btn"><%= name %></span>
<button type="button" class="btn btn-icon-delete crm-group-delete" data-target="#info_crm_group_<%= targetNo %>">삭제</button>
</div>
 
변경 후mail_send.php
window.open('../share/popup_add_member.php?sendMode=mail', 'member_search', 'width=1450, height=760, scrollbars=no');
});
 
// CRM 그룹 선택 - 팝업으로부터 메시지 수신 (리스너는 한 번만 등록하여 중첩 방지)
window.addEventListener('message', function (event) {
let receivedData = event.data || {};
// CRM 그룹 선택 팝업(aggregator)이 보낸 메시지만 처리한다.
if (!receivedData.targetNo) {
return;
}
// crm_group_select(CRM aggregator)에서 전달받은 반복추출 그룹 여부를 발송 폼 전송용 y/n 으로 정규화
receivedData.isRepeat = receivedData.isRepeat ? 'y' : 'n';
 
 
 
let crmGroupCountTemplate = _.template($('#templateCrmGroupCount').html());
$('#crmGroupCount').html(crmGroupCountTemplate(receivedData));
 
let crmGroupItemTemplate = _.template($('#templateCrmGroupItem').html());
$('#crmGroupItem').html(crmGroupItemTemplate(receivedData));
});
 
// CRM 그룹 삭제 - 이벤트 위임으로 처리하여 중첩 바인딩 방지
$('#crmGroupItem').on('click', '.crm-group-delete', function (e) {
$("#member_groupLayer").remove();
let crmGroupCountTemplate = _.template($('#templateCrmGroupCount').html());
$('#crmGroupCount').html(crmGroupCountTemplate({memberCount: 0, optOutMemberCount: 0}));
});
 
// CRM 그룹 선택 - 팝업 열기만 담당
$('#btnSearchCrm').click(function (e) {
window.open("/member/crm_group_select.php", "popupWindow", "width=1150,height=745");
});
 
//수신동의, 수신거절 에디터 생성
window.open("/member/crm_group_select.php", "popupWindow", "width=1150,height=745");
// 메시지 수신 이벤트 리스너 추가
window.addEventListener('message', function(event) {
let receivedData = event.data || {};
// crm_group_select(CRM aggregator)에서 전달받은 반복추출 그룹 여부를 발송 폼 전송용 y/n 으로 정규화
receivedData.isRepeat = receivedData.isRepeat ? 'y' : 'n';
let crmGroupCountTemplate = _.template($('#templateCrmGroupCount').html());
$('#crmGroupCount').html(crmGroupCountTemplate(receivedData));
 
<div id="info_crm_group_<%= targetNo %>" class="btn-group btn-group-xs">
<input type="hidden" name="crmGroupNo" value="<%= targetNo %>">
<input type="hidden" name="crmGroupName" value="<%= name %>">
<input type="hidden" name="isRepeat" value="<%= isRepeat %>">
<span class="btn"><%= name %></span>
<button type="button" class="btn btn-icon-delete crm-group-delete" data-target="#info_crm_group_<%= targetNo %>">삭제</button>
</div>
 
Component/Mail/MailAdmin.php+3-1
변경 전MailAdmin.php
$sendType = $requestParams['sendType'];
$senderEmail = $requestParams['senderEmail'];
$selectTargetFl = $requestParams['selectTargetFl'];
 
 
 
$v = new Validator();
$v->init();
// CRM 그룹 멤버 조회
/** @var CrmGroupService $crmGroupService */
$crmGroupService = \App::getInstance(CrmGroupService::class);
$memberNos = $crmGroupService->getAllCrmGroupMemberNos($requestParams['crmGroupNo'], $menuCode, null, $emailAgreed);
 
// 수신거부 대상자 조회
/** @var MemberRepository $memberRepository */
 
변경 후MailAdmin.php
$sendType = $requestParams['sendType'];
$senderEmail = $requestParams['senderEmail'];
$selectTargetFl = $requestParams['selectTargetFl'];
// 반복추출 CRM 그룹 여부 (폼에서 y/n 으로 전달, 미존재 시 일반 그룹)
$isRepeat = ($requestParams['isRepeat'] ?? 'n') === 'y';
 
$v = new Validator();
$v->init();
// CRM 그룹 멤버 조회
/** @var CrmGroupService $crmGroupService */
$crmGroupService = \App::getInstance(CrmGroupService::class);
$memberNos = $crmGroupService->getAllCrmGroupMemberNos($requestParams['crmGroupNo'], $menuCode, null, $emailAgreed, $isRepeat);
 
// 수신거부 대상자 조회
/** @var MemberRepository $memberRepository */