新增在线状态
This commit is contained in:
parent
312abd7856
commit
f8fa57ae78
@ -94,9 +94,7 @@ class UsersController extends AbstractController
|
||||
'line_ip' => Base::getIp(),
|
||||
'line_at' => Carbon::now(),
|
||||
];
|
||||
foreach ($array as $key => $value) {
|
||||
$user->$key = $value;
|
||||
}
|
||||
$user->updateInstance($array);
|
||||
$user->save();
|
||||
//
|
||||
$user->token = User::token($user);
|
||||
|
@ -60,6 +60,19 @@ class User extends AbstractModel
|
||||
'updated_at',
|
||||
];
|
||||
|
||||
/**
|
||||
* 更新数据校验
|
||||
* @param array $param
|
||||
*/
|
||||
public function updateInstance(array $param)
|
||||
{
|
||||
parent::updateInstance($param);
|
||||
//
|
||||
if (isset($param['line_at']) && $this->userid) {
|
||||
Cache::put("User::online:" . $this->userid, time(), Carbon::now()->addSeconds(30));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 昵称
|
||||
* @param $value
|
||||
@ -93,6 +106,19 @@ class User extends AbstractModel
|
||||
return array_filter(is_array($value) ? $value : explode(",", trim($value, ",")));
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否在线
|
||||
* @return int
|
||||
*/
|
||||
public function getOnlineStatus()
|
||||
{
|
||||
$online = intval(Cache::get("User::online:" . $this->userid, 0));
|
||||
if ($online) {
|
||||
return true;
|
||||
}
|
||||
return WebSocket::whereUserid($this->userid)->exists();
|
||||
}
|
||||
|
||||
|
||||
/** ***************************************************************************************** */
|
||||
/** ***************************************************************************************** */
|
||||
@ -329,10 +355,10 @@ class User extends AbstractModel
|
||||
if (isset($_A["__static_userid2basic_" . $userid])) {
|
||||
return $_A["__static_userid2basic_" . $userid];
|
||||
}
|
||||
$fields = ['userid', 'email', 'nickname', 'userimg', 'line_at'];
|
||||
$fields = ['userid', 'email', 'nickname', 'userimg'];
|
||||
$userInfo = self::whereUserid($userid)->select($fields)->first();
|
||||
if ($userInfo) {
|
||||
$userInfo->line_at;
|
||||
$userInfo->online = $userInfo->getOnlineStatus();
|
||||
}
|
||||
return $_A["__static_userid2basic_" . $userid] = ($userInfo ?: []);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user