refactor: 用户分页添加最后登录ip/最后登录时间输出
This commit is contained in:
@@ -3,6 +3,7 @@ declare (strict_types = 1);
|
||||
|
||||
namespace app\admin\controller\v1;
|
||||
|
||||
use app\admin\model\v1\SysUserLoginLogModel;
|
||||
use app\admin\model\v1\SysUserModel;
|
||||
use app\admin\validate\v1\SysUserValidate;
|
||||
|
||||
@@ -42,6 +43,32 @@ class User
|
||||
])
|
||||
->bindAttr('role', ['role_name'])
|
||||
->hidden(['role_id', 'role']);
|
||||
if ($users->isEmpty()) {
|
||||
return success('获取成功');
|
||||
}
|
||||
|
||||
// 查询用户最后登录记录
|
||||
$logs = SysUserLoginLogModel::where('id', 'IN', function($query) use($users) {
|
||||
$query->table((new SysUserLoginLogModel)->getTable())
|
||||
->field(['MAX(id)'])
|
||||
->whereIn('user_id', array_column($users->items(), 'id'))
|
||||
->group('user_id');
|
||||
})
|
||||
->column([
|
||||
'ip',
|
||||
'max(created_at)' => 'created_at'
|
||||
], 'user_id');
|
||||
if (!empty($logs)) {
|
||||
$users->each(function($item) use($logs) {
|
||||
$item['last_login_ip'] = '';
|
||||
$item['last_login_at'] = '';
|
||||
if (!empty($logs[$item['id']])) {
|
||||
$item['last_login_ip'] = long2ip($logs[$item['id']]['ip']);
|
||||
$item['last_login_at'] = $logs[$item['id']]['created_at'];
|
||||
}
|
||||
return $item;
|
||||
});
|
||||
}
|
||||
|
||||
return success('获取成功', $users);
|
||||
}
|
||||
@@ -54,6 +81,7 @@ class User
|
||||
$user = SysUserModel::withoutField([
|
||||
'password',
|
||||
'salt',
|
||||
'delete_disable',
|
||||
'created_at',
|
||||
'updated_at',
|
||||
'deleted_at',
|
||||
@@ -147,6 +175,9 @@ class User
|
||||
if (empty($user)) {
|
||||
return error('请确认要操作的对象是否存在');
|
||||
}
|
||||
if ($user->delete_disable == 1) {
|
||||
return error('该用户禁止删除');
|
||||
}
|
||||
|
||||
if (!$user->delete()) {
|
||||
return error('操作失败');
|
||||
|
||||
Reference in New Issue
Block a user