43 lines
1.8 KiB
PHP
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.']);
|
|
}
|
|
}
|
|
}
|