Files
chatroom/app/Http/Controllers/InviteController.php

47 lines
1.2 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Cookie;
class InviteController extends Controller
{
/**
* 处理邀请链接跳转
*
* @param int $inviter_id 邀请人ID
*/
public function handle(Request $request, int $inviter_id)
{
// 查找邀请人是否存在
$inviter = User::find($inviter_id);
if ($inviter) {
// 将邀请人ID记录到 Cookie 中有效期7天7 * 24 * 60 = 10080 分钟)
// 确保Cookie仅通过 HTTP 访问且作用于全站
Cookie::queue('inviter_id', $inviter->id, 10080);
}
// 重定向回聊天室首页进行注册/登录
return redirect()->route('home');
}
/**
* 独立展示邀请全站排行榜页面
*/
public function leaderboard()
{
// 邀请达人榜 (Top 50)
$topInviters = User::withCount('invitees')
->with(['activePosition.position.department'])
->having('invitees_count', '>', 0)
->orderByDesc('invitees_count')
->limit(50)
->get();
return view('invite.leaderboard', compact('topInviters'));
}
}