refactor: 用户分页添加最后登录ip/最后登录时间输出
This commit is contained in:
@@ -3,6 +3,7 @@ declare (strict_types = 1);
|
|||||||
|
|
||||||
namespace app\admin\controller\v1;
|
namespace app\admin\controller\v1;
|
||||||
|
|
||||||
|
use app\admin\model\v1\SysUserLoginLogModel;
|
||||||
use app\admin\model\v1\SysUserModel;
|
use app\admin\model\v1\SysUserModel;
|
||||||
use app\admin\validate\v1\SysUserValidate;
|
use app\admin\validate\v1\SysUserValidate;
|
||||||
|
|
||||||
@@ -42,6 +43,32 @@ class User
|
|||||||
])
|
])
|
||||||
->bindAttr('role', ['role_name'])
|
->bindAttr('role', ['role_name'])
|
||||||
->hidden(['role_id', 'role']);
|
->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);
|
return success('获取成功', $users);
|
||||||
}
|
}
|
||||||
@@ -54,6 +81,7 @@ class User
|
|||||||
$user = SysUserModel::withoutField([
|
$user = SysUserModel::withoutField([
|
||||||
'password',
|
'password',
|
||||||
'salt',
|
'salt',
|
||||||
|
'delete_disable',
|
||||||
'created_at',
|
'created_at',
|
||||||
'updated_at',
|
'updated_at',
|
||||||
'deleted_at',
|
'deleted_at',
|
||||||
@@ -147,6 +175,9 @@ class User
|
|||||||
if (empty($user)) {
|
if (empty($user)) {
|
||||||
return error('请确认要操作的对象是否存在');
|
return error('请确认要操作的对象是否存在');
|
||||||
}
|
}
|
||||||
|
if ($user->delete_disable == 1) {
|
||||||
|
return error('该用户禁止删除');
|
||||||
|
}
|
||||||
|
|
||||||
if (!$user->delete()) {
|
if (!$user->delete()) {
|
||||||
return error('操作失败');
|
return error('操作失败');
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ class SysUserBaseModel extends BaseModel
|
|||||||
'avatar' => 'string',
|
'avatar' => 'string',
|
||||||
'mobile' => 'string',
|
'mobile' => 'string',
|
||||||
'email' => 'string',
|
'email' => 'string',
|
||||||
|
'delete_disable' => 'int',
|
||||||
'status' => 'int',
|
'status' => 'int',
|
||||||
'created_at' => 'datetime',
|
'created_at' => 'datetime',
|
||||||
'updated_at' => 'datetime',
|
'updated_at' => 'datetime',
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ class CreateSysUser extends Migrator
|
|||||||
->addColumn('avatar', 'string', ['limit' => 255, 'null' => true, 'default' => null, 'comment' => '头像'])
|
->addColumn('avatar', 'string', ['limit' => 255, 'null' => true, 'default' => null, 'comment' => '头像'])
|
||||||
->addColumn('mobile', 'string', ['limit' => 11, 'null' => true, 'default' => null, 'comment' => '手机号码'])
|
->addColumn('mobile', 'string', ['limit' => 11, 'null' => true, 'default' => null, 'comment' => '手机号码'])
|
||||||
->addColumn('email', 'string', ['limit' => 128, 'null' => true, 'default' => null, 'comment' => '邮箱地址'])
|
->addColumn('email', 'string', ['limit' => 128, 'null' => true, 'default' => null, 'comment' => '邮箱地址'])
|
||||||
|
->addColumn('delete_disable', 'boolean', ['null' => false, 'default' => 0, 'comment' => '是否禁止删除:1为是,0为否'])
|
||||||
->addColumn('status', 'boolean', ['null' => false, 'default' => 1, 'comment' => '-1为禁用, 1为启用'])
|
->addColumn('status', 'boolean', ['null' => false, 'default' => 1, 'comment' => '-1为禁用, 1为启用'])
|
||||||
->addColumn('created_at', 'timestamp', ['null' => false, 'default' => 'CURRENT_TIMESTAMP', 'comment' => '创建时间'])
|
->addColumn('created_at', 'timestamp', ['null' => false, 'default' => 'CURRENT_TIMESTAMP', 'comment' => '创建时间'])
|
||||||
->addColumn('updated_at', 'timestamp', ['null' => false, 'default' => 'CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP', 'comment' => '更新时间'])
|
->addColumn('updated_at', 'timestamp', ['null' => false, 'default' => 'CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP', 'comment' => '更新时间'])
|
||||||
|
|||||||
Reference in New Issue
Block a user