From 71deae7b312dac80e6f1c646b05c0c389b5492dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EC=A4=80=ED=9D=A0git=20config=20git=20config=20-?= =?UTF-8?q?-helpgit=20config=20--global=20user=2Ename=20=EC=B5=9C=EC=A4=80?= =?UTF-8?q?=ED=9D=A0?= Date: Sat, 12 Aug 2023 12:50:20 +0900 Subject: [PATCH] shoppingmallv2 init... --- app/Config/Constants.php | 10 +- app/Config/Routes.php | 8 +- app/Controllers/Admin/PaymentController.php | 46 ----- .../Ecommerce/Payment/CardController.php | 64 ++---- .../Ecommerce/Payment/DepositController.php | 56 ++--- .../Ecommerce/Payment/PaymentController.php | 44 ++-- app/Controllers/Front/PaymentController.php | 49 ----- app/Database/shoppingmall.sql | 29 +-- app/Entities/PaymentEntity.php | 19 -- app/Helpers/Payment_helper.php | 191 ------------------ app/Language/ko/Order.php | 4 +- app/Language/ko/Payment.php | 22 -- app/Models/PaymentModel.php | 106 ---------- app/Views/admin/payment/index.php | 32 --- .../payment/card/{insert.php => update.php} | 6 +- .../deposit/{insert.php => update.php} | 0 app/Views/front/payment/index.php | 34 ---- .../layouts/front/left_menu/leftmenu_11.php | 3 - .../layouts/front/left_menu/leftmenu_22.php | 7 +- .../layouts/front/left_menu/leftmenu_3.php | 4 +- .../layouts/front/left_menu/leftmenu_4.php | 4 +- .../layouts/front/left_menu/leftmenu_5.php | 4 +- .../layouts/front/left_menu/leftmenu_6.php | 4 +- .../layouts/front/left_menu/leftmenu_8.php | 4 +- .../layouts/front/left_menu/leftmenu_9.php | 4 +- 25 files changed, 88 insertions(+), 666 deletions(-) delete mode 100644 app/Controllers/Admin/PaymentController.php delete mode 100644 app/Controllers/Front/PaymentController.php delete mode 100644 app/Entities/PaymentEntity.php delete mode 100644 app/Helpers/Payment_helper.php delete mode 100644 app/Language/ko/Payment.php delete mode 100644 app/Models/PaymentModel.php delete mode 100644 app/Views/admin/payment/index.php rename app/Views/ecommerce/payment/card/{insert.php => update.php} (83%) rename app/Views/ecommerce/payment/deposit/{insert.php => update.php} (100%) delete mode 100644 app/Views/front/payment/index.php diff --git a/app/Config/Constants.php b/app/Config/Constants.php index 8b6fbd1..b66405c 100644 --- a/app/Config/Constants.php +++ b/app/Config/Constants.php @@ -234,11 +234,9 @@ define('CLASS_ICONS', [ 'CATEGORY' => '', 'PRODUCT' => '', 'ORDER' => '', - 'PAYMENT' => '', - 'ECOMMERCE' => '', 'CART' => '', 'CARD' => '', - 'DEPOSIT' => '', + 'DEPOSIT' => '', ]); define('CLASS_TOP_BANNER', [ 'USER' => '', @@ -248,10 +246,8 @@ define('CLASS_TOP_BANNER', [ 'CATEGORY' => '', 'PRODUCT' => '', 'ORDER' => '', - 'PAYMENT' => '', - 'ECOMMERCE' => '', - 'CART' => '', - 'CARD' => '', + 'CART' => '', + 'CARD' => '', 'DEPOSIT' => '', ]); define('AUDIOS', [ diff --git a/app/Config/Routes.php b/app/Config/Routes.php index df4f776..39a2628 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -41,10 +41,10 @@ $routes->group('ecommerce', ['namespace' => 'App\Controllers\Ecommerce'], functi $routes->post('addCart', 'CartController::insert'); $routes->get('cancelCart', 'CartController::delete'); $routes->group('payment', ['namespace' => 'App\Controllers\Ecommerce\Payment', 'filter' => 'authFilter:user'], function ($routes) { - $routes->get('card', 'CardController::insert_form'); - $routes->post('card', 'CardController::insert'); - $routes->get('deposit', 'DepositController::insert_form'); - $routes->post('deposit', 'DepositController::insert'); + $routes->get('card/(:uuid)', 'CardController::update_form/$1'); + $routes->post('card(:uuid)', 'CardController::update/$1'); + $routes->get('deposit(:uuid)', 'DepositController::update_form/$1'); + $routes->post('deposit(:uuid)', 'DepositController::update/$1'); }); }); // authGuard는 App\Config\Filters.php의 $aliases에 선언한 이름이어야 함 diff --git a/app/Controllers/Admin/PaymentController.php b/app/Controllers/Admin/PaymentController.php deleted file mode 100644 index 0dfdd3e..0000000 --- a/app/Controllers/Admin/PaymentController.php +++ /dev/null @@ -1,46 +0,0 @@ -_model = new PaymentModel(); - $this->_viewDatas['className'] = 'Payment'; - parent::initController($request, $response, $logger); - $this->_viewPath .= strtolower($this->_viewDatas['className']); - } - - final public function getFields(string $action = ""): array - { - switch ($action) { - case 'insert': - return ["TID", "ORDERNO", "AMOUNT", "QUOTA", "ACCEPTNO", "ACCEPTDATE", "RESULTCODE", "created_at"]; - break; - case "index": - case "excel": - case "view": - return ["ORDERNO", "AMOUNT", "QUOTA", "ACCEPTNO", "ACCEPTDATE", "RESULTCODE", "created_at"]; - break; - default: - return []; - break; - } - } - final public function getFieldFilters(): array - { - return []; - } - final public function getFieldBatchFilters(): array - { - return []; - } - - //추가기능 -} diff --git a/app/Controllers/Ecommerce/Payment/CardController.php b/app/Controllers/Ecommerce/Payment/CardController.php index c327c25..b3aed3f 100644 --- a/app/Controllers/Ecommerce/Payment/CardController.php +++ b/app/Controllers/Ecommerce/Payment/CardController.php @@ -2,16 +2,17 @@ namespace App\Controllers\Ecommerce\Payment; -use App\Entities\PaymentEntity; use App\Libraries\Adapter\Payment\CookiePayment as PaymentAdapter; use CodeIgniter\HTTP\RequestInterface; use CodeIgniter\HTTP\ResponseInterface; use Psr\Log\LoggerInterface; +use App\Models\OrderModel; class CardController extends PaymentController { public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger) { + $this->_model = new OrderModel(); $this->_viewDatas['className'] = 'Card'; parent::initController($request, $response, $logger); $this->_viewPath .= strtolower($this->_viewDatas['className']); @@ -80,59 +81,22 @@ class CardController extends PaymentController return $options; } - //카드결제 Form - //Insert관련 - protected function insert_form_process() + //카드결제처리 + protected function update_process($entity) { - parent::insert_form_process(); - $this->_viewDatas['forms'] = ['attributes' => ['method' => "post",], 'hiddens' => ['order_uid' => $this->_viewDatas['order']->getPrimaryKey()]]; - } - public function insert_form() - { - try { - $uid = $this->request->getVar('order_uid') ?: throw new \Exception("주문번호가 지정되지 않았습니다."); - $this->_viewDatas = $this->init(__FUNCTION__); - $this->_viewDatas['order'] = $this->getOrderModel()->getEntity([$this->getOrderModel()->getPrimaryKey() => $uid]); - $this->insert_form_process(); - helper(['form']); - $this->_session->keepFlashdata(SESSION_NAMES['RETURN_URL']); - return view($this->_viewPath . '/insert', ['viewDatas' => $this->_viewDatas]); - } catch (\Exception $e) { - log_message("error", $e->getMessage()); - return redirect()->to($this->_session->getFlashdata(SESSION_NAMES['RETURN_URL']) ?: "/")->with('return_message', $e->getMessage()); - } - } - - //PG사 카드결제처리 - protected function insert_process() - { - //결제후 정보저장 + //PG사 결제후 정보저장 $adapter = new PaymentAdapter(); $adapter->setDatas($this->_viewDatas['fieldDatas']); $response = $adapter->execute(); - echo var_export($response, true); - $entity = $this->getPaymentModel()->create($response); - //아래는 Order Complete처리용 - parent::insert_process(); - return $entity; - } - //카드결제 - public function insert() - { - $msg = ""; - try { - $this->_viewDatas = $this->init(__FUNCTION__); - $this->insert_validate(); - $entity = $this->insert_process(); - $msg = "{$this->_viewDatas['title']}에서 {$entity->getTitle()}의 " . __FUNCTION__ . " 완료하였습니다."; - return redirect()->to($this->_session->getFlashdata(SESSION_NAMES['RETURN_URL']) ?: "/"); - } catch (\Exception $e) { - $msg = "{$this->_viewDatas['title']}에서 " . __FUNCTION__ . " 실패하였습니다.\n" . $e->getMessage(); - log_message("error", $e->getMessage()); - $this->_session->keepFlashdata(SESSION_NAMES['RETURN_URL']); - return redirect()->back()->withInput(); - } finally { - $this->_session->setFlashdata("return_message", $msg); + //결과저장용 + $responses = array("status" => $this->_viewDatas['className']); + foreach ($response as $key => $value) { + array_push($responses, "{$key}:{$value}"); } + foreach ($this->_viewDatas['fieldDatas'] as $key => $value) { + array_push($responses, "{$key}:{$value}"); + } + $this->_viewDatas['fieldDatas'] = $responses; + return parent::update_process($entity); } } diff --git a/app/Controllers/Ecommerce/Payment/DepositController.php b/app/Controllers/Ecommerce/Payment/DepositController.php index a005c03..8b4ee3c 100644 --- a/app/Controllers/Ecommerce/Payment/DepositController.php +++ b/app/Controllers/Ecommerce/Payment/DepositController.php @@ -5,11 +5,13 @@ namespace App\Controllers\Ecommerce\Payment; use CodeIgniter\HTTP\RequestInterface; use CodeIgniter\HTTP\ResponseInterface; use Psr\Log\LoggerInterface; +use App\Models\OrderModel; class DepositController extends PaymentController { public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger) { + $this->_model = new OrderModel(); $this->_viewDatas['className'] = 'Deposit'; parent::initController($request, $response, $logger); $this->_viewPath .= strtolower($this->_viewDatas['className']); @@ -53,59 +55,27 @@ class DepositController extends PaymentController return parent::getFieldBatchFilters(); } - //무통장입금결제Form //Insert관련 - protected function insert_form_process() + //무통장입금결제Form + protected function update_form_process($entity) { - parent::insert_form_process(); + parent::update_form_process($entity); $this->_viewDatas['bank'] = [ "name" => getenv("payment.deposit.bank.name") ?: "은행명", "account" => getenv("payment.deposit.bank.account") ?: "계좌번호", "holder" => getenv("payment.deposit.bank.holder") ?: "예금주" ]; - $this->_viewDatas['forms'] = ['attributes' => ['method' => "post",], 'hiddens' => ['order_uid' => $this->_viewDatas['order']->getPrimaryKey()]]; - } - public function insert_form() - { - try { - $uid = $this->request->getVar('order_uid') ?: throw new \Exception("주문번호가 지정되지 않았습니다."); - $this->_viewDatas = $this->init(__FUNCTION__); - $this->_viewDatas['order'] = $this->getOrderModel()->getEntity([$this->getOrderModel()->getPrimaryKey() => $uid]); - $this->insert_form_process(); - helper(['form']); - $this->_session->keepFlashdata(SESSION_NAMES['RETURN_URL']); - return view($this->_viewPath . '/insert', ['viewDatas' => $this->_viewDatas]); - } catch (\Exception $e) { - log_message("error", $e->getMessage()); - return redirect()->to($this->_session->getFlashdata(SESSION_NAMES['RETURN_URL']) ?: "/")->with('return_message', $e->getMessage()); - } } - protected function insert_process() + //무통장입금결제처리 + protected function update_process($entity) { - //결제후 정보저장 - $entity = $this->getPaymentModel()->create($this->_viewDatas['fieldDatas']); - //아래는 Order Complete처리용 - parent::insert_process(); - return $entity; - } - //카드결제 - public function insert() - { - $msg = ""; - try { - $this->_viewDatas = $this->init(__FUNCTION__); - $this->insert_validate(); - $entity = $this->insert_process(); - $msg = "{$this->_viewDatas['title']}에서 {$entity->getTitle()}의 " . __FUNCTION__ . " 완료하였습니다."; - return redirect()->to($this->_session->getFlashdata(SESSION_NAMES['RETURN_URL']) ?: "/"); - } catch (\Exception $e) { - $msg = "{$this->_viewDatas['title']}에서 " . __FUNCTION__ . " 실패하였습니다.\n" . $e->getMessage(); - log_message("error", $e->getMessage()); - $this->_session->keepFlashdata(SESSION_NAMES['RETURN_URL']); - return redirect()->back()->withInput(); - } finally { - $this->_session->setFlashdata("return_message", $msg); + //결과저장용 + $responses = array("status" => $this->_viewDatas['className']); + foreach ($this->_viewDatas['fieldDatas'] as $key => $value) { + array_push($responses, "{$key}:{$value}"); } + $this->_viewDatas['fieldDatas'] = $responses; + return parent::update_process($entity); } } diff --git a/app/Controllers/Ecommerce/Payment/PaymentController.php b/app/Controllers/Ecommerce/Payment/PaymentController.php index a0fdf0c..1fcbdc6 100644 --- a/app/Controllers/Ecommerce/Payment/PaymentController.php +++ b/app/Controllers/Ecommerce/Payment/PaymentController.php @@ -12,7 +12,6 @@ use Psr\Log\LoggerInterface; abstract class PaymentController extends EcommerceController { - private $_paymentModel = null; private $_categoryModel = null; protected $_category = null; public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger) @@ -27,24 +26,45 @@ abstract class PaymentController extends EcommerceController $this->_viewDatas['parent_category'] = $this->getCategoryModel()->getEntity([$this->getCategoryModel()->getPrimaryKey() => $this->_viewDatas['category']->getHierarchy_ParentUID()]); } - final protected function getPaymentModel() - { - return $this->_paymentModel = $this->_paymentModel ?: new PaymentModel(); - } final protected function getCategoryModel() { return $this->_categoryModel = $this->_categoryModel ?: new CategoryModel(); } - //insert관련 - protected function insert_form_process() + //Update관련 + public function update_form($uid) { - parent::insert_form_process(); - $this->_viewDatas['user'] = $this->getUserModel()->getEntity([$this->getUserModel()->getPrimaryKey() => $this->_viewDatas['auth'][AUTH_FIELDS['ID']]]); + try { + $this->_viewDatas = $this->init(__FUNCTION__); + $entity = $this->getOrderModel()->getEntity([$this->getOrderModel()->getPrimaryKey() => $uid]); + $this->_viewDatas['entity'] = $this->update_form_process($entity); + helper(['form']); + $this->_session->keepFlashdata(SESSION_NAMES['RETURN_URL']); + return view($this->_viewPath . '/update', ['viewDatas' => $this->_viewDatas]); + } catch (\Exception $e) { + log_message("error", $e->getMessage()); + return redirect()->to($this->_session->getFlashdata(SESSION_NAMES['RETURN_URL']) ?: "/")->with('return_message', $e->getMessage()); + } } - protected function insert_process() + + //결제처리 + public function update($uid) { - //Order 테이블에 결제완료 처리 - $this->getOrderModel()->paymentCompleted(); + $msg = ""; + try { + $this->_viewDatas = $this->init(__FUNCTION__); + $entity = $this->getOrderModel()->getEntity([$this->getOrderModel()->getPrimaryKey() => $uid]); + $this->update_validate($entity); + $entity = $this->update_process($entity); + $msg = "{$this->_viewDatas['title']}에서 {$entity->getTitle()}의 결제가 완료하였습니다."; + return redirect()->to($this->_session->getFlashdata(SESSION_NAMES['RETURN_URL']) ?: "/"); + } catch (\Exception $e) { + $msg = "{$this->_viewDatas['title']}에서 결제를 실패하였습니다.\n" . $e->getMessage(); + log_message("error", $e->getMessage()); + $this->_session->keepFlashdata(SESSION_NAMES['RETURN_URL']); + return redirect()->back()->withInput(); + } finally { + $this->_session->setFlashdata("return_message", $msg); + } } } diff --git a/app/Controllers/Front/PaymentController.php b/app/Controllers/Front/PaymentController.php deleted file mode 100644 index 7aa634f..0000000 --- a/app/Controllers/Front/PaymentController.php +++ /dev/null @@ -1,49 +0,0 @@ -_model = new PaymentModel(); - $this->_viewDatas['className'] = 'Payment'; - parent::initController($request, $response, $logger); - $this->_viewPath .= strtolower($this->_viewDatas['className']); - //Default 회원정보 Category - $this->_category = DEFAULTS['PAYMENT_CATEGORY']; - $this->isRole('index'); - } - - final public function getFields(string $action = ""): array - { - switch ($action) { - case 'insert': - return ["TID", "ORDERNO", "AMOUNT", "QUOTA", "ACCEPTNO", "ACCEPTDATE", "RESULTCODE", "created_at"]; - break; - case "index": - case "excel": - case "view": - return ["ORDERNO", "AMOUNT", "QUOTA", "ACCEPTNO", "ACCEPTDATE", "RESULTCODE", "created_at"]; - break; - default: - return []; - break; - } - } - final public function getFieldFilters(): array - { - return []; - } - final public function getFieldBatchFilters(): array - { - return []; - } - - //추가기능 -} diff --git a/app/Database/shoppingmall.sql b/app/Database/shoppingmall.sql index 520cb75..5142cf0 100644 --- a/app/Database/shoppingmall.sql +++ b/app/Database/shoppingmall.sql @@ -145,36 +145,13 @@ CREATE TABLE shoppingmall.tw_order ( cost int(10) UNSIGNED NOT NULL COMMENT '구매원가', sale int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '할인가', price int(10) UNSIGNED NOT NULL COMMENT '결제액', + response text NULL COMMENT '결제처리결과', quantity varchar(255) NOT NULL COMMENT '수량', - status varchar(10) NOT NULL DEFAULT 'use' COMMENT 'use: 결제하기, unuse: 주문취소, paid:결제완료 등등', + status varchar(10) NOT NULL DEFAULT 'use' COMMENT 'use: 결제하기, unuse: 주문취소, deposit:무통장입금, paid:결제완료 등등', updated_at timestamp NULL DEFAULT NULL, created_at timestamp NOT NULL DEFAULT current_timestamp(), deleted_at timestamp NULL DEFAULT NULL, PRIMARY KEY (uid), CONSTRAINT FOREIGN KEY (product_uid) REFERENCES tw_product (uid), CONSTRAINT FOREIGN KEY (user_uid) REFERENCES tw_user (uid) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT ='Order 정보'; - -DROP TABLE IF EXISTS shoppingmall.tw_payment; -CREATE TABLE shoppingmall.tw_payment ( - uid int(10) UNSIGNED NOT NULL AUTO_INCREMENT, - TID varchar(20) NOT NULL COMMENT 'PG사 결제 거래고유번호 (전표출력 및 결제취소에 사용됩니다)', - ORDERNO varchar(50) NOT NULL COMMENT '주문번호', - AMOUNT int(10) UNSIGNED NOT NULL COMMENT '결제 된 금액', - QUOTA varchar(2) NOT NULL COMMENT '카드 할부결제시 할부기간 (00:일시불, 01:1개월)', - ACCEPTNO varchar(10) NOT NULL COMMENT '승인번호', - ACCEPTDATE varchar(20) NOT NULL COMMENT '승인일시', - RESULTCODE varchar(4) NOT NULL COMMENT '결제결과코드', - RESULTMSG varchar(100) NOT NULL COMMENT '결제결과메세지', - ETC1 varchar(100) NULL COMMENT '결제 요청시 입력한 값', - ETC2 varchar(100) NULL COMMENT '결제 요청시 입력한 값', - ETC3 varchar(100) NULL COMMENT '결제 요청시 입력한 값', - ETC4 varchar(100) NULL COMMENT '결제 요청시 입력한 값', - ETC5 varchar(100) NULL COMMENT '결제 요청시 입력한 값', - updated_at timestamp NULL DEFAULT NULL, - created_at timestamp NOT NULL DEFAULT current_timestamp(), - deleted_at timestamp NULL DEFAULT NULL, - PRIMARY KEY (uid), - UNIQUE KEY (tid), - CONSTRAINT FOREIGN KEY (orderno) REFERENCES tw_order (uid) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT ='Payment 정보'; \ No newline at end of file +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT ='Order 정보'; \ No newline at end of file diff --git a/app/Entities/PaymentEntity.php b/app/Entities/PaymentEntity.php deleted file mode 100644 index 17691b3..0000000 --- a/app/Entities/PaymentEntity.php +++ /dev/null @@ -1,19 +0,0 @@ -attributes['buyername']; - } - //추가기능 - -} diff --git a/app/Helpers/Payment_helper.php b/app/Helpers/Payment_helper.php deleted file mode 100644 index f435adc..0000000 --- a/app/Helpers/Payment_helper.php +++ /dev/null @@ -1,191 +0,0 @@ -%s", implode(" ", $attributes), lang("{$viewDatas['className']}.label.{$field}")); - break; - } -} -//header.php에서 getFieldForm_Helper사용 -function getFieldForm_PaymentHelper($field, $value, array $viewDatas, array $attributes = array()) -{ - $value = $value ?: DEFAULTS['EMPTY']; - switch ($field) { - case 'product_uid': - case 'user_uid': - $viewDatas['fieldFormOptions'][$field] = [DEFAULTS['EMPTY'] => lang("{$viewDatas['className']}.label.{$field}") . " 선택", ...$viewDatas['fieldFormOptions'][$field]]; - return form_dropdown($field, $viewDatas['fieldFormOptions'][$field], $value, [...$attributes, 'class' => "select-field"]); - // // return form_multiselect($field, $fieldFormOptions[$field], is_array($value) ? [...$value] : [$value], [...$attributes]); - // foreach ($viewDatas['fieldFormOptions'][$field] as $key => $label) { - // $checkboxs[] = form_checkbox("{$field}[]", $key, in_array($key, explode(DEFAULTS["DELIMITER_ROLE"], $value))) . $label; - // } - // return implode(" ", $checkboxs); - break; - case 'title': - case 'name': - return form_input($field, $value, ["placeholder" => "예)", "style" => "width:60%; ::placeholder{ color:silver; opacity: 1; }"]); - break; - case 'passwd': - return sprintf( - "%s %s %s", - form_password($field, DEFAULTS['EMPTY']), - lang("{$viewDatas['className']}.label.confirmpassword"), - form_password('confirmpassword', DEFAULTS['EMPTY']), - ); - break; - case 'content': - case 'head': - case 'tail': - return form_textarea($field, html_entity_decode($value), ['class' => 'editor', 'rows' => '20', 'cols' => '100']); - break; - case 'upload_file': - case 'board_file': - return form_upload($field); - break; - case 'view_cnt': - return form_input($field, $value, ['type' => 'number']); - break; - case "status": - $viewDatas['fieldFormOptions'][$field] = [DEFAULTS['EMPTY'] => lang("{$viewDatas['className']}.label.{$field}") . " 선택", ...$viewDatas['fieldFormOptions'][$field]]; - return form_dropdown($field, $viewDatas['fieldFormOptions'][$field], $value, $attributes); - break; - case 'updated_at': - case 'created_at': - return form_input($field, $value, ['class' => 'calender']); - break; - case 'card_quota': - $viewDatas['fieldFormOptions'][$field] = [DEFAULTS['EMPTY'] => lang("{$viewDatas['className']}.label.{$field}") . " 선택", ...$viewDatas['fieldFormOptions'][$field]]; - return form_dropdown($field, $viewDatas['fieldFormOptions'][$field], $value, $attributes); - break; - case 'card_number': - return sprintf( - "%s-%s-%s-%s", - form_input("{$field}[]", DEFAULTS['EMPTY'], ['type' => "number", 'maxlength' => 4, 'size' => 4]), - form_input("{$field}[]", DEFAULTS['EMPTY'], ['type' => "number", 'maxlength' => 4, 'size' => 4]), - form_input("{$field}[]", DEFAULTS['EMPTY'], ['type' => "number", 'maxlength' => 4, 'size' => 4]), - form_input("{$field}[]", DEFAULTS['EMPTY'], ['type' => "number", 'maxlength' => 4, 'size' => 4]) - ); - break; - case 'card_expiration': - $months = []; - for ($i = 1; $i <= 12; $i++) { - $months[$i] = "{$i}월"; - } - $start = date('Y'); - $end = date('Y', strtotime(date("Y") . ' + 10 year')); - $years = []; - for ($i = $start; $i <= $end; $i++) { - $years[$i] = "{$i}년"; - } - return sprintf( - "%s월 %s년", - form_dropdown("{$field}[]", $months, DEFAULTS['EMPTY']), - form_dropdown("{$field}[]", $years, DEFAULTS['EMPTY']), - ); - break; - case 'card_email': - return form_input($field, $viewDatas['user']->email); - break; - case 'card_mobile': - return form_input($field, $viewDatas['user']->mobile); - break; - default: - return form_input($field, $value); - break; - } -} // - -function getFieldView_PaymentHelper($field, $entity, array $viewDatas) -{ - $value = $entity->$field ?: DEFAULTS['EMPTY']; - switch ($field) { - case 'cost': - case 'price': - case 'sale': - return number_format(!$value ? 0 : $value) . "원"; - break; - case 'stock': - case 'view_cnt': - return number_format(!$value ? 0 : $value); - break; - case 'content': - return html_entity_decode($value); - break; - case 'updated_at': - case 'created_at': - return $value ? str_split($value, 10)[0] : ""; - break; - default: - return in_array($field, $viewDatas['fieldFilters']) && $value ? $viewDatas['fieldFormOptions'][$field][$value] : $value; - break; - } -} // - -function getFieldFilter_PaymentHelper($field, $value, array $viewDatas) -{ - $viewDatas['fieldFormOptions'][$field] = [DEFAULTS['EMPTY'] => lang("{$viewDatas['className']}.label.{$field}") . " 선택", ...$viewDatas['fieldFormOptions'][$field]]; - return form_dropdown($field, $viewDatas['fieldFormOptions'][$field], $value, ['class' => "select-field"]); -} // - -function getFieldIndex_Column_PaymentHelper($field, array $viewDatas) -{ - $label = lang("{$viewDatas['className']}.label.{$field}"); - if ($field == $viewDatas['order_field']) { - $label .= $viewDatas['order_value'] == 'ASC' ? ICONS['UP'] : ICONS['DOWN']; - } - $value = $viewDatas['order_value'] == 'DESC' ? "ASC" : "DESC"; - $viewDatas['uri']->addQuery('order_field', $field); - $viewDatas['uri']->addQuery('order_value', $value); - $columnData = anchor($viewDatas['uri'], $label); - switch ($field) { - default: - return sprintf("%s", $columnData); - break; - } -} // - -//Front용 -function getFieldIndex_Row_PaymentHelper($field, $entity, array $viewDatas): string -{ - $value = $entity->$field ?: DEFAULTS['EMPTY']; - switch ($field) { - case 'title': - case 'name': - return sprintf( - "%s", - anchor( - current_url() . '/view/' . $entity->getPrimaryKey(), - $value, - ["target" => "_self"] - ) - ); - break; - default: - return sprintf("%s", getFieldView_PaymentHelper($field, $entity, $viewDatas)); - break; - } -} // -//Admin용 -function getFieldIndex_Row_PaymentHelper_Admin($field, $entity, array $viewDatas): string -{ - switch ($field) { - default: - if (in_array($field, $viewDatas['fieldFilters'])) { - $attributes["onChange"] = sprintf( - 'location.href="%s/toggle/%s/%s?%s="+this.options[this.selectedIndex].value', - current_url(), - $entity->getPrimaryKey(), - $field, - $field - ); - return sprintf("%s", getFieldForm_PaymentHelper($field, $entity->$field, $viewDatas, $attributes)); - } - return getFieldIndex_Row_PaymentHelper($field, $entity, $viewDatas); - break; - } -} // \ No newline at end of file diff --git a/app/Language/ko/Order.php b/app/Language/ko/Order.php index dcb64e1..60fe04b 100644 --- a/app/Language/ko/Order.php +++ b/app/Language/ko/Order.php @@ -18,7 +18,7 @@ return [ "STATUS" => [ "use" => "장바구니", "unuse" => "주문취소", - "confirm" => "주문완료", - "paid" => "결제완료" + "Deposit" => "무통장입금", + "Card" => "카드결제" ] ]; diff --git a/app/Language/ko/Payment.php b/app/Language/ko/Payment.php deleted file mode 100644 index f2939de..0000000 --- a/app/Language/ko/Payment.php +++ /dev/null @@ -1,22 +0,0 @@ - "쇼핑몰정보", - 'label' => [ - 'uid' => "결제ID", - 'TID' => "PG거래번호", - 'ORDERNO' => "주문번호", - 'AMOUNT' => "결제금액", - 'QUOTA' => "카드할부", - 'ACCEPTNO' => "승인번호", - 'ACCEPTDATE' => "승인일시", - 'RESULTCODE' => "결과코드", - 'RESULTMSG' => "결과메세지", - 'ETC1' => "결제입력값", - 'ETC2' => "결제입력값", - 'ETC3' => "결제입력값", - 'ETC4' => "결제입력값", - 'ETC5' => "결제입력값", - 'updated_at' => "수정일", - 'created_at' => "작성일", - ], -]; diff --git a/app/Models/PaymentModel.php b/app/Models/PaymentModel.php deleted file mode 100644 index f965567..0000000 --- a/app/Models/PaymentModel.php +++ /dev/null @@ -1,106 +0,0 @@ -allowedFields = [...$this->allowedFields, 'product_uid', "user_uid", "name", "cost", "sale", "quantity", "price", "status"]; - $this->validationRules = [...$this->validationRules, ...$this->getFieldRules($this->allowedFields),]; - } - final public function getTitleField(): string - { - return 'name'; - } - public function getFieldRule(string $field, array $rules, string $action = ""): array - { - switch ($field) { - case 'product_uid': - $rules[$field] = "required|regex_match[/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/]"; - break; - case $this->getTitleField(): - $rules[$field] = "required|trim|string"; - break; - case 'cost': - case 'quantity': - case 'price': - $rules[$field] = "required|numeric"; - break; - case 'sale': - $rules[$field] = "if_exist|numeric"; - break; - default: - $rules = parent::getFieldRule($field, $rules, $action); - break; - } - return $rules; - } - //Field별 Form Option용 - public function getFieldFormOption(string $field): array - { - switch ($field) { - case 'product_uid': - if (is_null($this->_product_options)) { - $productModel = new productModel(); - $this->_product_options = $productModel->getOptions(); - } - $options = $this->_product_options; - break; - default: - return parent::getFieldFormOption($field); - break; - } - if (!is_array($options)) { - throw new \Exception(__FUNCTION__ . "에서 {$this->getClassName()}의 Field:{$field}의 FormOptionData가 array가 아닙니다.\n" . var_export($options, true)); - } - return $options; - } - public function getEntity($conditions): PaymentEntity - { - return parent::getEntity($conditions); - } - public function create(array $formDatas): PaymentEntity - { - return $this->create_process(new PaymentEntity(), $formDatas); - } - public function modify(PaymentEntity $entity, array $formDatas): PaymentEntity - { - return $this->modify_process($entity, $formDatas); - } - //Index관련 - public function setIndexWordFilter(string $word) - { - if ($word !== DEFAULTS['EMPTY']) { - parent::setIndexWordFilter($word); - $this->orLike($this->getTitleField(), $word, "both"); - } - } - - //장바구니에 넣기 - public function addCart(array $formDatas): PaymentEntity - { - $orderFormDatas = []; - $orderFormDatas[$this->getTitleField()] = $formDatas[$this->getTitleField()]; - $orderFormDatas['product_uid'] = $formDatas['product_uid']; - $orderFormDatas['cost'] = $formDatas['price']; - $orderFormDatas['sale'] = 0; - $orderFormDatas['quantity'] = $formDatas['quantity']; - $orderFormDatas['price'] = ($orderFormDatas['cost'] - $orderFormDatas['sale']) * $orderFormDatas['quantity']; - // echo var_export($orderFormDatas); - // exit; - return $this->create_process(new PaymentEntity(), $orderFormDatas); - } - //장바구니에 빼기 - public function cancelCart(PaymentEntity $entity) - { - return $this->delete($entity->getPrimaryKey()); - } -} diff --git a/app/Views/admin/payment/index.php b/app/Views/admin/payment/index.php deleted file mode 100644 index 4f56a59..0000000 --- a/app/Views/admin/payment/index.php +++ /dev/null @@ -1,32 +0,0 @@ -extend('layouts/admin') ?> -section('content') ?> - -
-
- include('templates/admin/index_head') ?> -
- - - - - - - - - - - status != DEFAULTS['STATUS'] ? 'class="table-danger" rowcolor="red"' : 'rowcolor="red"' ?> onClick="indexRowCheckBoxToggle(this)"> - - - - - - - - -
번호
- -
-
-
-endSection() ?> \ No newline at end of file diff --git a/app/Views/ecommerce/payment/card/insert.php b/app/Views/ecommerce/payment/card/update.php similarity index 83% rename from app/Views/ecommerce/payment/card/insert.php rename to app/Views/ecommerce/payment/card/update.php index 87f77da..fcbc51d 100644 --- a/app/Views/ecommerce/payment/card/insert.php +++ b/app/Views/ecommerce/payment/card/update.php @@ -1,7 +1,7 @@ extend('layouts/front') ?> section('content') ?> -
+
>
head) ?>
@@ -15,9 +15,9 @@ - + diff --git a/app/Views/ecommerce/payment/deposit/insert.php b/app/Views/ecommerce/payment/deposit/update.php similarity index 100% rename from app/Views/ecommerce/payment/deposit/insert.php rename to app/Views/ecommerce/payment/deposit/update.php diff --git a/app/Views/front/payment/index.php b/app/Views/front/payment/index.php deleted file mode 100644 index 9b36cfc..0000000 --- a/app/Views/front/payment/index.php +++ /dev/null @@ -1,34 +0,0 @@ -extend('layouts/front') ?> -section('content') ?> - -
-
head) ?>
-
- include('templates/front/index_head') ?> -
-
- + $field ?: DEFAULTS['EMPTY']), $viewDatas) ?>
- - - - - - - - - - status != DEFAULTS['STATUS'] ? 'class="table-danger" rowcolor="red"' : 'rowcolor="red"' ?> onClick="indexRowCheckBoxToggle(this)"> - - - - - - - - -
번호
- -
-
-
tail) ?>
-
-endSection() ?> \ No newline at end of file diff --git a/app/Views/layouts/front/left_menu/leftmenu_11.php b/app/Views/layouts/front/left_menu/leftmenu_11.php index b3d4bf0..bfe7343 100644 --- a/app/Views/layouts/front/left_menu/leftmenu_11.php +++ b/app/Views/layouts/front/left_menu/leftmenu_11.php @@ -6,9 +6,6 @@ - diff --git a/app/Views/layouts/front/left_menu/leftmenu_22.php b/app/Views/layouts/front/left_menu/leftmenu_22.php index 0473319..23ef48a 100644 --- a/app/Views/layouts/front/left_menu/leftmenu_22.php +++ b/app/Views/layouts/front/left_menu/leftmenu_22.php @@ -1,4 +1,4 @@ - +
-
개인정보
@@ -6,11 +6,8 @@ - - + diff --git a/app/Views/layouts/front/left_menu/leftmenu_3.php b/app/Views/layouts/front/left_menu/leftmenu_3.php index a2f2ad3..bc1284b 100644 --- a/app/Views/layouts/front/left_menu/leftmenu_3.php +++ b/app/Views/layouts/front/left_menu/leftmenu_3.php @@ -1,4 +1,4 @@ - +
-
Support
@@ -10,4 +10,4 @@ 자료실
- + diff --git a/app/Views/layouts/front/left_menu/leftmenu_4.php b/app/Views/layouts/front/left_menu/leftmenu_4.php index 2d6e199..30ca7f8 100644 --- a/app/Views/layouts/front/left_menu/leftmenu_4.php +++ b/app/Views/layouts/front/left_menu/leftmenu_4.php @@ -1,4 +1,4 @@ - +
-
Support
@@ -10,4 +10,4 @@ 자료실
- + diff --git a/app/Views/layouts/front/left_menu/leftmenu_5.php b/app/Views/layouts/front/left_menu/leftmenu_5.php index 9b89af7..c51e5c0 100644 --- a/app/Views/layouts/front/left_menu/leftmenu_5.php +++ b/app/Views/layouts/front/left_menu/leftmenu_5.php @@ -1,4 +1,4 @@ - +
-
네트워크
@@ -10,4 +10,4 @@ 판매
- + diff --git a/app/Views/layouts/front/left_menu/leftmenu_6.php b/app/Views/layouts/front/left_menu/leftmenu_6.php index 88f252e..8fd3f48 100644 --- a/app/Views/layouts/front/left_menu/leftmenu_6.php +++ b/app/Views/layouts/front/left_menu/leftmenu_6.php @@ -1,4 +1,4 @@ - +
-
네트워크
@@ -10,4 +10,4 @@ 판매
- + diff --git a/app/Views/layouts/front/left_menu/leftmenu_8.php b/app/Views/layouts/front/left_menu/leftmenu_8.php index 118f558..1f955ee 100644 --- a/app/Views/layouts/front/left_menu/leftmenu_8.php +++ b/app/Views/layouts/front/left_menu/leftmenu_8.php @@ -1,4 +1,4 @@ - +
-
서버
@@ -10,4 +10,4 @@ 판매
- + diff --git a/app/Views/layouts/front/left_menu/leftmenu_9.php b/app/Views/layouts/front/left_menu/leftmenu_9.php index aa66289..0261bb8 100644 --- a/app/Views/layouts/front/left_menu/leftmenu_9.php +++ b/app/Views/layouts/front/left_menu/leftmenu_9.php @@ -1,4 +1,4 @@ - +
-
서버
@@ -10,4 +10,4 @@ 판매
- +