diff --git a/app/Config/Constants.php b/app/Config/Constants.php index d837890..73ef039 100644 --- a/app/Config/Constants.php +++ b/app/Config/Constants.php @@ -154,8 +154,8 @@ define('URLS', [ 'LOGOUT' => '/front/user/logout', 'addCart' => '/ecommerce/addCart', 'cancelCart' => '/ecommerce/cancelCart', - 'paymentCard' => '/ecommerce/paymentCard', - 'depositPayment' => '/ecommerce/depositPayment', + 'paymentCard' => '/ecommerce/payment/card', + 'paymentDeposit' => '/ecommerce/payment/deposit', ]); //SESSION 관련 define('SESSION_NAMES', [ @@ -233,9 +233,12 @@ define('CLASS_ICONS', [ 'SITEPAGE' => '', 'CATEGORY' => '', 'PRODUCT' => '', - 'ORDER' => '', + 'ORDER' => '', 'PAYMENT' => '', 'ECOMMERCE' => '', + 'CART' => '', + 'CARD' => '', + 'DEPOSIT' => '', ]); define('AUDIOS', [ 'Alram_GetEmail' => '', diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 5d3cfd0..16326a4 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -37,13 +37,15 @@ $routes->addPlaceholder('uuid', '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4} $routes->get('/', 'Home::index'); $routes->group('cli', ['namespace' => 'App\Controllers\CLI'], function ($routes) { }); -$routes->group('ecommerce', ['namespace' => 'App\Controllers'], function ($routes) { +$routes->group('ecommerce', ['namespace' => 'App\Controllers\Ecommerce'], function ($routes) { $routes->post('addCart', 'CartController::insert'); $routes->get('cancelCart', 'CartController::delete'); - $routes->get('paymentCard/(:uuid)', 'EcommerceController::cardPayment_form/$1', ['filter' => 'authFilter:user']); - $routes->post('paymentCard/(:uuid)', 'EcommerceController::cardPayment/$1', ['filter' => 'authFilter:user']); - $routes->get('depositPayment/(:uuid)', 'EcommerceController::depositPayment_form/$1', ['filter' => 'authFilter:user']); - $routes->post('depositPayment/(:uuid)', 'EcommerceController::depositPayment/$1', ['filter' => 'authFilter:user']); + $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'); + }); }); // authGuard는 App\Config\Filters.php의 $aliases에 선언한 이름이어야 함 $routes->group('admin', ['namespace' => 'App\Controllers\Admin', 'filter' => 'authFilter:manager'], static function ($routes) { diff --git a/app/Controllers/Admin/BoardController.php b/app/Controllers/Admin/BoardController.php index 6375764..84bac6c 100644 --- a/app/Controllers/Admin/BoardController.php +++ b/app/Controllers/Admin/BoardController.php @@ -16,7 +16,7 @@ class BoardController extends AdminController $this->_model = new BoardModel(); $this->_viewDatas['className'] = 'Board'; parent::initController($request, $response, $logger); - $this->_viewPath .= strtolower($this->_viewDatas['className']); + $this->_viewPath .= strtolower($this->_viewDatas['className']);; } public function getFields(string $action = ""): array diff --git a/app/Controllers/BaseController.php b/app/Controllers/BaseController.php index c454101..94e0611 100644 --- a/app/Controllers/BaseController.php +++ b/app/Controllers/BaseController.php @@ -82,7 +82,7 @@ abstract class BaseController extends Controller { switch ($field) { default: - $rules[$field] = $this->_model->getFieldRule($field, $rules, $action); + $rules = $this->_model->getFieldRule($field, $rules, $action); break; } return $rules; diff --git a/app/Controllers/Ecommerce/CartController.php b/app/Controllers/Ecommerce/CartController.php index d26bbe4..b23562e 100644 --- a/app/Controllers/Ecommerce/CartController.php +++ b/app/Controllers/Ecommerce/CartController.php @@ -12,6 +12,7 @@ class CartController extends EcommerceController { $this->_viewDatas['className'] = 'Cart'; parent::initController($request, $response, $logger); + $this->_viewPath .= strtolower($this->_viewDatas['className']); } public function getFields(string $action = ""): array diff --git a/app/Controllers/Ecommerce/EcommerceController.php b/app/Controllers/Ecommerce/EcommerceController.php index 57fd95f..e03768e 100644 --- a/app/Controllers/Ecommerce/EcommerceController.php +++ b/app/Controllers/Ecommerce/EcommerceController.php @@ -22,7 +22,7 @@ abstract class EcommerceController extends BaseController { parent::initController($request, $response, $logger); $this->_session = \Config\Services::session(); - $this->_viewPath .= 'ecommerce/'; + $this->_viewPath = 'ecommerce/'; $this->_viewDatas['control'] = 'front'; $this->_viewDatas['layout'] = LAYOUTS['front']; } diff --git a/app/Controllers/Ecommerce/Payment/CardController.php b/app/Controllers/Ecommerce/Payment/CardController.php index 271661d..c327c25 100644 --- a/app/Controllers/Ecommerce/Payment/CardController.php +++ b/app/Controllers/Ecommerce/Payment/CardController.php @@ -12,6 +12,7 @@ class CardController extends PaymentController { public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger) { + $this->_viewDatas['className'] = 'Card'; parent::initController($request, $response, $logger); $this->_viewPath .= strtolower($this->_viewDatas['className']); } @@ -20,7 +21,7 @@ class CardController extends PaymentController { switch ($action) { case 'insert': - return ["order_uid", "card_quota", "card_number", "card_expiration", "email", "mobile"]; + return ["card_quota", "card_number", "card_expiration", "email", "mobile"]; break; default: return []; @@ -83,6 +84,7 @@ class CardController extends PaymentController //Insert관련 protected function insert_form_process() { + parent::insert_form_process(); $this->_viewDatas['forms'] = ['attributes' => ['method' => "post",], 'hiddens' => ['order_uid' => $this->_viewDatas['order']->getPrimaryKey()]]; } public function insert_form() @@ -91,7 +93,6 @@ class CardController extends PaymentController $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->_viewDatas['user'] = $this->getUserModel()->getEntity([$this->getUserModel()->getPrimaryKey() => $this->_viewDatas['auth'][AUTH_FIELDS['ID']]]); $this->insert_form_process(); helper(['form']); $this->_session->keepFlashdata(SESSION_NAMES['RETURN_URL']); diff --git a/app/Controllers/Ecommerce/Payment/DepositController.php b/app/Controllers/Ecommerce/Payment/DepositController.php index cfeff1c..a005c03 100644 --- a/app/Controllers/Ecommerce/Payment/DepositController.php +++ b/app/Controllers/Ecommerce/Payment/DepositController.php @@ -12,13 +12,14 @@ class DepositController extends PaymentController { $this->_viewDatas['className'] = 'Deposit'; parent::initController($request, $response, $logger); + $this->_viewPath .= strtolower($this->_viewDatas['className']); } public function getFields(string $action = ""): array { switch ($action) { case 'insert': - return ["order_uid", "email", "mobile"]; + return ["email", "mobile"]; break; default: return []; @@ -56,6 +57,7 @@ class DepositController extends PaymentController //Insert관련 protected function insert_form_process() { + parent::insert_form_process(); $this->_viewDatas['bank'] = [ "name" => getenv("payment.deposit.bank.name") ?: "은행명", "account" => getenv("payment.deposit.bank.account") ?: "계좌번호", @@ -69,8 +71,10 @@ class DepositController extends PaymentController $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 . '/deposit', ['viewDatas' => $this->_viewDatas]); + 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()); diff --git a/app/Controllers/Ecommerce/Payment/PaymentController.php b/app/Controllers/Ecommerce/Payment/PaymentController.php index df59392..a0fdf0c 100644 --- a/app/Controllers/Ecommerce/Payment/PaymentController.php +++ b/app/Controllers/Ecommerce/Payment/PaymentController.php @@ -36,6 +36,12 @@ abstract class PaymentController extends EcommerceController return $this->_categoryModel = $this->_categoryModel ?: new CategoryModel(); } + //insert관련 + protected function insert_form_process() + { + parent::insert_form_process(); + $this->_viewDatas['user'] = $this->getUserModel()->getEntity([$this->getUserModel()->getPrimaryKey() => $this->_viewDatas['auth'][AUTH_FIELDS['ID']]]); + } protected function insert_process() { //Order 테이블에 결제완료 처리 diff --git a/app/Controllers/Front/FrontController.php b/app/Controllers/Front/FrontController.php index 2f554b6..30af901 100644 --- a/app/Controllers/Front/FrontController.php +++ b/app/Controllers/Front/FrontController.php @@ -15,7 +15,7 @@ abstract class FrontController extends BaseController public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger) { parent::initController($request, $response, $logger); - $this->_viewPath .= 'front/'; + $this->_viewPath = 'front/'; $this->_viewDatas['control'] = 'front'; $this->_viewDatas['layout'] = LAYOUTS['front']; } diff --git a/app/Helpers/Ecommerce_helper.php b/app/Helpers/Card_helper.php similarity index 84% rename from app/Helpers/Ecommerce_helper.php rename to app/Helpers/Card_helper.php index 13f0856..5107270 100644 --- a/app/Helpers/Ecommerce_helper.php +++ b/app/Helpers/Card_helper.php @@ -1,5 +1,5 @@ $field ?: DEFAULTS['EMPTY']; switch ($field) { @@ -68,13 +68,13 @@ function getFieldView_EcommerceHelper($field, $entity, array $viewDatas) } } // -function getFieldFilter_EcommerceHelper($field, $value, array $viewDatas) +function getFieldFilter_CardHelper($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_EcommerceHelper($field, array $viewDatas) +function getFieldIndex_Column_CardHelper($field, array $viewDatas) { $label = lang("{$viewDatas['className']}.label.{$field}"); if ($field == $viewDatas['order_field']) { @@ -92,12 +92,12 @@ function getFieldIndex_Column_EcommerceHelper($field, array $viewDatas) } // //Front용 -function getFieldIndex_Row_EcommerceHelper($field, $entity, array $viewDatas): string +function getFieldIndex_Row_CardHelper($field, $entity, array $viewDatas): string { $value = $entity->$field ?: DEFAULTS['EMPTY']; switch ($field) { default: - return sprintf("