From 6934f5ff83c05f72b96d3aecd50b898090d2720f 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 14:31:20 +0900 Subject: [PATCH] shoppingmallv2 init... --- app/Config/Constants.php | 1 - app/Config/Routes.php | 6 ++-- app/Controllers/Admin/OrderController.php | 2 +- app/Controllers/BaseController.php | 31 ++++++++++++++++--- .../Ecommerce/Payment/CardController.php | 24 ++++++++------ .../Ecommerce/Payment/DepositController.php | 11 ++++--- .../Ecommerce/Payment/PaymentController.php | 10 ++++-- app/Helpers/Order_helper.php | 19 ++++++++++-- app/Language/ko/Order.php | 1 + app/Models/OrderModel.php | 2 +- app/Views/ecommerce/payment/card/update.php | 10 +++--- .../ecommerce/payment/deposit/update.php | 15 ++------- app/Views/front/order/index.php | 8 +++-- .../layouts/admin/left_menu/shoppingmall.php | 3 -- 14 files changed, 93 insertions(+), 50 deletions(-) diff --git a/app/Config/Constants.php b/app/Config/Constants.php index b66405c..8a30781 100644 --- a/app/Config/Constants.php +++ b/app/Config/Constants.php @@ -257,7 +257,6 @@ define('AUDIOS', [ //Default값 정의 define('DEFAULTS', [ 'ORDER_CATEGORY' => getenv('default.order_category') ?: 11, - 'PAYMENT_CATEGORY' => getenv('default.payment_category') ?: 12, 'USER_CATEGORY' => getenv('default.user_category') ?: 22, 'ROLE' => getenv('default.role') ?: "guest", 'STATUS' => getenv('default.status') ?: "use", diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 39a2628..0d51d5f 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -42,9 +42,9 @@ $routes->group('ecommerce', ['namespace' => 'App\Controllers\Ecommerce'], functi $routes->get('cancelCart', 'CartController::delete'); $routes->group('payment', ['namespace' => 'App\Controllers\Ecommerce\Payment', 'filter' => 'authFilter:user'], function ($routes) { $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'); + $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/OrderController.php b/app/Controllers/Admin/OrderController.php index 1a8ff39..bdcac91 100644 --- a/app/Controllers/Admin/OrderController.php +++ b/app/Controllers/Admin/OrderController.php @@ -28,7 +28,7 @@ class OrderController extends AdminController return ["user_uid", "name", "cost", "sale", "quantity", "price", "status", "updated_at", "created_at"]; break; case "view": - return ["user_uid", 'product_uid', "name", "cost", "sale", "quantity", "price", "status", "updated_at", "created_at"]; + return ["user_uid", 'product_uid', "name", "cost", "sale", "quantity", "price", "status", "updated_at", "created_at", 'response']; break; default: return []; diff --git a/app/Controllers/BaseController.php b/app/Controllers/BaseController.php index 94e0611..c8174cc 100644 --- a/app/Controllers/BaseController.php +++ b/app/Controllers/BaseController.php @@ -313,7 +313,14 @@ abstract class BaseController extends Controller } protected function reply_validate($entity) { - $this->update_validate($entity); + if (!$this->validate($this->_viewDatas['fieldRules'])) { + throw new \Exception("{$this->_viewDatas['title']}의 검증 오류발생\n" . implode("\n", $this->validator->getErrors())); + } + //fieldData 적용 + $this->_viewDatas['fieldDatas'] = array(); + foreach ($this->_viewDatas['fields'] as $field) { + $this->_viewDatas['fieldDatas'] = $this->getFieldFormData($field, $entity); + } } protected function reply_process($entity) { @@ -342,11 +349,18 @@ abstract class BaseController extends Controller //Toggle 관련 protected function toggle_validate($entity) { - $this->update_validate($entity); + if (!$this->validate($this->_viewDatas['fieldRules'])) { + throw new \Exception("{$this->_viewDatas['title']}의 검증 오류발생\n" . implode("\n", $this->validator->getErrors())); + } + //fieldData 적용 + $this->_viewDatas['fieldDatas'] = array(); + foreach ($this->_viewDatas['fields'] as $field) { + $this->_viewDatas['fieldDatas'] = $this->getFieldFormData($field, $entity); + } } protected function toggle_process($entity) { - return $this->update_process($entity); + return $this->_model->modify($entity, $this->_viewDatas['fieldDatas']); } public function toggle($uid, string $field) { @@ -369,11 +383,18 @@ abstract class BaseController extends Controller //Batchjob 관련 protected function batchjob_validate($entity) { - $this->update_validate($entity); + if (!$this->validate($this->_viewDatas['fieldRules'])) { + throw new \Exception("{$this->_viewDatas['title']}의 검증 오류발생\n" . implode("\n", $this->validator->getErrors())); + } + //fieldData 적용 + $this->_viewDatas['fieldDatas'] = array(); + foreach ($this->_viewDatas['fields'] as $field) { + $this->_viewDatas['fieldDatas'] = $this->getFieldFormData($field, $entity); + } } protected function batchjob_process($entity) { - return $this->update_process($entity); + return $this->_model->modify($entity, $this->_viewDatas['fieldDatas']); } public function batchjob() { diff --git a/app/Controllers/Ecommerce/Payment/CardController.php b/app/Controllers/Ecommerce/Payment/CardController.php index b3aed3f..d072e71 100644 --- a/app/Controllers/Ecommerce/Payment/CardController.php +++ b/app/Controllers/Ecommerce/Payment/CardController.php @@ -21,7 +21,7 @@ class CardController extends PaymentController public function getFields(string $action = ""): array { switch ($action) { - case 'insert': + case 'update': return ["card_quota", "card_number", "card_expiration", "email", "mobile"]; break; default: @@ -82,21 +82,27 @@ class CardController extends PaymentController } //카드결제처리 - protected function update_process($entity) + private function pg_process(array $responses): array { //PG사 결제후 정보저장 $adapter = new PaymentAdapter(); $adapter->setDatas($this->_viewDatas['fieldDatas']); - $response = $adapter->execute(); + $result = $adapter->execute(); + foreach ($result as $key => $value) { + $responses['response'] .= "{$key}:{$value}\n"; + } + return $responses; + } + protected function update_process($entity) + { //결과저장용 - $responses = array("status" => $this->_viewDatas['className']); - foreach ($response as $key => $value) { - array_push($responses, "{$key}:{$value}"); - } + $responses = array("status" => $this->_viewDatas['className'], "response" => ""); foreach ($this->_viewDatas['fieldDatas'] as $key => $value) { - array_push($responses, "{$key}:{$value}"); + $responses['response'] .= "{$key}:{$value}\n"; } - $this->_viewDatas['fieldDatas'] = $responses; + $this->_viewDatas['fieldDatas'] = $this->pg_process($responses); + // echo var_export($this->_viewDatas['fieldDatas']); + // exit; return parent::update_process($entity); } } diff --git a/app/Controllers/Ecommerce/Payment/DepositController.php b/app/Controllers/Ecommerce/Payment/DepositController.php index 8b4ee3c..e20ad64 100644 --- a/app/Controllers/Ecommerce/Payment/DepositController.php +++ b/app/Controllers/Ecommerce/Payment/DepositController.php @@ -20,7 +20,7 @@ class DepositController extends PaymentController public function getFields(string $action = ""): array { switch ($action) { - case 'insert': + case 'update': return ["email", "mobile"]; break; default: @@ -59,23 +59,26 @@ class DepositController extends PaymentController //무통장입금결제Form protected function update_form_process($entity) { - parent::update_form_process($entity); + $entity = 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") ?: "예금주" ]; + return $entity; } //무통장입금결제처리 protected function update_process($entity) { //결과저장용 - $responses = array("status" => $this->_viewDatas['className']); + $responses = array("status" => $this->_viewDatas['className'], "response" => ""); foreach ($this->_viewDatas['fieldDatas'] as $key => $value) { - array_push($responses, "{$key}:{$value}"); + $responses['response'] .= "{$key}:{$value}\n"; } $this->_viewDatas['fieldDatas'] = $responses; + // echo var_export($this->_viewDatas['fieldDatas']); + // exit; return parent::update_process($entity); } } diff --git a/app/Controllers/Ecommerce/Payment/PaymentController.php b/app/Controllers/Ecommerce/Payment/PaymentController.php index 1fcbdc6..f20335e 100644 --- a/app/Controllers/Ecommerce/Payment/PaymentController.php +++ b/app/Controllers/Ecommerce/Payment/PaymentController.php @@ -20,7 +20,7 @@ abstract class PaymentController extends EcommerceController $this->_viewPath .= 'payment/'; //Default 회원정보 Category - $this->_category = DEFAULTS['PAYMENT_CATEGORY']; + $this->_category = DEFAULTS['ORDER_CATEGORY']; $this->_category ?: throw new \Exception("분류를 지정하지 않으셨습니다."); $this->_viewDatas['category'] = $this->getCategoryModel()->getEntity([$this->getCategoryModel()->getPrimaryKey() => $this->_category]); $this->_viewDatas['parent_category'] = $this->getCategoryModel()->getEntity([$this->getCategoryModel()->getPrimaryKey() => $this->_viewDatas['category']->getHierarchy_ParentUID()]); @@ -32,7 +32,13 @@ abstract class PaymentController extends EcommerceController } //Update관련 - public function update_form($uid) + protected function update_form_process($entity) + { + $entity = parent::update_form_process($entity); + $this->_viewDatas['user'] = $this->getUserModel()->getEntity([$this->getUserModel()->getPrimaryKey() => $this->_viewDatas['auth'][AUTH_FIELDS['ID']]]); + return $entity; + } + final public function update_form($uid) { try { $this->_viewDatas = $this->init(__FUNCTION__); diff --git a/app/Helpers/Order_helper.php b/app/Helpers/Order_helper.php index a4bda84..1136e39 100644 --- a/app/Helpers/Order_helper.php +++ b/app/Helpers/Order_helper.php @@ -77,6 +77,9 @@ function getFieldView_OrderHelper($field, $entity, array $viewDatas) case 'view_cnt': return number_format(!$value ? 0 : $value); break; + case 'response': + return nl2br($value); + break; case 'content': return html_entity_decode($value); break; @@ -134,12 +137,12 @@ function getFieldIndex_Row_OrderHelper($field, $entity, array $viewDatas): strin return sprintf( "
%s
%s
", anchor( - URLS['paymentCard'] . '?order_uid=' . $entity->getPrimaryKey(), + URLS['paymentCard'] . '/' . $entity->getPrimaryKey(), "카 드 결 제", ["class" => "btn btn-sm btn-primary btn-circle", "style" => "color:white", "target" => "_self"] ), anchor( - URLS['paymentDeposit'] . '?order_uid=' . $entity->getPrimaryKey(), + URLS['paymentDeposit'] . '/' . $entity->getPrimaryKey(), "무통장입금", ["class" => "btn btn-sm btn-info btn-circle", "style" => "color:white", "target" => "_self"] ) @@ -156,7 +159,19 @@ function getFieldIndex_Row_OrderHelper($field, $entity, array $viewDatas): strin //Admin용 function getFieldIndex_Row_OrderHelper_Admin($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: if (in_array($field, $viewDatas['fieldFilters'])) { $attributes["onChange"] = sprintf( diff --git a/app/Language/ko/Order.php b/app/Language/ko/Order.php index 60fe04b..9715feb 100644 --- a/app/Language/ko/Order.php +++ b/app/Language/ko/Order.php @@ -11,6 +11,7 @@ return [ 'sale' => "할인", 'quantity' => "수량", 'price' => "결제금액", + 'response' => "결제처리결과", 'status' => "상태", 'updated_at' => "수정일", 'created_at' => "작성일" diff --git a/app/Models/OrderModel.php b/app/Models/OrderModel.php index 4156cae..1a5c9bc 100644 --- a/app/Models/OrderModel.php +++ b/app/Models/OrderModel.php @@ -14,7 +14,7 @@ class OrderModel extends BaseModel public function __construct() { parent::__construct('Order'); - $this->allowedFields = [...$this->allowedFields, 'product_uid', "user_uid", "name", "cost", "sale", "quantity", "price", "status"]; + $this->allowedFields = [...$this->allowedFields, 'product_uid', "user_uid", "name", "cost", "sale", "quantity", "price", "response", "status"]; $this->validationRules = [...$this->validationRules, ...$this->getFieldRules($this->allowedFields),]; } final public function getTitleField(): string diff --git a/app/Views/ecommerce/payment/card/update.php b/app/Views/ecommerce/payment/card/update.php index fcbc51d..762c20e 100644 --- a/app/Views/ecommerce/payment/card/update.php +++ b/app/Views/ecommerce/payment/card/update.php @@ -1,23 +1,23 @@ extend('layouts/front') ?> section('content') ?> -
> +
head) ?>
- + - + - + diff --git a/app/Views/ecommerce/payment/deposit/update.php b/app/Views/ecommerce/payment/deposit/update.php index 4e9f2be..387788c 100644 --- a/app/Views/ecommerce/payment/deposit/update.php +++ b/app/Views/ecommerce/payment/deposit/update.php @@ -7,11 +7,11 @@
상품명getTitle() ?>getTitle() ?>
결제금액price) ?>원price) ?>원
- $field ?: DEFAULTS['EMPTY']), $viewDatas) ?> + $field ?: DEFAULTS['EMPTY']), $viewDatas) ?>
- + - + @@ -29,25 +29,16 @@ - - -
상품명getTitle() ?>getTitle() ?>
결제금액price) ?>원price) ?>원
은행명
- + $field ?: DEFAULTS['EMPTY']), $viewDatas) ?>
- 설명문...... - 설명문...... - 설명문...... - 설명문...... -
"btn btn-outline btn-primary")); ?>
-
tail) ?>
endSection() ?> \ No newline at end of file diff --git a/app/Views/front/order/index.php b/app/Views/front/order/index.php index abbf543..713fcd9 100644 --- a/app/Views/front/order/index.php +++ b/app/Views/front/order/index.php @@ -11,7 +11,7 @@ 번호 - 취소 + 작업 @@ -24,7 +24,11 @@ - getPrimaryKey(), ICONS['DELETE'], ["class" => "btn btn-sm btn-danger btn-circle", "target" => "_self"]) ?> + + status == DEFAULTS['STATUS']) : ?> + getPrimaryKey(), ICONS['DELETE'], ["class" => "btn btn-sm btn-danger btn-circle", "target" => "_self"]) ?> + + diff --git a/app/Views/layouts/admin/left_menu/shoppingmall.php b/app/Views/layouts/admin/left_menu/shoppingmall.php index b5a7ae2..210ebf9 100644 --- a/app/Views/layouts/admin/left_menu/shoppingmall.php +++ b/app/Views/layouts/admin/left_menu/shoppingmall.php @@ -9,8 +9,5 @@ -
\ No newline at end of file