文本聊天已完成

This commit is contained in:
2025-06-26 15:41:29 +08:00
parent 9f0ef4cc26
commit 16e028e50e
14 changed files with 574 additions and 450 deletions

View File

@@ -2,9 +2,11 @@
namespace App\Services\GatewayWorker;
use App\Models\im\ChatRoomUserModel;
use App\Models\UserModel;
use App\Services\Base\BaseService;
class UserService
class UserService extends BaseService
{
public function login($username, $password)
{
@@ -23,10 +25,11 @@ class UserService
}
}
public function register($username, $password, $nickName)
public function register($username, $password, $nickName, $avatar)
{
$userModel = UserModel::create([
'username' => $username,
'$avatar' => $$avatar,
'password' => md5($password),
'nick_name' => $nickName,
'created_at' => time()
@@ -37,4 +40,23 @@ class UserService
'user_info' => $userModel
];
}
public function userList()
{
$userModel = UserModel::where('id', '<>', $this->userId)->get();
if (empty($userModel)) {
return [];
}
$myRooms = ChatRoomUserModel::where('user_id', $this->userId)->pluck('chat_room_id');
$allRooms = ChatRoomUserModel::where('user_id', '<>', $this->userId)->whereIn('chat_room_id', $myRooms)->get();
$roomsMap = array_column($allRooms->toArray(), 'chat_room_id', 'user_id');
$userModel = $userModel->toArray();
$gatewayClient = GatewayClientService::getInstance()->init();
foreach ($userModel as &$v) {
$v['is_uid_online'] = $gatewayClient->isUidOnline($v['id']);
$v['chat_room_id'] = !empty($roomsMap[$v['id']])? $roomsMap[$v['id']] : 0;
}
return $userModel;
}
}