2namespace Bitrix\Im\Update;
5use Bitrix\Main\Update\Stepper;
6use Bitrix\Main\Localization\Loc;
8use Bitrix\Main\Config\Option;
9use Bitrix\Main\UserTable;
11Loc::loadMessages(__FILE__);
15 private const OPTION_NAME =
'im_chat_read_recount';
26 if (!Loader::includeModule(self::$moduleId))
33 $params = Option::get(self::$moduleId, self::OPTION_NAME);
42 'count' => UserTable::getCount([
44 '=IS_REAL_USER' =>
true,
54 $cursor = UserTable::getList([
59 '=IS_REAL_USER' =>
true,
61 'order' => [
'ID' =>
'ASC'],
70 while ($row = $cursor->fetch())
72 if (
count($users) === 100)
78 $users[] = (int)$row[
'ID'];
80 $params[
'lastId'] = (int)$row[
'ID'];
89 $sqlDate =
$connection->getSqlHelper()->addDaysToDateTime(-30);
90 foreach ($batch as $users)
92 $sqlUserIds = implode(
', ', $users);
96 b_im_relation R USE INDEX (IX_IM_REL_2)
97 INNER JOIN b_im_chat C
98 INNER JOIN b_im_message M
104 and R.USER_ID IN (".$sqlUserIds.
")
106 and M.ID = C.LAST_MESSAGE_ID
107 and M.DATE_CREATE < {$sqlDate}
112 b_im_relation R USE INDEX (IX_IM_REL_2)
113 INNER JOIN b_im_chat C
114 INNER JOIN b_im_message M
120 and R.USER_ID IN (".$sqlUserIds.
")
122 and M.ID = C.LAST_MESSAGE_ID
123 and M.DATE_CREATE < {$sqlDate}
128 b_im_relation R USE INDEX (IX_IM_REL_2)
129 INNER JOIN b_im_chat C
130 INNER JOIN b_im_message M
136 and R.USER_ID IN (".$sqlUserIds.
")
138 and M.ID = C.LAST_MESSAGE_ID
139 and M.DATE_CREATE < {$sqlDate}
150 Option::set(self::$moduleId, self::OPTION_NAME, serialize(
$params));
155 Option::delete(self::$moduleId, [
'name' => self::OPTION_NAME]);
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
static clearCache($moduleId)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"
if($inWords) echo htmlspecialcharsbx(Number2Word_Rus(roundEx($totalVatSum $params['CURRENCY']