diff --git a/app/Config/App.php b/app/Config/App.php index b4c64a6..284b66d 100644 --- a/app/Config/App.php +++ b/app/Config/App.php @@ -16,7 +16,7 @@ class App extends BaseConfig * * E.g., http://example.com/ */ - public string $baseURL = 'http://test2-admin.confirms.co.kr'; + public string $baseURL = 'http://localtest2-admin.confirms.co.kr'; /** * Allowed Hostnames in the Site URL other than the hostname in the baseURL. @@ -199,4 +199,37 @@ class App extends BaseConfig * @see http://www.w3.org/TR/CSP/ */ public bool $CSPEnabled = false; + + /** + * -------------------------------------------------------------------------- + * Constructor - .env 값 로드 + * -------------------------------------------------------------------------- + */ + public function __construct() + { + parent::__construct(); + + // .env 파일의 값으로 속성 오버라이드 + if (env('app.baseURL')) { + $this->baseURL = env('app.baseURL'); + } + + if (env('app.appTimezone')) { + $this->appTimezone = env('app.appTimezone'); + } + + if (env('app.forceGlobalSecureRequests') !== null) { + $this->forceGlobalSecureRequests = filter_var( + env('app.forceGlobalSecureRequests'), + FILTER_VALIDATE_BOOLEAN + ); + } + + if (env('app.CSPEnabled') !== null) { + $this->CSPEnabled = filter_var( + env('app.CSPEnabled'), + FILTER_VALIDATE_BOOLEAN + ); + } + } } diff --git a/app/Config/Constants.php b/app/Config/Constants.php index a765e15..066dc57 100644 --- a/app/Config/Constants.php +++ b/app/Config/Constants.php @@ -84,7 +84,7 @@ defined('EXIT__AUTO_MAX') || define('EXIT__AUTO_MAX', 125); // highest automa */ // 환경별 버킷 설정 $environment = getenv('CI_ENVIRONMENT') ?: 'production'; -// log_message('info', 'Current environment: ' . $environment); + if ($environment === 'development') { define('NCLOUD_S3_BUCKET', 'confirms-object-test'); define('NCLOUD_OBJECT_STORAGE_URL', 'https://kr.object.ncloudstorage.com/confirms-object-test'); @@ -93,6 +93,7 @@ if ($environment === 'development') { define('NCLOUD_OBJECT_STORAGE_URL', 'https://kr.object.ncloudstorage.com/confirms-object'); } -define('NCLOUD_S3_KEY', 'ncp_iam_BPAMKR3l50hXJiQ6qpSP'); -define('NCLOUD_S3_SECRET', 'ncp_iam_BPKMKRW2GU59UE59I1QftVGst6NJgnmbSc'); -define('NCLOUD_S3_ENDPOINT', 'https://kr.object.ncloudstorage.com'); \ No newline at end of file +// .env 파일에서 NCLOUD 설정 읽기 +define('NCLOUD_S3_KEY', getenv('ncloud.s3.key') ?: 'ncp_iam_BPAMKR3l50hXJiQ6qpSP'); +define('NCLOUD_S3_SECRET', getenv('ncloud.s3.secret') ?: 'ncp_iam_BPKMKRW2GU59UE59I1QftVGst6NJgnmbSc'); +define('NCLOUD_S3_ENDPOINT', getenv('ncloud.s3.endpoint') ?: 'https://kr.object.ncloudstorage.com'); diff --git a/app/Controllers/Article/Processible.php b/app/Controllers/Article/Processible.php index d7bdcea..a259982 100644 --- a/app/Controllers/Article/Processible.php +++ b/app/Controllers/Article/Processible.php @@ -152,18 +152,24 @@ class Processible extends BaseController $rows = $this->request->getPost('rows'); $rows = json_decode($rows, true); - // dd($rows); - // exit; - if (count($rows) > 0) { - + + $results = []; + $hasError = false; + foreach ($rows as $row): - $this->model->saveCount($row); + $result = $this->model->saveCount($row); + $results[] = $result; + + if (!$result['success']) { + $hasError = true; + } endforeach; return $this->response->setJSON([ - 'code' => '0', - 'msg' => 'success' + 'code' => $hasError ? '9' : '0', + 'msg' => $hasError ? '일부 저장 실패' : 'success', + 'debug' => $results // 디버깅 정보 포함 ]); } else { diff --git a/app/Models/article/ProcessibleModel.php b/app/Models/article/ProcessibleModel.php index a77ddfd..8db44c2 100644 --- a/app/Models/article/ProcessibleModel.php +++ b/app/Models/article/ProcessibleModel.php @@ -249,7 +249,7 @@ class ProcessibleModel extends Model public function saveCount($data) { - $this->db->transStart(); + // $this->db->transStart(); $usr_sq = session('usr_sq'); @@ -257,7 +257,12 @@ class ProcessibleModel extends Model (sc_date, region_cd, am_cnt, pm_cnt, day_cnt, insert_usr, insert_tm, update_usr, update_tm) VALUES (?, ?, ?, ?, ?, ?, NOW(), ?, NOW()) - ON DUPLICATE KEY UPDATE am_cnt=values(am_cnt), pm_cnt=values(pm_cnt), day_cnt=values(day_cnt), update_usr=values(update_usr) + ON DUPLICATE KEY UPDATE + am_cnt = VALUES(am_cnt), + pm_cnt = VALUES(pm_cnt), + day_cnt = VALUES(day_cnt), + update_usr = VALUES(update_usr), + update_tm = NOW() "; $datas = [ @@ -270,17 +275,32 @@ class ProcessibleModel extends Model $usr_sq ]; - if ($this->db->query($sql, $datas) === false) { + // 쿼리 실행 + $result = $this->db->query($sql, $datas); + + // 실행된 쿼리 로그 출력 + $lastQuery = $this->db->getLastQuery(); + log_message('info', '[ProcessibleModel::saveCount] Query: ' . $lastQuery); + log_message('info', '[ProcessibleModel::saveCount] Affected Rows: ' . $this->db->affectedRows()); + + if ($result === false) { + $error = $this->db->error(); + log_message('error', '[ProcessibleModel::saveCount] Error: ' . json_encode($error)); + return [ 'success' => false, - 'msg' => '저장실패', + 'msg' => '저장실패: ' . ($error['message'] ?? '알 수 없는 오류'), + 'query' => (string) $lastQuery, + 'error' => $error ]; } - $this->db->transComplete(); + // $this->db->transComplete(); return [ 'success' => true, + 'query' => (string) $lastQuery, + 'affected_rows' => $this->db->affectedRows() ]; } } \ No newline at end of file diff --git a/app/Views/pages/article/processible/datecount.php b/app/Views/pages/article/processible/datecount.php index a56cf0e..8ec0505 100644 --- a/app/Views/pages/article/processible/datecount.php +++ b/app/Views/pages/article/processible/datecount.php @@ -513,7 +513,7 @@ data: null, render: function (data, type, row, meta) { var str = `
- +
`; @@ -706,9 +706,9 @@ datas.push(data); }); } - console.log(path); + // console.log(path); console.log(datas) - return + // return if (datas.length == 0) { Swal.fire({