게시글 추천 취소시 추천 알림이 삭제되지 않는 문제 수정

또한 댓글 추천 취소시 해당 댓글의 모든 추천 알림이 삭제되는 문제 수정

* 비회원은 IP기반의 추천이라 비회원이 추천 취소를 할 경우에는 알림을 특정할 수 없어 알림 삭제가 되지 않음
This commit is contained in:
conory 2020-04-04 01:15:31 +09:00
parent dfbdf46085
commit cd0ded1c46
3 changed files with 61 additions and 28 deletions

View file

@ -25,6 +25,7 @@ class ncenterlite extends ModuleObject
array('member.deleteMember', 'ncenterlite', 'controller', 'triggerAfterDeleteMember', 'after'),
array('communication.sendMessage', 'ncenterlite', 'controller', 'triggerAfterSendMessage', 'after'),
array('document.updateVotedCount', 'ncenterlite', 'controller', 'triggerAfterDocumentVotedUpdate', 'after'),
array('document.updateVotedCountCancel', 'ncenterlite', 'controller', 'triggerAfterDocumentVotedCancel', 'after'),
array('member.procMemberScrapDocument', 'ncenterlite', 'controller', 'triggerAfterScrap', 'after'),
array('moduleHandler.init', 'ncenterlite', 'controller', 'triggerAddMemberMenu', 'after'),
array('document.moveDocumentToTrash', 'ncenterlite', 'controller', 'triggerAfterMoveToTrash', 'after'),

View file

@ -570,7 +570,6 @@ class ncenterliteController extends ncenterlite
{
return;
}
if($config->user_notify_setting == 'Y' && $oNcenterliteModel->getUserConfig($obj->member_srl)->data->vote_notify == 'N')
{
return;
@ -591,13 +590,41 @@ class ncenterliteController extends ncenterlite
$args->regdate = date('YmdHis');
$args->notify = $this->_getNotifyId($args);
$args->target_url = getNotEncodedUrl('', 'document_srl', $obj->document_srl);
$output = $this->_insertNotify($args);
if(!$output->toBool())
$this->_insertNotify($args);
}
function triggerAfterDocumentVotedCancel($obj)
{
$oNcenterliteModel = getModel('ncenterlite');
$config = $oNcenterliteModel->getConfig();
if(!isset($config->use['vote']))
{
return $output;
return;
}
if($obj->point < 0)
{
return;
}
if($config->user_notify_setting == 'Y' && $oNcenterliteModel->getUserConfig($obj->member_srl)->data->vote_notify == 'N')
{
return;
}
if(!$this->user->member_srl)
{
return;
}
$args = new stdClass();
$args->type = $this->_TYPE_DOCUMENT;
$args->target_type = $this->_TYPE_VOTED;
$args->target_srl = $obj->document_srl;
$args->target_member_srl = $this->user->member_srl;
$output = executeQuery('ncenterlite.deleteNotifyByTargetType', $args);
if($output->toBool())
{
$this->removeFlagFile($obj->member_srl);
}
}
function triggerAfterCommentVotedCount($obj)
{
$oNcenterliteModel = getModel('ncenterlite');
@ -610,18 +637,17 @@ class ncenterliteController extends ncenterlite
{
return;
}
if($config->user_notify_setting == 'Y' && $oNcenterliteModel->getUserConfig($obj->member_srl)->data->vote_notify == 'N')
{
return;
}
$oCommentModel = new commentModel();
$oCommentModel = getModel('comment');
$oComment = $oCommentModel->getComment($obj->comment_srl);
$content = $oComment->get('content');
$document_srl = $oComment->get('document_srl');
$args = new stdClass();
$args->config_type = 'vote';
$args->member_srl = $obj->member_srl;
@ -634,34 +660,39 @@ class ncenterliteController extends ncenterlite
$args->regdate = date('YmdHis');
$args->notify = $this->_getNotifyId($args);
$args->target_url = getNotEncodedUrl('', 'document_srl', $document_srl, 'comment_srl', $obj->comment_srl) . '#comment_' . $obj->comment_srl;
$output = $this->_insertNotify($args);
if(!$output->toBool())
{
return $output;
}
$this->_insertNotify($args);
}
function triggerAfterCommentVotedCancel($obj)
{
$oCommentModel = new commentModel();
$oComment = $oCommentModel->getComment($obj->comment_srl);
$document_srl = $oComment->get('document_srl');
$oNcenterliteModel = getModel('ncenterlite');
$config = $oNcenterliteModel->getConfig();
if(!isset($config->use['vote']))
{
return;
}
if($obj->point < 0)
{
return;
}
if($config->user_notify_setting == 'Y' && $oNcenterliteModel->getUserConfig($obj->member_srl)->data->vote_notify == 'N')
{
return;
}
if(!$this->user->member_srl)
{
return;
}
$args = new stdClass();
$args->type = $this->_TYPE_COMMENT;
$args->target_type = $this->_TYPE_VOTED;
$args->target_srl = $obj->comment_srl;
$args->srl = $document_srl;
$args->target_member_srl = $this->user->member_srl;
$output = executeQuery('ncenterlite.deleteNotifyByTargetType', $args);
if($output->toBool())
{
$this->removeFlagFile($obj->member_srl);
}
else
{
return $output;
}
}
function triggerAfterDeleteComment(&$obj)

View file

@ -4,9 +4,10 @@
</tables>
<conditions>
<condition operation="equal" column="srl" var="srl" filter="number" notnull="notnull" />
<condition operation="equal" column="target_srl" var="target_srl" filter="number" notnull="notnull" pipe="and" />
<condition operation="equal" column="type" var="type" notnull="notnull" pipe="and" />
<condition operation="equal" column="target_type" var="target_type" notnull="notnull" pipe="and" />
<condition operation="equal" column="target_srl" var="target_srl" filter="number" pipe="and" />
<condition operation="equal" column="target_member_srl" var="target_member_srl" filter="number" pipe="and" />
<condition operation="equal" column="srl" var="srl" filter="number" pipe="and" />
<condition operation="equal" column="type" var="type" pipe="and" />
</conditions>
</query>