diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 44a3634..707c0ef 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -83,6 +83,15 @@ $routes->group('article', ['namespace' => 'App\Controllers\Article'], function ( $routes->post('apt/savePhoCate', 'Apt::savePhoCate'); $routes->post('apt/reqRemovePho', 'Apt::reqRemovePho'); + + // 단지번호 변경/삭제 + $routes->get('apt/del_chg_hscp_no', 'DelChgApt::lists'); + + /** + * 단지번호 변경/삭제 - API + */ + $routes->get('apt/delChgApt/getAptLists', 'DelChgApt::getAptLists'); + $routes->post('apt/delChgApt/chgAptHscp', 'Apt::chgAptHscp'); }); /** diff --git a/app/Controllers/Article/DelChgApt.php b/app/Controllers/Article/DelChgApt.php new file mode 100644 index 0000000..3545ba1 --- /dev/null +++ b/app/Controllers/Article/DelChgApt.php @@ -0,0 +1,124 @@ +model = new DelChgAptModel(); + } + + public function lists(): string + { + return view("pages/article/delChgView"); + } + + + public function getAptLists() + { + $start = (int) $this->request->getGet('start') ?: 0; + $end = (int) $this->request->getGet('length') ?: 10; + + $data = [ + 'hscpNo' => $this->request->getGet('hscpNo') ?: '', + ]; + + $totalCount = $this->model->getTotalCount($data); + + + $datas = $this->model->getAptLists($start, $end, $data); + + + return $this->response->setJSON(body: [ + 'recordsTotal' => $totalCount, + 'recordsFiltered' => $totalCount, + 'data' => $datas, + ]); + } + + // 단지코드 변경 + public function chgAptHscp() + { + try { + + $rcptNo = $this->request->getPost('rcpt_no'); + + if (empty($rcptNo)) { + return $this->response->setJSON([ + 'code' => '9', + 'msg' => '접수번호 누락' + ]); + } + + $data = [ + 'rcptNo' => $rcptNo, + 'hscpNo' => $this->request->getPost('hscp_no'), + ]; + + // 기존 단지코드 있는지 체크 + $exits = $this->model->chkExistAptHscp($data); + if ($exits) { + return $this->response->setJSON([ + 'code' => '9', + 'msg' => '이미 존재하는 단지코드' + ]); + } + + // 단지코드 저장 + $this->model->saveAptHscp($data); + + + return $this->response->setJSON([ + 'code' => '0', + 'msg' => 'success' + ]); + + + } catch (\Exception $e) { + return $this->response->setJSON([ + 'code' => '9', + 'msg' => $e->getMessage(), + ]); + } + } + + // 아파트단지 삭제 + public function deleteAptHscp() + { + try { + + $rcptNo = $this->request->getPost('rcpt_no'); + + if (empty($rcptNo)) { + return $this->response->setJSON([ + 'code' => '9', + 'msg' => '접수번호 누락' + ]); + } + + $data = [ + 'rcptNo' => $rcptNo, + ]; + + // 단지코드 저장 + $this->model->deleteAptHscp($data); + + + return $this->response->setJSON([ + 'code' => '0', + 'msg' => 'success' + ]); + + + } catch (\Exception $e) { + return $this->response->setJSON([ + 'code' => '9', + 'msg' => $e->getMessage(), + ]); + } + } +} \ No newline at end of file diff --git a/app/Models/article/DelChgAptModel.php b/app/Models/article/DelChgAptModel.php new file mode 100644 index 0000000..e177684 --- /dev/null +++ b/app/Models/article/DelChgAptModel.php @@ -0,0 +1,138 @@ +db->query($sql); + + return $query->getRow()->cnt; + } + + public function getAptLists($start, $end, $data) + { + $sql = "SELECT rcpt_no, hscp_no, rcpt_hscp_nm FROM apt_receipt WHERE 1=1 "; + + if (!empty($data['hscpNo'])) { + $sql .= "AND hscp_no LIKE CONCAT('%', '{$data['hscpNo']}', '%')"; + } + + $sql .= "LIMIT {$start}, {$end} "; + + $query = $this->db->query($sql); + + return $query->getResultArray(); + } + + + public function chkExistAptHscp($data) + { + $sql = "SELECT COUNT(*) AS cnt FROM apt_receipt WHERE 1=1 "; + + $sql .= "AND hscp_no = '{$data['hscpNo']}' "; + $sql .= "AND rcpt_no != {$data['rcptNo']} "; + + $query = $this->db->query($sql); + + return $query->getRow()->cnt; + } + + // 단지코드 정보 변경 + public function saveAptHscp($data) + { + $this->db->transStart(); + + $sql = "UPDATE apt_receipt SET "; + $sql .= "hscp_no = {$data['hscpNo']} "; + $sql .= "WHERE rcpt_no = {$data['rcptNo']} "; + + if ($this->db->query($sql) === false) { + return [ + 'success' => false, + 'msg' => '저장실패', + ]; + } + + $sql = "UPDATE apt_result SET "; + $sql .= "hscp_no = {$data['hscpNo']} "; + $sql .= "WHERE rcpt_no = {$data['rcptNo']} "; + + if ($this->db->query($sql) === false) { + return [ + 'success' => false, + 'msg' => '저장실패', + ]; + } + + $this->db->transComplete(); + + // 성공 + return [ + 'success' => true, + ]; + } + + // 아파트 정보 삭제 + public function deleteAptHscp($data) + { + $this->db->transStart(); + + $sql = "DELETE FROM apt_history WHERE rcpt_no = {$data['rcptNo']} "; + if ($this->db->query($sql) === false) { + return [ + 'success' => false, + 'msg' => '저장실패', + ]; + } + + $sql = "DELETE FROM apt_category WHERE rcpt_no = {$data['rcptNo']} "; + if ($this->db->query($sql) === false) { + return [ + 'success' => false, + 'msg' => '저장실패', + ]; + } + + $sql = "DELETE FROM apt_photo WHERE rcpt_no = {$data['rcptNo']} "; + if ($this->db->query($sql) === false) { + return [ + 'success' => false, + 'msg' => '저장실패', + ]; + } + + $sql = "DELETE FROM apt_result WHERE rcpt_no = {$data['rcptNo']} "; + if ($this->db->query($sql) === false) { + return [ + 'success' => false, + 'msg' => '저장실패', + ]; + } + + $sql = "DELETE FROM apt_receipt WHERE rcpt_no = {$data['rcptNo']} "; + if ($this->db->query($sql) === false) { + return [ + 'success' => false, + 'msg' => '저장실패', + ]; + } + + $this->db->transComplete(); + + // 성공 + return [ + 'success' => true, + ]; + } + +} \ No newline at end of file diff --git a/app/Views/pages/article/delChgView.php b/app/Views/pages/article/delChgView.php new file mode 100644 index 0000000..1f13084 --- /dev/null +++ b/app/Views/pages/article/delChgView.php @@ -0,0 +1,328 @@ +extend('layouts/main') ?> + +section('content') ?> + + +

조직 관리

+ +
+
+
+
+
+ +
+ + +
+ + +
+ +
+ +
+
+
+
+ + +
+
+
조직 관리
+
+ + + + + + + + + + + + + +
순번단지코드단지구역명단지코드변경
+
+ +
+
+
+ + + + + +endSection() ?> \ No newline at end of file