首页移植到laravel内

master
weizong song 4 months ago
parent 3777ac774e
commit 4ec00f60f4

@ -5,35 +5,9 @@ namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Models\Competition;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Facades\Schema;
class PublicCompetitionController extends Controller
{
public function active(): JsonResponse
{
$query = Competition::query();
if (Schema::hasColumn('competitions', 'published')) {
$query->where('published', true);
}
if (Schema::hasColumn('competitions', 'status')) {
$query->whereIn('status', ['published', 'signup_open']);
}
if (Schema::hasColumn('competitions', 'signup_open_at')) {
$query->orderByDesc('signup_open_at');
}
$competition = $query->orderByDesc('id')->firstOrFail();
return response()->json([
'id' => $competition->id,
'slug' => $competition->slug,
'name' => $competition->name,
'status' => $competition->status,
'signup_open_at' => $competition->signup_open_at?->toIso8601String(),
'signup_close_at' => $competition->signup_close_at?->toIso8601String(),
]);
}
public function showBySlug(string $slug): JsonResponse
{
$competition = Competition::query()

@ -2107,7 +2107,7 @@
<a class="btn btn-primary" href="#about" aria-label="查看主题赛道">
<span class="action-label">主题赛道</span>
</a>
<a target="_blank" class="btn btn-signup" href="/admin/c/xxf/login" aria-label="报名参赛">
<a target="_blank" class="btn btn-signup" href="admin/c/xxf/login" aria-label="报名参赛">
<span class="action-label">报名参赛</span>
</a>
<a class="btn btn-ghost" href="#guide" aria-label="查看参赛指南">

File diff suppressed because it is too large Load Diff

@ -19,7 +19,6 @@ use App\Http\Controllers\Api\UserProfileController;
use Illuminate\Support\Facades\Route;
Route::prefix('v1')->group(function () {
Route::get('public/competitions/active', [PublicCompetitionController::class, 'active']);
Route::get('public/competitions/by-slug/{slug}', [PublicCompetitionController::class, 'showBySlug']);
Route::prefix('review')->group(function () {

@ -2,10 +2,8 @@
use App\Http\Controllers\Api\ApplicationFileController;
use App\Http\Controllers\ChannelEntryController;
use App\Models\Competition;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\Schema;
/*
|--------------------------------------------------------------------------
@ -19,24 +17,7 @@ use Illuminate\Support\Facades\Schema;
*/
Route::get('/', function () {
$query = Competition::query();
if (Schema::hasColumn('competitions', 'published')) {
$query->where('published', true);
}
if (Schema::hasColumn('competitions', 'status')) {
$query->whereIn('status', ['published', 'signup_open']);
}
if (Schema::hasColumn('competitions', 'signup_open_at')) {
$query->orderByDesc('signup_open_at');
}
$competition = $query->orderByDesc('id')->first();
if ($competition === null) {
return redirect('/admin/');
}
return redirect('/admin/c/'.rawurlencode($competition->slug).'/login');
return view('welcome');
});
Route::get('/channel-entry', ChannelEntryController::class)->name('channel.entry');

@ -14,6 +14,9 @@ class ExampleTest extends TestCase
{
$response = $this->get('/');
$response->assertStatus(200);
$response
->assertOk()
->assertSee('2026江苏省新消费创新创业大赛')
->assertSee('href="admin/c/xxf/login"', false);
}
}

Loading…
Cancel
Save