shoppingmallv2 init...

This commit is contained in:
최준흠git config git config --helpgit config --global user.name 최준흠 2023-08-12 14:31:20 +09:00
parent 71deae7b31
commit 6934f5ff83
14 changed files with 93 additions and 50 deletions

View File

@ -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",

View File

@ -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에 선언한 이름이어야 함

View File

@ -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 [];

View File

@ -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()
{

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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__);

View File

@ -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(
"<td nowrap><div class=\"payment\">%s</div><div class=\"payment\">%s</div></td>",
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(
"<td>%s</td>",
anchor(
current_url() . '/view/' . $entity->getPrimaryKey(),
$value,
["target" => "_self"]
)
);
break;
default:
if (in_array($field, $viewDatas['fieldFilters'])) {
$attributes["onChange"] = sprintf(

View File

@ -11,6 +11,7 @@ return [
'sale' => "할인",
'quantity' => "수량",
'price' => "결제금액",
'response' => "결제처리결과",
'status' => "상태",
'updated_at' => "수정일",
'created_at' => "작성일"

View File

@ -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

View File

@ -1,23 +1,23 @@
<?= $this->extend('layouts/front') ?>
<?= $this->section('content') ?>
<link href="/css/front/content.css" media="screen" rel="stylesheet" type="text/css" />
<div id="content">>
<div id="content">
<div><?= html_entity_decode($viewDatas['category']->head) ?></div>
<?= form_open_multipart(current_url(), $viewDatas['forms']['attributes'], $viewDatas['forms']['hiddens']) ?>
<table class="form table table-bordered table-hover table-striped">
<tr>
<td class="label">상품명</td>
<td class="column"><?= $viewDatas['order']->getTitle() ?></td>
<td class="column"><?= $viewDatas['entity']->getTitle() ?></td>
</tr>
<tr>
<td class="label">결제금액</td>
<td class="column"><?= number_format($viewDatas['order']->price) ?>원</td>
<td class="column"><?= number_format($viewDatas['entity']->price) ?>원</td>
</tr>
<?php foreach ($viewDatas['fields'] as $field) : ?>
<tr>
<td class="label"><?= getFieldLabel_BoardHelper($field, $viewDatas) ?></td>
<td class="label"><?= getFieldLabel_CardHelper($field, $viewDatas) ?></td>
<td class="column">
<?= getFieldForm_BoardHelper($field, old($field, $viewDatas['entity']->$field ?: DEFAULTS['EMPTY']), $viewDatas) ?>
<?= getFieldForm_CardHelper($field, old($field, $viewDatas['entity']->$field ?: DEFAULTS['EMPTY']), $viewDatas) ?>
<?= validation_show_error($field); ?>
</td>
</tr>

View File

@ -7,11 +7,11 @@
<table class="form table table-bordered table-hover table-striped">
<tr>
<td class="label">상품명</td>
<td class="column"><?= $viewDatas['order']->getTitle() ?></td>
<td class="column"><?= $viewDatas['entity']->getTitle() ?></td>
</tr>
<tr>
<td class="label">결제금액</td>
<td class="column"><?= number_format($viewDatas['order']->price) ?>원</td>
<td class="column"><?= number_format($viewDatas['entity']->price) ?>원</td>
</tr>
<tr>
<td class="label">은행명</td>
@ -29,25 +29,16 @@
<tr>
<td class="label"><?= getFieldLabel_DepositHelper($field, $viewDatas) ?></td>
<td class="column">
<?= getFieldForm_DepositHelper($field, old($field, DEFAULTS['EMPTY']), $viewDatas) ?>
<?= getFieldForm_DepositHelper($field, old($field, $viewDatas['entity']->$field ?: DEFAULTS['EMPTY']), $viewDatas) ?>
<?= validation_show_error($field); ?>
</td>
</tr>
<?php endforeach; ?>
<tr>
<td colspan="2">
설명문......
설명문......
설명문......
설명문......
</td>
</tr>
<tr>
<td valign="bottom" colspan="2"><?= form_submit('', '무통장입금', array("class" => "btn btn-outline btn-primary")); ?></td>
</tr>
</table>
<?= form_close(); ?>
</table>
<div><?= html_entity_decode($viewDatas['category']->tail) ?></div>
</div>
<?= $this->endSection() ?>

View File

@ -11,7 +11,7 @@
<tr>
<th>번호</th>
<?php foreach ($viewDatas['fields'] as $field) : ?><?= getFieldIndex_Column_OrderHelper($field, $viewDatas) ?><?php endforeach ?>
<th>취소</th>
<th>작업</th>
</tr>
</thead>
<tbody>
@ -24,7 +24,11 @@
<?php foreach ($viewDatas['fields'] as $field) : ?>
<?= getFieldIndex_Row_OrderHelper($field, $entity, $viewDatas) ?>
<?php endforeach ?>
<td><?= anchor(current_url() . '/delete/' . $entity->getPrimaryKey(), ICONS['DELETE'], ["class" => "btn btn-sm btn-danger btn-circle", "target" => "_self"]) ?></td>
<td>
<?php if ($entity->status == DEFAULTS['STATUS']) : ?>
<?= anchor(current_url() . '/delete/' . $entity->getPrimaryKey(), ICONS['DELETE'], ["class" => "btn btn-sm btn-danger btn-circle", "target" => "_self"]) ?>
<?php endif ?>
</td>
</tr>
<?php $cnt++ ?>
<?php endforeach ?>

View File

@ -9,8 +9,5 @@
<div class="accordion-item">
<h2><a href="/admin/order"><?= CLASS_ICONS['ORDER'] ?></i>주문 관리</a></h2>
</div>
<div class="accordion-item">
<h2><a href="/admin/payment"><?= CLASS_ICONS['PAYMENT'] ?></i>결제 관리</a></h2>
</div>
</div>
</div>