MDL-61255 core_message: added helper function to detect legacy messages

This commit is contained in:
Mark Nelson 2018-04-10 15:00:57 +08:00
parent 84f6a716b2
commit 78348dfc4e
2 changed files with 25 additions and 13 deletions

View File

@ -4432,19 +4432,7 @@ function complete_user_login($user) {
// Queue migrating the messaging data, if we need to.
if (!get_user_preferences('core_message_migrate_data', false, $USER->id)) {
// Check if there are any legacy messages to migrate.
$sql = "SELECT id
FROM {message} m
WHERE useridfrom = ?
OR useridto = ?";
$messageexists = $DB->record_exists_sql($sql, [$USER->id, $USER->id]);
$sql = "SELECT id
FROM {message_read} m
WHERE useridfrom = ?
OR useridto = ?";
$messagereadexists = $DB->record_exists_sql($sql, [$USER->id, $USER->id]);
if ($messageexists || $messagereadexists) {
if (\core_message\helper::legacy_messages_exist($USER->id)) {
\core_message\task\migrate_message_data::queue_task($USER->id);
} else {
set_user_preference('core_message_migrate_data', true, $USER->id);

View File

@ -330,4 +330,28 @@ class helper {
sort($ids);
return implode('_', $ids);
}
/**
* Checks if legacy messages exist for a given user.
*
* @param int $userid
* @return bool
*/
public static function legacy_messages_exist($userid) {
global $DB;
$sql = "SELECT id
FROM {message} m
WHERE useridfrom = ?
OR useridto = ?";
$messageexists = $DB->record_exists_sql($sql, [$userid, $userid]);
$sql = "SELECT id
FROM {message_read} m
WHERE useridfrom = ?
OR useridto = ?";
$messagereadexists = $DB->record_exists_sql($sql, [$userid, $userid]);
return $messageexists || $messagereadexists;
}
}