Fix #1341 also calculate point difference accurately when new file is uploaded to a comment

This commit is contained in:
Kijin Sung 2020-12-15 23:39:25 +09:00
parent 367635d21b
commit a43f0368ec
2 changed files with 26 additions and 13 deletions

View file

@ -598,7 +598,7 @@ class commentController extends comment
$output = $oDocumentController->updateCommentCount($document_srl, $comment_count, $obj->nick_name, $update_document); $output = $oDocumentController->updateCommentCount($document_srl, $comment_count, $obj->nick_name, $update_document);
} }
if($obj->uploaded_count) if($obj->uploaded_count > 0)
{ {
$attachOutput = getController('file')->setFilesValid($obj->comment_srl, 'com'); $attachOutput = getController('file')->setFilesValid($obj->comment_srl, 'com');
if(!$attachOutput->toBool()) if(!$attachOutput->toBool())
@ -606,6 +606,11 @@ class commentController extends comment
$oDB->rollback(); $oDB->rollback();
return $attachOutput; return $attachOutput;
} }
$obj->updated_file_count = $attachOutput->get('updated_file_count');
}
else
{
$obj->updated_file_count = 0;
} }
// call a trigger(after) // call a trigger(after)
@ -869,7 +874,7 @@ class commentController extends comment
return $output; return $output;
} }
if($obj->uploaded_count) if($obj->uploaded_count > 0)
{ {
$attachOutput = getController('file')->setFilesValid($obj->comment_srl, 'com'); $attachOutput = getController('file')->setFilesValid($obj->comment_srl, 'com');
if(!$attachOutput->toBool()) if(!$attachOutput->toBool())
@ -877,6 +882,11 @@ class commentController extends comment
$oDB->rollback(); $oDB->rollback();
return $attachOutput; return $attachOutput;
} }
$obj->updated_file_count = $attachOutput->get('updated_file_count');
}
else
{
$obj->updated_file_count = 0;
} }
// call a trigger (after) // call a trigger (after)

View file

@ -158,6 +158,7 @@ class pointController extends point
if (!$module_srl || !$member_srl) if (!$module_srl || !$member_srl)
{ {
$this->_original = null;
return; return;
} }
@ -250,7 +251,7 @@ class pointController extends point
/** /**
* @brief A trigger which gives points for entering a comment * @brief A trigger which gives points for entering a comment
*/ */
public function triggerInsertComment($obj) public function triggerInsertComment($obj, $mode = 'insert')
{ {
$module_srl = $obj->module_srl; $module_srl = $obj->module_srl;
$member_srl = abs($obj->member_srl); $member_srl = abs($obj->member_srl);
@ -274,22 +275,24 @@ class pointController extends point
return; return;
} }
// Get the points of the member $diff = 0;
$cur_point = PointModel::getPoint($member_srl);
// Add points for the comment. // Add points for the comment.
$comment_point = $this->_getModulePointConfig($module_srl, 'insert_comment'); if ($mode === 'insert')
$cur_point += $comment_point; {
$diff += $this->_getModulePointConfig($module_srl, 'insert_comment');
}
// Add points for attached files. // Add points for attached files.
if ($obj->uploaded_count > 0) if ($obj->updated_file_count > 0)
{ {
$attached_files_point = $this->_getModulePointConfig($module_srl, 'upload_file'); $upload_point = $this->_getModulePointConfig($module_srl, 'upload_file');
$cur_point += $attached_files_point * $obj->uploaded_count; $diff += $upload_point * $obj->updated_file_count;
} }
// Increase the point. // Increase the point.
$this->setPoint($member_srl, $cur_point); $cur_point = PointModel::getPoint($member_srl);
$this->setPoint($member_srl, $cur_point + $diff);
} }
/** /**
@ -297,7 +300,7 @@ class pointController extends point
*/ */
public function triggerUpdateComment($obj) public function triggerUpdateComment($obj)
{ {
$this->triggerInsertComment($obj, 'update');
} }
/** /**