新增在线状态

This commit is contained in:
kuaifan 2021-06-02 20:27:23 +08:00
parent 312abd7856
commit f8fa57ae78
2 changed files with 29 additions and 5 deletions

View File

@ -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);

View File

@ -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 ?: []);
}