Skip to content

Commit 1703a4f

Browse files
committed
FIX: Оптимизация поиска дублей (админка)
1 parent 879b7c8 commit 1703a4f

File tree

5 files changed

+61
-26
lines changed

5 files changed

+61
-26
lines changed

app/Content/Msg.php

+7-2
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public static function get()
1717
$options = "3500, { valign: 'top', align: 'right', styles: { backgroundColor: 'red', fontSize: '18px' } }";
1818
}
1919

20-
$html .= "Notice('" . $msg['msg'] . "', $options);";
20+
$html .= self::createMsgScript($msg['msg'], $options);
2121
}
2222

2323
return $html;
@@ -34,4 +34,9 @@ public static function redirect(string $text, string $status, string $redirect =
3434

3535
redirect($redirect);
3636
}
37-
}
37+
38+
private static function createMsgScript($message, $options)
39+
{
40+
return "Notice('$message', $options);";
41+
}
42+
}

modules/admin/controllers/UsersController.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ private function callSearchIp($option)
8989

9090
$results = [];
9191
foreach ($user_all as $ind => $row) {
92-
$row['duplicat_ip_reg'] = UserModel::duplicatesRegistrationCount($row['id']);
92+
$row['duplicat_ip_reg'] = UserModel::duplicatesRegistrationCount($row['reg_ip']);
9393
$results[$ind] = $row;
9494
}
9595

@@ -133,7 +133,7 @@ public function editForm()
133133
if (!$user = UserModel::getUser($user_id, 'id')) redirect(url('admin'));
134134

135135
$user['isBan'] = BanUserModel::isBan($user_id);
136-
$user['duplicat_ip_reg'] = UserModel::duplicatesRegistrationCount($user_id);
136+
$user['duplicat_ip_reg'] = UserModel::duplicatesRegistrationCount($user['reg_ip']);
137137
$user['last_visit_logs'] = UserModel::lastVisitLogs($user_id);
138138
$user['badges'] = BadgeModel::getBadgeUserAll($user_id);
139139

modules/admin/models/UserModel.php

+48-20
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,16 @@
99

1010
class UserModel extends Model
1111
{
12-
// Users Page
13-
// Страница участников
14-
public static function getUsers($page, $limit, $sheet)
12+
/**
13+
* Users Page
14+
* Страница участников
15+
*
16+
* @param integer $page
17+
* @param integer $limit
18+
* @param string $sheet
19+
* @return void
20+
*/
21+
public static function getUsers(int $page, int $limit, string $sheet)
1522
{
1623
$string = ($sheet == 'ban') ? "WHERE ban_list > 0 ORDER BY id DESC LIMIT" : "ORDER BY id DESC LIMIT";
1724

@@ -44,7 +51,7 @@ public static function getUsers($page, $limit, $sheet)
4451
return DB::run($sql, ['start' => $start, 'limit' => $limit])->fetchAll();
4552
}
4653

47-
public static function getUsersCount($sheet)
54+
public static function getUsersCount(string $sheet)
4855
{
4956
$string = ($sheet == 'ban') ? 'WHERE ban_list > 0' : '';
5057

@@ -53,8 +60,14 @@ public static function getUsersCount($sheet)
5360
return DB::run($sql)->rowCount();
5461
}
5562

56-
// Member information (id, slug)
57-
public static function getUser($params, $name)
63+
/**
64+
* Member information (id, slug)
65+
*
66+
* @param integer|string $params
67+
* @param string $name
68+
* @return void
69+
*/
70+
public static function getUser(int|string $params, string $name)
5871
{
5972
$sort = ($name == 'slug') ? "login = :params" : "id = :params";
6073

@@ -97,30 +110,40 @@ public static function getUser($params, $name)
97110
return $result->fetch();
98111
}
99112

100-
// Number of IP duplicates by `user_reg_ip` field
101-
public static function duplicatesRegistrationCount($ip)
113+
/**
114+
* Number of IP duplicates by `user_reg_ip` field
115+
*
116+
* @param string $ip
117+
* @return void
118+
*/
119+
public static function duplicatesRegistrationCount(string $ip)
102120
{
103121
$sql = "SELECT id, reg_ip FROM users WHERE reg_ip = :ip";
104122

105123
return DB::run($sql, ['ip' => $ip])->rowCount();
106124
}
107125

108-
// By logs
109-
public static function lastVisitLogs($uid)
126+
/**
127+
* By logs
128+
*
129+
* @param integer $id
130+
* @return void
131+
*/
132+
public static function lastVisitLogs(int $id)
110133
{
111-
$sql = "SELECT add_date as latest_date, user_ip as latest_ip, device_id, user_id FROM users_agent_logs WHERE user_id = :uid ORDER BY id DESC";
134+
$sql = "SELECT add_date as latest_date, user_ip as latest_ip, device_id, user_id FROM users_agent_logs WHERE user_id = :id ORDER BY id DESC";
112135

113-
return DB::run($sql, ['uid' => $uid])->fetch();
136+
return DB::run($sql, ['id' => $id])->fetch();
114137
}
115138

116-
public static function userHistory($uid)
139+
public static function userHistory(int $id)
117140
{
118-
$sql = "SELECT add_date, user_ip, device_id, user_id FROM users_agent_logs WHERE user_id = :uid ORDER BY add_date DESC LIMIT 50";
141+
$sql = "SELECT add_date, user_ip, device_id, user_id FROM users_agent_logs WHERE user_id = :id ORDER BY add_date DESC LIMIT 50";
119142

120-
return DB::run($sql, ['uid' => $uid])->fetchAll();
143+
return DB::run($sql, ['id' => $id])->fetchAll();
121144
}
122145

123-
public static function getUserSearchDeviceID($item)
146+
public static function getUserSearchDeviceID(string $item)
124147
{
125148
$sql = "SELECT
126149
log.device_id,
@@ -142,7 +165,7 @@ public static function getUserSearchDeviceID($item)
142165
return DB::run($sql, ['item' => $item])->fetchAll();
143166
}
144167

145-
public static function getUserSearchRegIp($item)
168+
public static function getUserSearchRegIp(string $item)
146169
{
147170
$sql = "SELECT
148171
id,
@@ -160,8 +183,13 @@ public static function getUserSearchRegIp($item)
160183
return DB::run($sql, ['item' => $item])->fetchAll();
161184
}
162185

163-
// ip for logs
164-
public static function getUserLogsId($ip)
186+
/**
187+
* ip for logs
188+
*
189+
* @param string $ip
190+
* @return void
191+
*/
192+
public static function getUserLogsId(string $ip)
165193
{
166194
$sql = "SELECT
167195
id,
@@ -183,7 +211,7 @@ public static function getUserLogsId($ip)
183211
FROM users_agent_logs
184212
WHERE user_ip = :ip GROUP BY user_id
185213
) as latest_date ON latest_date.user_id = id";
186-
214+
187215
return DB::run($sql, ['ip' => $ip])->fetchAll();
188216
}
189217

modules/admin/views/user/history.php

+3-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@
1515
<th><?= __('admin.ip'); ?></th>
1616
<th><?= __('admin.time'); ?></th>
1717
</thead>
18-
<?php foreach ($data['results'] as $user) : ?>
18+
<?php foreach ($data['results'] as $user) :
19+
if (!$user['device_id']) continue;
20+
?>
1921
<tr>
2022
<td>
2123
<a href="<?= url('admin.device', ['item' => $user['device_id']]); ?>"><?= $user['device_id']; ?></a>

modules/admin/views/user/search.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
<?= $user['reg_ip']; ?>
3939
<?php endif; ?>
4040
<?php if ($user['duplicat_ip_reg'] > 1) : ?>
41-
<br> <sup class="red">(<?= $user['duplicat_ip_reg']; ?>)</sup>
41+
<sup class="red"> (<?= $user['duplicat_ip_reg']; ?>)</sup>
4242
<?php endif; ?>
4343
</div>
4444
</td>

0 commit comments

Comments
 (0)