1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Helpers\CryptoHelper;
use Illuminate\Support\Facades\DB;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Cache;
class IndexController extends Controller {
/**
* Shows the index page.
*
* @return Response
*/
public function showPage(Request $request) {
if ( Cache::has('index') ) {
return Cache::get('index');
} else {
$views = array("whisky", "wodka", "gin", "rum", "misc");
$query = "";
foreach($views as $view) {
if ($query != "") {
$query .= " UNION ";
}
$query .= "
(SELECT
name,
image_url,
spirit_type,
spirit_type AS url,
spirit_type AS angebotsname,
(SELECT MAX(procent) FROM " . $view . "_view) as procent,
'' AS linktext FROM ". $view ."_view
WHERE
original_price > 29.98
AND
spirit_type != 'Verschiedenes'
AND
shop != 'Rum & Co'
AND
shop = 'Drankdozijn'
ORDER BY
created_at DESC,
procent DESC LIMIT 1)";
}
$data = DB::select($query);
$count = DB::select("SELECT count(*) as count FROM all_view")[0];
$cached_data = view('index', ['data' => $data, 'views' => $views, 'hits' => $count])->render();
Cache::put('index', $cached_data, 600); // 10 minutes
return $cached_data;
}
}
}
|