From 38c7755757044db3521f9590c87b49db7097bc36 Mon Sep 17 00:00:00 2001 From: shibafu Date: Fri, 6 Nov 2020 09:12:14 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=81=E3=82=A7=E3=83=83=E3=82=AF=E3=82=A4?= =?UTF-8?q?=E3=83=B3=E3=82=B9=E3=83=91=E3=83=B3=E3=81=AE=E8=A8=88=E7=AE=97?= =?UTF-8?q?=E6=89=8B=E6=AE=B5=E3=82=92Window=E9=96=A2=E6=95=B0=E3=81=8B?= =?UTF-8?q?=E3=82=89=E7=9B=B8=E9=96=A2=E3=82=B5=E3=83=96=E3=82=AF=E3=82=A8?= =?UTF-8?q?=E3=83=AA=E3=81=AB=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/UserController.php | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 618997c..40b9894 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -28,17 +28,18 @@ class UserController extends Controller // チェックインの取得 $query = Ejaculation::select(DB::raw( <<<'SQL' -id, +ejaculations.id, ejaculated_date, note, is_private, is_too_sensitive, link, source, -to_char(lead(ejaculated_date, 1, NULL) OVER (ORDER BY ejaculated_date DESC), 'YYYY/MM/DD HH24:MI') AS before_date, -to_char(ejaculated_date - (lead(ejaculated_date, 1, NULL) OVER (ORDER BY ejaculated_date DESC)), 'FMDDD日 FMHH24時間 FMMI分') AS ejaculated_span +to_char(before_dates.before_date, 'YYYY/MM/DD HH24:MI') AS before_date, +to_char(ejaculated_date - before_dates.before_date, 'FMDDD日 FMHH24時間 FMMI分') AS ejaculated_span SQL )) + ->joinSub($this->queryBeforeEjaculatedDates(), 'before_dates', 'before_dates.id', '=', 'ejaculations.id') ->where('user_id', $user->id); if (!Auth::check() || $user->id !== Auth::id()) { $query = $query->where('is_private', false); @@ -161,17 +162,18 @@ SQL // チェックインの取得 $query = Ejaculation::select(DB::raw( <<<'SQL' -id, +ejaculations.id, ejaculated_date, note, is_private, is_too_sensitive, link, source, -to_char(lead(ejaculated_date, 1, NULL) OVER (ORDER BY ejaculated_date DESC), 'YYYY/MM/DD HH24:MI') AS before_date, -to_char(ejaculated_date - (lead(ejaculated_date, 1, NULL) OVER (ORDER BY ejaculated_date DESC)), 'FMDDD日 FMHH24時間 FMMI分') AS ejaculated_span +to_char(before_dates.before_date, 'YYYY/MM/DD HH24:MI') AS before_date, +to_char(ejaculated_date - before_dates.before_date, 'FMDDD日 FMHH24時間 FMMI分') AS ejaculated_span SQL )) + ->joinSub($this->queryBeforeEjaculatedDates(), 'before_dates', 'before_dates.id', '=', 'ejaculations.id') ->where('user_id', $user->id) ->where('link', '<>', ''); if (!Auth::check() || $user->id !== Auth::id()) { @@ -303,4 +305,14 @@ SQL ->groupBy(DB::raw("to_char(ejaculated_date, 'YYYY/MM/DD')")) ->orderBy(DB::raw("to_char(ejaculated_date, 'YYYY/MM/DD')")); } + + private function queryBeforeEjaculatedDates() + { + return DB::table('ejaculations')->selectRaw( + <<<'SQL' +id, +(select ejaculated_date from ejaculations e2 where e2.ejaculated_date < ejaculations.ejaculated_date and e2.user_id = ejaculations.user_id order by e2.ejaculated_date desc limit 1) AS before_date +SQL + ); + } }