File size: 2.5Kb
<?php
/**
* @package XenCentral Feedback System
* @author DNF Technology
* @copyright Drnoyan & Nalyan LDA, Portugal, EU
* @license http://dnf.technology/terms/
* @link http://customers.dnf.technology
* @version 2.0.0 Beta 10
* @revision 12
*/
namespace XenCentral\Feedback\XF\Service;
use XF\Db\Exception;
use XF\Entity\User;
class Merge extends XFCP_Merge
{
public function merge($maxRunTime = 0){
$success = parent::merge($maxRunTime);
$userWriter = $this->em()->find('XenCentral\Feedback:FeedbackUser', [
'user_id' => $this->target->user_id
]);
if ($success) {
if ( $userWriter) {
$db = \XF::db();
$db->beginTransaction();
$db->query('UPDATE xf_xc_feedback_feedback SET foruserid = ? WHERE foruserid = ?', array($this->target->user_id, $this->source->user_id));
$db->query('UPDATE xf_xc_feedback_feedback SET fromuserid = ? WHERE fromuserid = ?', array($this->target->user_id, $this->source->user_id));
$db->query('UPDATE xf_xc_feedback_comment SET user_id = ? WHERE user_id = ?', array($this->target->user_id, $this->source->user_id));
$db->query('UPDATE xf_xc_feedback_notification_queue SET forUserId = ? WHERE forUserId = ?', array($this->target->user_id, $this->source->user_id));
$db->query('UPDATE xf_xc_feedback_preference SET pr_user_id = ? WHERE pr_user_id = ?', array($this->target->user_id, $this->source->user_id));
$db->query('UPDATE xf_xc_feedback_activity SET user_id = ? WHERE user_id = ?', array($this->target->user_id, $this->source->user_id));
$sameUserFb = $db->fetchAll('SELECT * FROM xf_xc_feedback_feedback WHERE foruserid = fromuserid');
if (isset($sameUserFb)) {
foreach ( $sameUserFb as $item ) {
$db->query( 'DELETE from xf_xc_feedback_feedback WHERE fb_id = ?', array( $item['fb_id'] ) );
$db->query( 'DELETE from xf_xc_feedback_comment WHERE fb_id = ?', array( $item['fb_id'] ) );
}
}
\XF::repository('XenCentral\Feedback:Feedback')->rebuildUserData($this->target->user_id);
$deleteUserWriter = $this->em()->find('XenCentral\Feedback:FeedbackUser', [
'user_id' => $this->source->user_id
]);
$deleteUserWriter->delete();
$db->commit();
}
}
return $success;
}
}