perf: 优化会话成员列表查询

This commit is contained in:
kuaifan
2024-11-23 00:11:24 +08:00
parent fb24c63e7f
commit bab37530e4
2 changed files with 24 additions and 14 deletions

View File

@@ -78,6 +78,23 @@ class WebSocketDialog extends AbstractModel
return $this->hasMany(WebSocketDialogUser::class, 'dialog_id', 'id');
}
/**
* 获取对话成员(剔除离职)
* @param $addField
* @return User|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder
*/
public function dialogUserBuilder($addField = [])
{
$columns = array_map(function ($column) {
return "users." . $column;
}, array_merge(User::$basicField, $addField));
$columns[] = "du.*";
return User::select($columns)
->join('web_socket_dialog_users as du', 'users.userid', '=', 'du.userid')
->where('du.dialog_id', $this->id)
->whereNull('users.disable_at');
}
/**
* 获取对话列表