englishtokorea/web/app/Controllers/LearningController.php
2025-05-28 14:26:49 +09:00

43 lines
1.8 KiB
PHP

<?php
namespace App\Controllers;
use App\Models\DailyLearningLogModel;
use CodeIgniter\HTTP\ResponseInterface;
class LearningController extends BaseController
{
public function endLearning()
{
try {
// 사용자 정보를 세션에서 가져오기
$userId = session()->get('num');
$currentDate = date('Y-m-d');
// 현재 학습 로그 가져오기
$learningLogModel = new DailyLearningLogModel();
$existingLog = $learningLogModel->where('user_id', $userId)->where('todate', $currentDate)->first();
if ($existingLog) {
$startTime = strtotime($existingLog['start_time']);
$endTime = time();
$totalTime = ($endTime - $startTime); // 분 단위로 변환
$data = [
'end_time' => date('H:i:s'),
'total_time' => $existingLog['total_time']+$totalTime,
'last_json_key' => session()->get('last_json_key') // 세션에서 중단 키 값 가져오기
];
$learningLogModel->update($existingLog['num'], $data);
return $this->response->setStatusCode(ResponseInterface::HTTP_OK)->setJSON(['message' => 'Learning session ended successfully.']);
} else {
return $this->response->setStatusCode(ResponseInterface::HTTP_NOT_FOUND)->setJSON(['message' => 'Learning log not found.']);
}
} catch (\Exception $e) {
log_message('error', 'Error in endLearning: ' . $e->getMessage());
return $this->response->setStatusCode(ResponseInterface::HTTP_INTERNAL_SERVER_ERROR)->setJSON(['message' => 'An error occurred while ending the learning session.']);
}
}
}