新增节日福利系统:①数据库表+模型 ②TriggerHolidayEventJob队列任务(在线用户筛选/金额分配/WebSocket广播) ③后台管理页面(列表/创建/手动触发) ④前台领取弹窗+WebSocket监听 ⑤定时调度每分钟扫描 ⑥CurrencySource补充HOLIDAY_BONUS

This commit is contained in:
2026-03-01 20:06:53 +08:00
parent a37b04aca0
commit c5fe9faf94
16 changed files with 1504 additions and 1 deletions
+20 -1
View File
@@ -107,6 +107,14 @@ Route::middleware(['chat.auth'])->group(function () {
Route::get('/ceremony/{ceremony}/envelope', [\App\Http\Controllers\WeddingController::class, 'envelopeStatus'])->name('envelope-status');
});
// ── 节日福利(前台)──────────────────────────────────────────────
Route::prefix('holiday')->name('holiday.')->group(function () {
// 领取节日福利红包
Route::post('/{event}/claim', [\App\Http\Controllers\HolidayController::class, 'claim'])->name('claim');
// 查询当前用户在活动中的领取状态
Route::get('/{event}/status', [\App\Http\Controllers\HolidayController::class, 'status'])->name('status');
});
// ---- 第五阶段:具体房间内部聊天核心 ----
// 进入具体房间界面的初始化
Route::get('/room/{id}', [ChatController::class, 'init'])->name('chat.room');
@@ -287,9 +295,20 @@ Route::middleware(['chat.auth', 'chat.has_position'])->prefix('admin')->name('ad
Route::put('/tiers/{tier}', [\App\Http\Controllers\Admin\MarriageManagerController::class, 'updateTier'])->name('tiers.update');
// 强制离婚
Route::post('/{marriage}/force-dissolve', [\App\Http\Controllers\Admin\MarriageManagerController::class, 'forceDissolve'])->name('force-dissolve');
// 取消求婚
Route::post('/{marriage}/cancel-proposal', [\App\Http\Controllers\Admin\MarriageManagerController::class, 'cancelProposal'])->name('cancel-proposal');
});
// 📅 节日福利活动管理
Route::prefix('holiday-events')->name('holiday-events.')->group(function () {
Route::get('/', [\App\Http\Controllers\Admin\HolidayEventController::class, 'index'])->name('index');
Route::get('/create', [\App\Http\Controllers\Admin\HolidayEventController::class, 'create'])->name('create');
Route::post('/', [\App\Http\Controllers\Admin\HolidayEventController::class, 'store'])->name('store');
Route::get('/{holidayEvent}/edit', [\App\Http\Controllers\Admin\HolidayEventController::class, 'edit'])->name('edit');
Route::put('/{holidayEvent}', [\App\Http\Controllers\Admin\HolidayEventController::class, 'update'])->name('update');
Route::post('/{holidayEvent}/toggle', [\App\Http\Controllers\Admin\HolidayEventController::class, 'toggle'])->name('toggle');
Route::post('/{holidayEvent}/trigger-now', [\App\Http\Controllers\Admin\HolidayEventController::class, 'triggerNow'])->name('trigger-now');
Route::delete('/{holidayEvent}', [\App\Http\Controllers\Admin\HolidayEventController::class, 'destroy'])->name('destroy');
});
});
// ──────────────────────────────────────────────────────────────