ldc-gen-game-web/app/Http/Controllers/Bo/WinnersListController.php

66 lines
2.5 KiB
PHP
Raw Permalink Normal View History

<?php
namespace App\Http\Controllers\Bo;
use App\Http\Controllers\Controller;
use App\Http\Requests\Bo\UpdateWinInfosRequest;
use App\Models\InstantWin;
use App\Models\Participation;
use App\Models\Settings;
use Illuminate\Support\Facades\Cache;
class WinnersListController extends Controller
{
2022-03-15 16:27:41 +01:00
/**
* Show Instant win list
*
* @return \Illuminate\Contracts\View\View|\Illuminate\Contracts\View\Factory
*/
2021-08-18 17:08:02 +02:00
public function index()
{
$participations = Participation::whereHas('instantWin')->with('code')
->with('instantWin.prize')->with('customer')->with('codeEan')->get();
$settings = Settings::select('use_ean_codes', 'winning_proof')->first();
// * Generate code to show up in front + format date + customer info
$participations = $participations->map(function (Participation $participation) {
$participation->created = $participation->created_at->format('d/m/Y à H:i');
$participation->code->code = $participation->code->code_unique;
$participation->code->code = $participation->code->code_unique;
$participation->customer->setRawAttributes(['data' => Cache::remember(
'winnerList' . $participation->customer->id,
90,
function () use ($participation) {
/** @var \LDC\LDCCRM\Models\Customer|null $crmCustomer */
$crmCustomer = $participation->customer->apiData;
$data = [];
if ($crmCustomer) {
$countryLabel = $crmCustomer->country->label;
$data = collect($crmCustomer)->all();
$data['country'] = $countryLabel;
}
return $data;
}
)]);
return $participation;
});
return view('bo.winners-list.index', compact('participations', 'settings'));
}
2022-03-15 16:27:41 +01:00
/**
* Update Instant win info
2022-03-15 16:27:41 +01:00
*
* @param UpdateWinInfosRequest $request
* @param InstantWin $instantWin
* @return \Illuminate\Http\JsonResponse
2022-03-15 16:27:41 +01:00
*/
public function updateInstantWinInfos(UpdateWinInfosRequest $request, InstantWin $instantWin)
2021-08-18 17:08:02 +02:00
{
$instantWin->done = $request->done;
$instantWin->comment = $request->comment;
if ($instantWin->save()) {
return response()->json();
2021-08-18 17:08:02 +02:00
}
return response()->json([], 500);
}
}