cfmgrv4 init...1
This commit is contained in:
parent
531d0d3384
commit
a2f641edd0
@ -30,7 +30,7 @@ class AccountController extends CloudflareController
|
||||
}
|
||||
protected function create_init(): void
|
||||
{
|
||||
$this->fields = [$this->getMyLibrary()->getMyStorage()::TITLE, 'apikey', 'status'];
|
||||
$this->fields = [$this->getMyLibrary()->getMyStorage()::TITLE, 'authkey', 'status'];
|
||||
$this->filter_fields = ['status'];
|
||||
$this->action = DB_ACTION['CREATE'];
|
||||
$this->getMyLibrary()->getMyStorage()->setAction($this->action);
|
||||
@ -56,8 +56,8 @@ class AccountController extends CloudflareController
|
||||
|
||||
protected function index_init(): void
|
||||
{
|
||||
$this->fields = [$this->getMyLibrary()->getMyStorage()::TITLE, 'apikey', 'status'];
|
||||
$this->filter_fields = ['status'];
|
||||
$this->fields = [$this->getMyLibrary()->getMyStorage()::TITLE, 'authkey', 'oldkey', 'title', 'type', 'status', 'updated_at', 'created_at'];
|
||||
$this->filter_fields = ['type', 'status'];
|
||||
$this->action = DB_ACTION['CREATE'];
|
||||
$this->getMyLibrary()->getMyStorage()->setAction($this->action);
|
||||
helper(['form']);
|
||||
@ -65,7 +65,7 @@ class AccountController extends CloudflareController
|
||||
}
|
||||
public function index(): string
|
||||
{
|
||||
$this->create_init();
|
||||
$this->index_init();
|
||||
return parent::list_process();
|
||||
}
|
||||
}
|
||||
|
||||
@ -240,17 +240,22 @@ abstract class MVController extends CommonController
|
||||
protected function list_pagination($pager_group = 'default', int $segment = 0, $template = 'bootstrap_full'): string
|
||||
{
|
||||
//Page, Per_page필요부분
|
||||
$this->page = (int)$this->request->getVar('page') ?: 1;
|
||||
$this->per_page = (int)$this->request->getVar('per_page') ?: $this->_per_page;
|
||||
$this->page = (int)$this->request->getVar('page') ?? 1;
|
||||
$this->per_page = (int)$this->request->getVar('per_page') ?? $this->_per_page;
|
||||
//줄수 처리용
|
||||
$this->pageOptions = array("" => "줄수선택");
|
||||
$page_options = array("" => "줄수선택");
|
||||
for ($i = 10; $i <= $this->total_count + $this->per_page; $i += 10) {
|
||||
$this->pageOptions[$i] = $i;
|
||||
$page_options[$i] = $i;
|
||||
}
|
||||
$this->page_options = form_dropdown(
|
||||
'per_page',
|
||||
$page_options,
|
||||
$this->per_page
|
||||
);
|
||||
// 1.Views/Pagers/에 bootstrap_full.php,bootstrap_simple.php 생성
|
||||
// 2.app/Config/Pager.php/$templates에 'bootstrap_full => 'Pagers\bootstrap_full',
|
||||
// 'bootstrap_simple' => 'Pagers\bootstrap_simple', 추가
|
||||
$pager = \Config\Services::pager();
|
||||
$pager = service("pager");
|
||||
// $this->getMyLibrary()->getMyStorage()->paginate($this->per_page, $pager_group, $this->page, $segment);
|
||||
$pager->makeLinks(
|
||||
$this->page,
|
||||
|
||||
24
app/Database/update.txt
Normal file
24
app/Database/update.txt
Normal file
@ -0,0 +1,24 @@
|
||||
1. 필드추가
|
||||
alter table cloudflareaccount add column id varchar(30) not null after auth_uid;
|
||||
alter table cloudflareaccount add column authkey varchar(255) not null after id;
|
||||
alter table cloudflareaccount add column oldkey varchar(255) null after apikey;
|
||||
|
||||
2. 내용복사
|
||||
update cloudflareaccount
|
||||
join cloudflareauth on cloudflareaccount.auth_uid = cloudflareauth.uid
|
||||
set cloudflareaccount.id=cloudflareauth.id,
|
||||
cloudflareaccount.apikey=cloudflareauth.authkey,
|
||||
cloudflareaccount.oldkey=cloudflareauth.oldkey
|
||||
|
||||
3. foreign key 삭제 , index key 삭제
|
||||
show table cloudflareaccount;
|
||||
ALTER TABLE cloudflareaccount DROP FOREIGN KEY cloudflareaccount_ibfk_1;
|
||||
ALTER TABLE cloudflareaccount DROP KEY cloudflareaccount_ibfk_1;
|
||||
|
||||
4. auth_uid column 삭제
|
||||
show table cloudflareaccount;
|
||||
ALTER TABLE cloudflareaccount DROP column auth_uid;
|
||||
|
||||
5. id unique key 추가
|
||||
ALTER TABLE cloudflareaccount ADD UNIQUE key cloudflareaccount_ibuk_1 (id);
|
||||
ALTER TABLE cloudflareaccount ADD UNIQUE key cloudflareaccount_ibuk_2 (authkey);
|
||||
@ -9,7 +9,7 @@ class AccountEntity extends CommonEntity
|
||||
{
|
||||
public function __toString()
|
||||
{
|
||||
return "{$this->getPK()}|{$this->getTitle()}|{$this->getAPIKey()}|{$this->attributes['type']}|{$this->attributes['status']}";
|
||||
return "{$this->getPK()}|{$this->getTitle()}|{$this->getAuthKey()}|{$this->attributes['type']}|{$this->attributes['status']}";
|
||||
}
|
||||
public function getPK(): int
|
||||
{
|
||||
@ -24,8 +24,12 @@ class AccountEntity extends CommonEntity
|
||||
$this->attributes[AccountModel::TITLE] = $title;
|
||||
}
|
||||
//Common Function
|
||||
public function getAPIKey(): string
|
||||
public function getID(): string
|
||||
{
|
||||
return $this->attributes['apikey'];
|
||||
return $this->attributes['id'];
|
||||
}
|
||||
public function getAuthKey(): string
|
||||
{
|
||||
return $this->attributes['authkey'];
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,22 +1,22 @@
|
||||
<?php
|
||||
return [
|
||||
'title' => "Account정보",
|
||||
'label' => [
|
||||
'uid' => "번호",
|
||||
'id' => "인증ID",
|
||||
'apikey' => "인증Key",
|
||||
'oldkey' => "이전인증Key",
|
||||
'type' => "가입방식",
|
||||
'status' => "상태",
|
||||
'title' => "Account정보",
|
||||
'label' => [
|
||||
'uid' => "번호",
|
||||
'id' => "인증ID",
|
||||
'authkey' => "인증Key",
|
||||
'oldkey' => "이전인증Key",
|
||||
'type' => "가입방식",
|
||||
'status' => "상태",
|
||||
'updated_at' => "수정일",
|
||||
'created_at' => "작성일"
|
||||
'created_at' => "작성일",
|
||||
],
|
||||
"TYPE" => [
|
||||
"standard" => "standard",
|
||||
"enterprise" => "enterprise"
|
||||
"TYPE" => [
|
||||
"standard" => "standard",
|
||||
"enterprise" => "enterprise",
|
||||
],
|
||||
"STATUS" => [
|
||||
"use" => "사용",
|
||||
"use" => "사용",
|
||||
"unuse" => "사용않함",
|
||||
]
|
||||
],
|
||||
];
|
||||
|
||||
@ -1,38 +1,38 @@
|
||||
<?php
|
||||
return [
|
||||
'title' => "Zone정보",
|
||||
'label' => [
|
||||
'uid' => "번호",
|
||||
'account_uid' => "계정",
|
||||
'domain' => "도메인",
|
||||
'name_servers' => "네임서버",
|
||||
'original_name_servers' => "이전네임서버",
|
||||
'plan' => "plan",
|
||||
'development_mode' => "개발모드",
|
||||
'ipv6' => "ipv6",
|
||||
'security_level' => "공격방어",
|
||||
'status' => "서비스",
|
||||
'updated_at' => "수정일",
|
||||
'created_at' => "작성일"
|
||||
'title' => "Zone정보",
|
||||
'label' => [
|
||||
'uid' => "번호",
|
||||
'account_uid' => "계정",
|
||||
'domain' => "도메인",
|
||||
'name_servers' => "네임서버",
|
||||
'original_name_servers' => "이전네임서버",
|
||||
'plan' => "plan",
|
||||
'development_mode' => "개발모드",
|
||||
'ipv6' => "ipv6",
|
||||
'security_level' => "공격방어",
|
||||
'status' => "서비스",
|
||||
'updated_at' => "수정일",
|
||||
'created_at' => "작성일",
|
||||
],
|
||||
"ACCOUNT_UID" => [
|
||||
"ACCOUNT_UID" => [
|
||||
],
|
||||
"DEVELOPMENT_MODE" => [
|
||||
"on" => "사용",
|
||||
"on" => "사용",
|
||||
"off" => "사용않함",
|
||||
],
|
||||
"IPV6" => [
|
||||
"on" => "사용",
|
||||
"IPV6" => [
|
||||
"on" => "사용",
|
||||
"off" => "사용않함",
|
||||
],
|
||||
"SECURITY_LEVEL" => [
|
||||
"under_attack" => "under_attack",
|
||||
"medium" => "medium",
|
||||
"low" => "low",
|
||||
"essentially_off" => "essentially_off"
|
||||
"SECURITY_LEVEL" => [
|
||||
"under_attack" => "under_attack",
|
||||
"medium" => "medium",
|
||||
"low" => "low",
|
||||
"essentially_off" => "essentially_off",
|
||||
],
|
||||
"STATUS" => [
|
||||
"active" => "active",
|
||||
"STATUS" => [
|
||||
"active" => "active",
|
||||
"pending" => "pending",
|
||||
],
|
||||
],
|
||||
];
|
||||
@ -1,16 +1,16 @@
|
||||
<?php
|
||||
return [
|
||||
'title' => "URL Mapping 정보",
|
||||
'label' => [
|
||||
'uid' => "번호",
|
||||
'oldurl' => "기존URL",
|
||||
'newurl' => "신규URL",
|
||||
'status' => "상태",
|
||||
'title' => "URL Mapping 정보",
|
||||
'label' => [
|
||||
'uid' => "번호",
|
||||
'oldurl' => "기존URL",
|
||||
'newurl' => "신규URL",
|
||||
'status' => "상태",
|
||||
'updated_at' => "수정일",
|
||||
'created_at' => "작성일"
|
||||
'created_at' => "작성일",
|
||||
],
|
||||
"STATUS" => [
|
||||
"use" => "사용",
|
||||
"use" => "사용",
|
||||
"unuse" => "사용않함",
|
||||
]
|
||||
],
|
||||
];
|
||||
|
||||
@ -1,27 +1,27 @@
|
||||
<?php
|
||||
return [
|
||||
'title' => "계정정보",
|
||||
'label' => [
|
||||
'uid' => "번호",
|
||||
'id' => "계정",
|
||||
'passwd' => "암호",
|
||||
'title' => "계정정보",
|
||||
'label' => [
|
||||
'uid' => "번호",
|
||||
'id' => "계정",
|
||||
'passwd' => "암호",
|
||||
'confirmpassword' => "암호확인",
|
||||
'email' => "메일",
|
||||
'role' => "권한",
|
||||
'name' => "이름",
|
||||
'status' => "상태",
|
||||
'updated_at' => "수정일",
|
||||
'created_at' => "작성일"
|
||||
'email' => "메일",
|
||||
'role' => "권한",
|
||||
'name' => "이름",
|
||||
'status' => "상태",
|
||||
'updated_at' => "수정일",
|
||||
'created_at' => "작성일",
|
||||
],
|
||||
"ROLE" => [
|
||||
"member" => "회원",
|
||||
"manager" => "관리자",
|
||||
"ROLE" => [
|
||||
"member" => "회원",
|
||||
"manager" => "관리자",
|
||||
"cloudflare" => "Cloudflare관리자",
|
||||
"director" => "감독자",
|
||||
"master" => "마스터"
|
||||
"director" => "감독자",
|
||||
"master" => "마스터",
|
||||
],
|
||||
"STATUS" => [
|
||||
"use" => "사용",
|
||||
"use" => "사용",
|
||||
"unuse" => "사용않함",
|
||||
]
|
||||
],
|
||||
];
|
||||
|
||||
@ -35,7 +35,7 @@ class Account extends MyCloudflare
|
||||
// "legacy_flags":{"enterprise_zone_quota":{"maximum":0,"current":0,"available":0}},
|
||||
// "created_on":"2017-06-26T05:44:49.470184Z"}
|
||||
// ]
|
||||
protected function getArrayByResult($result): array
|
||||
protected function getArrayByResult($result, array $formDatas = []): array
|
||||
{
|
||||
$formDatas[$this->getMyStorage()->getPKField()] = $result->id;
|
||||
$formDatas[$this->getMyStorage()->getTitleField()] = $result->name;
|
||||
@ -48,7 +48,7 @@ class Account extends MyCloudflare
|
||||
public function create(array $formDatas): AccountEntity
|
||||
{
|
||||
//Socket용
|
||||
$cf = $this->getMySocket()->request($formDatas['apikey'])
|
||||
$cf = $this->getMySocket()->request($formDatas['authkey'])
|
||||
->post('accounts', [
|
||||
'name' => $formDatas[$this->getMyStorage()->getTitleField()],
|
||||
'type' => $formDatas['type'],
|
||||
@ -58,7 +58,7 @@ class Account extends MyCloudflare
|
||||
throw new \Exception(__FUNCTION__ . "에서 실패:\n" . var_export($cf, true));
|
||||
}
|
||||
//Storage용
|
||||
$formDatas = $this->getArrayByResult($cf->result);
|
||||
$formDatas = $this->getArrayByResult($cf->result, $formDatas);
|
||||
$entity = $this->getMyStorage()->create($formDatas);
|
||||
log_message("notice", "Account::" . __FUNCTION__ . "=> 작업을 완료하였습니다.");
|
||||
return $entity;
|
||||
|
||||
@ -13,7 +13,7 @@ abstract class MyCloudflare extends CommonLibrary
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
abstract protected function getArrayByResult($result): array;
|
||||
abstract protected function getArrayByResult($result, array $formDatas = []): array;
|
||||
abstract protected function reload_entity($cf): mixed;
|
||||
abstract public function getMyStorage(): mixed;
|
||||
final protected function getMySocket(): CloudflareSocket
|
||||
|
||||
@ -22,7 +22,7 @@ class Record extends MyCloudflare
|
||||
}
|
||||
protected function getRequest(): Guzzle
|
||||
{
|
||||
return $this->getMySocket()->request($this->_account_entity->getAPIKey());
|
||||
return $this->getMySocket()->request($this->_account_entity->getAuthKey());
|
||||
}
|
||||
final public function getMyStorage(): RecordModel
|
||||
{
|
||||
@ -31,7 +31,7 @@ class Record extends MyCloudflare
|
||||
}
|
||||
return $this->_myStorage;
|
||||
}
|
||||
protected function getArrayByResult($result): array
|
||||
protected function getArrayByResult($result, array $formDatas = []): array
|
||||
{
|
||||
$formDatas[$this->getMyStorage()->getPKField()] = $result->id;
|
||||
$formDatas[$this->getMyStorage()::PARENT] = $result->zone_id;
|
||||
|
||||
@ -20,7 +20,7 @@ class Zone extends MyCloudflare
|
||||
}
|
||||
private function getRequest(): Guzzle
|
||||
{
|
||||
return $this->getMySocket()->request($this->_account_entity->getAPIKey());
|
||||
return $this->getMySocket()->request($this->_account_entity->getAuthKey());
|
||||
}
|
||||
final public function getMyStorage(): ZoneModel
|
||||
{
|
||||
@ -29,7 +29,7 @@ class Zone extends MyCloudflare
|
||||
}
|
||||
return $this->_myStorage;
|
||||
}
|
||||
protected function getArrayByResult($result): array
|
||||
protected function getArrayByResult($result, array $formDatas = []): array
|
||||
{
|
||||
$formDatas[$this->getMyStorage()->getPKField()] = $result->id;
|
||||
$formDatas[$this->getMyStorage()::PARENT] = $result->account->id;
|
||||
|
||||
@ -25,25 +25,25 @@ class CloudflareSocket extends CommonLibrary
|
||||
$this->initAdapters();
|
||||
self::$_request_max = getenv("cfmgr.request.max");
|
||||
}
|
||||
final protected function getAccountModel(): AccountModel
|
||||
private function getAccountModel(): AccountModel
|
||||
{
|
||||
if ($this->_accountModel === null) {
|
||||
$this->_accountModel = new AccountModel();
|
||||
}
|
||||
return $this->_accountModel;
|
||||
}
|
||||
final public function initAdapters(): void
|
||||
private function initAdapters(): void
|
||||
{
|
||||
foreach ($this->getAccountModel()->getEntitys() as $entity) {
|
||||
$this->_clients[$entity->getAPIKey()] = new Guzzle(
|
||||
new APIKey($entity->getTitle(), $entity->getAPIKey())
|
||||
$this->_clients[$entity->getAuthKey()] = new Guzzle(
|
||||
new APIKey($entity->getTitle(), $entity->getAuthKey())
|
||||
);
|
||||
}
|
||||
}
|
||||
public function request(string $apikey): Guzzle
|
||||
final public function request(string $authkey): Guzzle
|
||||
{
|
||||
if (!array_key_exists($apikey, $this->_clients)) {
|
||||
throw new \Exception(+__FUNCTION__ . " => {$apikey}에 해당하는 Adapter를 찾을수 없습니다.");
|
||||
if (!array_key_exists($authkey, $this->_clients)) {
|
||||
throw new \Exception(+__FUNCTION__ . " => {$authkey}에 해당하는 Adapter를 찾을수 없습니다.");
|
||||
}
|
||||
if (self::$_request >= self::$_request_max) {
|
||||
log_message('warning', sprintf("--Cloudflare API Call %s초 대기 시작--", self::$_request_timewait));
|
||||
@ -52,18 +52,18 @@ class CloudflareSocket extends CommonLibrary
|
||||
log_message('warning', sprintf("--Cloudflare API Call %s초 대기 종료--", self::$_request_timewait));
|
||||
}
|
||||
self::$_request++;
|
||||
return $this->_clients[$apikey];
|
||||
return $this->_clients[$authkey];
|
||||
}
|
||||
// public function getAccount(string $apikey): Accounts
|
||||
// public function getAccount(string $authkey): Accounts
|
||||
// {
|
||||
// return new Accounts($this->request($apikey));
|
||||
// return new Accounts($this->request($authkey));
|
||||
// }
|
||||
// public function getZone(string $apikey): Zones
|
||||
// public function getZone(string $authkey): Zones
|
||||
// {
|
||||
// return new Zones($this->request($apikey));
|
||||
// return new Zones($this->request($authkey));
|
||||
// }
|
||||
// public function getRecord(string $apikey): DNS
|
||||
// public function getRecord(string $authkey): DNS
|
||||
// {
|
||||
// return new DNS($this->request($apikey));
|
||||
// return new DNS($this->request($authkey));
|
||||
// }
|
||||
}
|
||||
|
||||
@ -9,12 +9,12 @@ class AccountModel extends CommonModel
|
||||
{
|
||||
const TABLE = "cloudflarerecord";
|
||||
const PK = "uid";
|
||||
const TITLE = "id";
|
||||
const TITLE = "title";
|
||||
protected $table = self::TABLE;
|
||||
protected $primaryKey = self::PK;
|
||||
protected $useAutoIncrement = false;
|
||||
protected $returnType = AccountEntity::class; //object,array,entity명::class
|
||||
protected $allowedFields = [self::PK, self::TITLE, 'apikey', 'oldkey', 'type', 'status', 'updated_at', 'created_at'];
|
||||
protected $allowedFields = [self::PK, self::TITLE, 'authkey', 'oldkey', 'title', 'type', 'status', 'updated_at', 'created_at'];
|
||||
protected $useTimestamps = true;
|
||||
public function __construct()
|
||||
{
|
||||
@ -29,13 +29,16 @@ class AccountModel extends CommonModel
|
||||
switch ($field) {
|
||||
case self::TITLE:
|
||||
$rules[$field] = "required|valid_emailvalid_email|is_unique[cloudflareauth.id]";
|
||||
case "apikey":
|
||||
break;
|
||||
case 'id':
|
||||
$rules[$field] = "required|valid_emailvalid_email|is_unique[cloudflareauth.id]";
|
||||
break;
|
||||
case "authkey":
|
||||
$rules[$field] = $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 "oldkey":
|
||||
$rules[$field] = $rules[$field] = "if_exist|regex_match[/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/]";
|
||||
;
|
||||
break;
|
||||
case "type":
|
||||
$rules[$field] = "if_exist|in_list[standard,enterprise]";
|
||||
@ -63,7 +66,7 @@ class AccountModel extends CommonModel
|
||||
}
|
||||
public function getEntityByID(string $id): null|AccountEntity
|
||||
{
|
||||
$this->where($this->getTitleField(), $id);
|
||||
$this->where('id', $id);
|
||||
return $this->getEntity();
|
||||
}
|
||||
//create용
|
||||
|
||||
@ -1,158 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Mangboard;
|
||||
|
||||
use App\Entities\Mangboard\BoardEntity;
|
||||
use App\Models\CommonModel;
|
||||
|
||||
// +-----------------+---------------------+------+-----+---------------------+----------------+
|
||||
// | Field | Type | Null | Key | Default | Extra |
|
||||
// +-----------------+---------------------+------+-----+---------------------+----------------+
|
||||
// | pid | int(10) unsigned | NO | PRI | NULL | auto_increment |
|
||||
// | gid | int(10) unsigned | NO | MUL | 0 | |
|
||||
// | reply | int(10) unsigned | NO | | 0 | |
|
||||
// | depth | int(10) unsigned | NO | | 0 | |
|
||||
// | user_id | varchar(150) | NO | MUL | | |
|
||||
// | user_name | varchar(100) | NO | MUL | | |
|
||||
// | title | varchar(255) | NO | MUL | | |
|
||||
// | passwd | varchar(100) | NO | | | |
|
||||
// | homepage | varchar(255) | NO | | | |
|
||||
// | email | varchar(255) | NO | | | |
|
||||
// | address | varchar(255) | NO | | | |
|
||||
// | phone | varchar(50) | NO | | | |
|
||||
// | reg_date | datetime | NO | MUL | 0000-00-00 00:00:00 | |
|
||||
// | modify_date | datetime | NO | MUL | 0000-00-00 00:00:00 | |
|
||||
// | calendar_date | datetime | NO | MUL | 0000-00-00 00:00:00 | |
|
||||
// | hit | int(10) unsigned | NO | MUL | 0 | |
|
||||
// | user_pid | int(10) unsigned | NO | MUL | 0 | |
|
||||
// | parent_pid | int(10) unsigned | NO | MUL | 0 | |
|
||||
// | parent_user_pid | int(10) unsigned | NO | MUL | 0 | |
|
||||
// | level | tinyint(3) unsigned | NO | | 0 | |
|
||||
// | file_count | int(10) unsigned | NO | | 0 | |
|
||||
// | comment_count | int(10) unsigned | NO | | 0 | |
|
||||
// | vote_good_count | int(10) unsigned | NO | | 0 | |
|
||||
// | vote_bad_count | int(10) unsigned | NO | | 0 | |
|
||||
// | vote_type | int(10) unsigned | NO | | 0 | |
|
||||
// | ip | varchar(40) | NO | | | |
|
||||
// | agent | varchar(30) | NO | | | |
|
||||
// | is_notice | tinyint(3) unsigned | NO | MUL | 0 | |
|
||||
// | is_secret | tinyint(3) unsigned | NO | | 0 | |
|
||||
// | status | varchar(30) | NO | MUL | publish | |
|
||||
// | is_show | tinyint(3) unsigned | NO | MUL | 1 | |
|
||||
// | reply_email | tinyint(3) | NO | | 0 | |
|
||||
// | text | mediumtext | NO | | NULL | |
|
||||
// | content | mediumtext | NO | | NULL | |
|
||||
// | content_type | varchar(20) | NO | | | |
|
||||
// | data_type | varchar(20) | NO | | text | |
|
||||
// | editor_type | varchar(10) | NO | | N | |
|
||||
// | tag | varchar(255) | NO | | | |
|
||||
// | category1 | varchar(100) | NO | MUL | | |
|
||||
// | category2 | varchar(100) | NO | | | |
|
||||
// | category3 | varchar(100) | NO | | | |
|
||||
// | image_path | varchar(255) | NO | | | |
|
||||
// | site_link1 | varchar(255) | NO | | | |
|
||||
// | site_link2 | varchar(255) | NO | | | |
|
||||
// | gps_latitude | decimal(10,8) | NO | MUL | 0.00000000 | |
|
||||
// | gps_longitude | decimal(11,8) | NO | | 0.00000000 | |
|
||||
// | ext1 | varchar(255) | NO | | | |
|
||||
// | ext2 | varchar(255) | NO | | | |
|
||||
// | ext3 | varchar(255) | NO | | | |
|
||||
// | ext4 | varchar(255) | NO | | | |
|
||||
// | ext5 | varchar(255) | NO | | | |
|
||||
// | ext6 | varchar(255) | NO | | | |
|
||||
// | ext7 | varchar(255) | NO | | | |
|
||||
// | ext8 | varchar(255) | NO | | | |
|
||||
// | ext9 | varchar(255) | NO | | | |
|
||||
// | ext10 | varchar(255) | NO | | | |
|
||||
// +-----------------+---------------------+------+-----+---------------------+----------------+
|
||||
|
||||
class BoardModel extends CommonModel
|
||||
{
|
||||
// const TABLE = "";
|
||||
const PK = "pid";
|
||||
const TITLE = "title";
|
||||
// protected $table = self::TABLE;
|
||||
protected $primaryKey = self::PK;
|
||||
protected $returnType = BoardEntity::class;
|
||||
protected $allowedFields = [
|
||||
"gid",
|
||||
self::TITLE,
|
||||
"user_pid",
|
||||
"user_id",
|
||||
"user_name",
|
||||
"level",
|
||||
"data_type",
|
||||
"editor_type",
|
||||
"image_path",
|
||||
"reg_date",
|
||||
"hit",
|
||||
"content"
|
||||
];
|
||||
public function __construct(string $table)
|
||||
{
|
||||
$this->table = $table;
|
||||
parent::__construct();
|
||||
}
|
||||
public function getTable(): string
|
||||
{
|
||||
return $this->table;
|
||||
}
|
||||
public function getTitleField(): string
|
||||
{
|
||||
return self::TITLE;
|
||||
}
|
||||
public function getFieldRule(string $field, array $rules): array
|
||||
{
|
||||
switch ($field) {
|
||||
case 'gid':
|
||||
$rules[$field] = "if_exist|numeric";
|
||||
break;
|
||||
case "data_type":
|
||||
$rules[$field] = "if_exist|trim|in_list[html,text]";
|
||||
break;
|
||||
case "editor_type":
|
||||
$rules[$field] = "if_exist|trim|in_list[N,S]";
|
||||
break;
|
||||
case "reg_date":
|
||||
$rules[$field] = "if_exist|valid_date";
|
||||
break;
|
||||
case "content":
|
||||
case "image_path":
|
||||
$rules[$field] = "if_exist|trim|string";
|
||||
break;
|
||||
case 'hit':
|
||||
case 'level':
|
||||
case 'user_pid':
|
||||
$rules[$field] = "if_exist|numeric";
|
||||
break;
|
||||
default:
|
||||
$rules = parent::getFieldRule($field, $rules);
|
||||
break;
|
||||
}
|
||||
return $rules;
|
||||
}
|
||||
|
||||
public function getEntityByPK(int $uid): null | BoardEntity
|
||||
{
|
||||
$this->where($this->getPKField(), $uid);
|
||||
return $this->getEntity();
|
||||
}
|
||||
public function getEntityByID(string $id): null | BoardEntity
|
||||
{
|
||||
$this->where($this->getTitleField(), $id);
|
||||
return $this->getEntity();
|
||||
}
|
||||
|
||||
//create용
|
||||
public function create(array $formDatas = []): BoardEntity
|
||||
{
|
||||
$entity = $this->create_process(new BoardEntity(), $formDatas);
|
||||
//입력후 PID값을 GID값에 넣어주기 위함
|
||||
return $this->modify($entity, ['gid' => intval($entity->getPK())]);
|
||||
}
|
||||
//modify용
|
||||
public function modify(BoardEntity $entity, array $formDatas): BoardEntity
|
||||
{
|
||||
return $this->modify_process($entity, $formDatas);
|
||||
}
|
||||
}
|
||||
@ -1,146 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Mangboard;
|
||||
|
||||
use App\Models\CommonModel;
|
||||
use App\Entities\Mangboard\BoardsEntity;
|
||||
|
||||
// +-----------------------+----------------------+------+-----+---------------------+----------------+
|
||||
// | Field | Type | Null | Key | Default | Extra |
|
||||
// +-----------------------+----------------------+------+-----+---------------------+----------------+
|
||||
// | pid | int(10) unsigned | NO | PRI | NULL | auto_increment |
|
||||
// | board_name | varchar(50) | NO | MUL | | |
|
||||
// | description | varchar(255) | NO | | | |
|
||||
// | image_path | varchar(255) | NO | | | |
|
||||
// | skin_name | varchar(100) | NO | MUL | | |
|
||||
// | model_name | varchar(100) | NO | MUL | | |
|
||||
// | table_link | varchar(100) | NO | MUL | | |
|
||||
// | mobile_skin_name | varchar(100) | NO | MUL | | |
|
||||
// | post_id | bigint(20) | NO | | 0 | |
|
||||
// | board_header | text | NO | | NULL | |
|
||||
// | board_footer | text | NO | | NULL | |
|
||||
// | board_content_form | text | NO | | NULL | |
|
||||
// | editor_type | varchar(50) | NO | | N | |
|
||||
// | api_type | varchar(50) | NO | | mb | |
|
||||
// | page_size | smallint(5) unsigned | NO | | 20 | |
|
||||
// | comment_size | smallint(5) unsigned | NO | | 50 | |
|
||||
// | block_size | tinyint(3) unsigned | NO | | 10 | |
|
||||
// | category_type | varchar(50) | NO | | NONE | |
|
||||
// | category_data | text | NO | | NULL | |
|
||||
// | use_board_vote_good | tinyint(3) unsigned | NO | | 0 | |
|
||||
// | use_board_vote_bad | tinyint(3) unsigned | NO | | 0 | |
|
||||
// | use_comment | tinyint(3) unsigned | NO | | 0 | |
|
||||
// | use_comment_vote_good | tinyint(3) unsigned | NO | | 0 | |
|
||||
// | use_comment_vote_bad | tinyint(3) unsigned | NO | | 0 | |
|
||||
// | use_secret | tinyint(3) unsigned | NO | | 0 | |
|
||||
// | use_notice | tinyint(3) unsigned | NO | | 0 | |
|
||||
// | use_list_title | tinyint(3) unsigned | NO | | 1 | |
|
||||
// | use_list_search | tinyint(3) unsigned | NO | | 1 | |
|
||||
// | list_level | tinyint(3) unsigned | NO | | 0 | |
|
||||
// | view_level | tinyint(3) unsigned | NO | | 0 | |
|
||||
// | write_level | tinyint(3) unsigned | NO | | 0 | |
|
||||
// | reply_level | tinyint(3) unsigned | NO | | 0 | |
|
||||
// | delete_level | tinyint(3) unsigned | NO | | 8 | |
|
||||
// | modify_level | tinyint(3) unsigned | NO | | 8 | |
|
||||
// | secret_level | tinyint(3) unsigned | NO | | 8 | |
|
||||
// | manage_level | tinyint(3) unsigned | NO | | 8 | |
|
||||
// | comment_level | tinyint(3) unsigned | NO | | 0 | |
|
||||
// | point_board_read | int(10) | NO | | 0 | |
|
||||
// | point_board_write | int(10) | NO | | 0 | |
|
||||
// | point_board_reply | int(10) | NO | | 0 | |
|
||||
// | point_comment_write | int(10) | NO | | 0 | |
|
||||
// | board_type | varchar(50) | NO | MUL | board | |
|
||||
// | reg_date | datetime | NO | MUL | 0000-00-00 00:00:00 | |
|
||||
// | is_show | tinyint(3) unsigned | NO | MUL | 1 | |
|
||||
// | ext1 | varchar(255) | NO | | | |
|
||||
// | ext2 | varchar(255) | NO | | | |
|
||||
// | ext3 | varchar(255) | NO | | | |
|
||||
// | ext4 | varchar(255) | NO | | | |
|
||||
// | ext5 | varchar(255) | NO | | | |
|
||||
// +-----------------------+----------------------+------+-----+---------------------+----------------+
|
||||
|
||||
class BoardsModel extends CommonModel
|
||||
{
|
||||
const TABLE = "mb_boards";
|
||||
const PK = "pid";
|
||||
const TITLE = "board_name";
|
||||
protected $table = self::TABLE;
|
||||
protected $primaryKey = self::PK;
|
||||
protected $returnType = BoardsEntity::class;
|
||||
protected $allowedFields = [
|
||||
self::TITLE,
|
||||
"board_type",
|
||||
"description",
|
||||
"list_level",
|
||||
"write_level",
|
||||
"modify_level",
|
||||
"view_level",
|
||||
"reply_level",
|
||||
"delete_level",
|
||||
"secret_level",
|
||||
"manage_level",
|
||||
"comment_level",
|
||||
"is_show",
|
||||
"reg_date",
|
||||
];
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
public function getTitleField(): string
|
||||
{
|
||||
return self::TITLE;
|
||||
}
|
||||
public function getFieldRule(string $field, array $rules): array
|
||||
{
|
||||
switch ($field) {
|
||||
case "board_type":
|
||||
$rules[$field] = "if_exist|trim|in_list[board,admin,user]";
|
||||
break;
|
||||
case "description":
|
||||
$rules[$field] = "if_exist|trim|string";
|
||||
break;
|
||||
case "list_level":
|
||||
case "write_level":
|
||||
case "modify_level":
|
||||
case "view_level":
|
||||
case "reply_level":
|
||||
case "delete_level":
|
||||
case "secret_level":
|
||||
case "manage_level":
|
||||
case "comment_level":
|
||||
case 'is_show':
|
||||
$rules[$field] = "if_exist|numeric";
|
||||
break;
|
||||
case "reg_date":
|
||||
$rules[$field] = "if_exist|valid_date";
|
||||
break;
|
||||
default:
|
||||
$rules = parent::getFieldRule($field, $rules);
|
||||
break;
|
||||
}
|
||||
return $rules;
|
||||
}
|
||||
|
||||
public function getEntityByPK(int $uid): null | BoardsEntity
|
||||
{
|
||||
$this->where($this->getPKField(), $uid);
|
||||
return $this->getEntity();
|
||||
}
|
||||
public function getEntityByID(string $id): null | BoardsEntity
|
||||
{
|
||||
$this->where($this->getTitleField(), $id);
|
||||
return $this->getEntity();
|
||||
}
|
||||
|
||||
//create용
|
||||
public function create(array $formDatas = []): BoardsEntity
|
||||
{
|
||||
return $this->create_process(new BoardsEntity(), $formDatas);
|
||||
}
|
||||
//modify용
|
||||
public function modify(BoardsEntity $entity, array $formDatas): BoardsEntity
|
||||
{
|
||||
return $this->modify_process($entity, $formDatas);
|
||||
}
|
||||
}
|
||||
@ -1,127 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Mangboard;
|
||||
|
||||
use App\Entities\Mangboard\FileEntity;
|
||||
use App\Models\CommonModel;
|
||||
|
||||
// +------------------+----------------------+------+-----+---------------------+----------------+
|
||||
// | Field | Type | Null | Key | Default | Extra |
|
||||
// +------------------+----------------------+------+-----+---------------------+----------------+
|
||||
// | pid | int(10) unsigned | NO | PRI | NULL | auto_increment |
|
||||
// | user_pid | int(10) unsigned | NO | | 0 | |
|
||||
// | user_name | varchar(100) | NO | MUL | | |
|
||||
// | board_name | varchar(50) | NO | MUL | | |
|
||||
// | table_name | varchar(100) | NO | MUL | | |
|
||||
// | board_pid | int(10) unsigned | NO | MUL | 0 | |
|
||||
// | file_name | varchar(255) | NO | MUL | | |
|
||||
// | file_path | varchar(255) | NO | MUL | | |
|
||||
// | file_type | varchar(255) | NO | MUL | | |
|
||||
// | file_caption | varchar(255) | NO | | | |
|
||||
// | file_alt | varchar(255) | NO | | | |
|
||||
// | file_description | text | NO | | NULL | |
|
||||
// | file_size | int(10) unsigned | NO | MUL | 0 | |
|
||||
// | link_count | int(10) unsigned | NO | | 0 | |
|
||||
// | download_count | int(10) unsigned | NO | | 0 | |
|
||||
// | file_sequence | smallint(5) unsigned | NO | MUL | 1 | |
|
||||
// | is_download | tinyint(3) unsigned | NO | | 0 | |
|
||||
// | reg_date | datetime | NO | MUL | 0000-00-00 00:00:00 | |
|
||||
// | ip | varchar(40) | NO | | | |
|
||||
// | agent | varchar(30) | NO | | | |
|
||||
// +------------------+----------------------+------+-----+---------------------+----------------+
|
||||
|
||||
class FileModel extends CommonModel
|
||||
{
|
||||
const TABLE = "mb_files";
|
||||
const PK = "pid";
|
||||
const TITLE = "file_name";
|
||||
protected $table = self::TABLE;
|
||||
protected $primaryKey = self::PK;
|
||||
protected $returnType = FileEntity::class;
|
||||
protected $allowedFields = [
|
||||
"user_pid",
|
||||
"user_name",
|
||||
"board_pid",
|
||||
"board_name",
|
||||
"table_name",
|
||||
self::TITLE,
|
||||
"file_path",
|
||||
"file_type",
|
||||
"file_caption",
|
||||
"file_alt",
|
||||
"file_description",
|
||||
"file_size",
|
||||
"file_sequence",
|
||||
"reg_date"
|
||||
];
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
public function getTitleField(): string
|
||||
{
|
||||
return self::TITLE;
|
||||
}
|
||||
public function getFieldRule(string $field, array $rules): array
|
||||
{
|
||||
switch ($field) {
|
||||
case "board_pid":
|
||||
case "user_pid":
|
||||
case "file_sequence":
|
||||
case "file_size":
|
||||
$rules[$field] = "if_exist|numeric";
|
||||
break;
|
||||
case "board_name":
|
||||
case "table_name":
|
||||
case "file_name":
|
||||
case "file_path":
|
||||
case "file_type":
|
||||
$rules[$field] = "required|string";
|
||||
break;
|
||||
case "file_description":
|
||||
case "file_caption":
|
||||
case "file_alt":
|
||||
$rules[$field] = "if_exist|string";
|
||||
break;
|
||||
case "reg_date":
|
||||
$rules[$field] = "if_exist|valid_date";
|
||||
break;
|
||||
default:
|
||||
$rules = parent::getFieldRule($field, $rules);
|
||||
break;
|
||||
}
|
||||
return $rules;
|
||||
}
|
||||
|
||||
public function getEntityByPK(int $uid): null | FileEntity
|
||||
{
|
||||
$this->where($this->getPKField(), $uid);
|
||||
return $this->getEntity();
|
||||
}
|
||||
public function getEntityByID(string $id): null | FileEntity
|
||||
{
|
||||
$this->where($this->getTitleField(), $id);
|
||||
return $this->getEntity();
|
||||
}
|
||||
|
||||
// protected function convertEntityData(string $field, array $formDatas): string|int
|
||||
// {
|
||||
// switch ($field) {
|
||||
// default:
|
||||
// $value = parent::convertEntityData($field, $formDatas);
|
||||
// break;
|
||||
// }
|
||||
// return $value;
|
||||
// }
|
||||
|
||||
//create용
|
||||
public function create(array $formDatas = []): FileEntity
|
||||
{
|
||||
return $this->create_process(new FileEntity(), $formDatas);
|
||||
}
|
||||
//modify용
|
||||
public function modify(FileEntity $entity, array $formDatas): FileEntity
|
||||
{
|
||||
return $this->modify_process($entity, $formDatas);
|
||||
}
|
||||
}
|
||||
@ -1,236 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Mangboard;
|
||||
|
||||
use App\Entities\Mangboard\UserEntity;
|
||||
use App\Models\CommonModel;
|
||||
|
||||
// +-------------------+----------------------+------+-----+---------------------+----------------+
|
||||
// | Field | Type | Null | Key | Default | Extra |
|
||||
// +-------------------+----------------------+------+-----+---------------------+----------------+
|
||||
// | pid | int(10) unsigned | NO | PRI | NULL | auto_increment |
|
||||
// | wp_user_pid | int(10) unsigned | NO | | 0 | |
|
||||
// | user_id | varchar(150) | NO | UNI | | |
|
||||
// | passwd | varchar(255) | NO | | | |
|
||||
// | user_name | varchar(100) | NO | | | |
|
||||
// | user_state | varchar(255) | NO | | | |
|
||||
// | user_level | tinyint(3) unsigned | NO | | 1 | |
|
||||
// | user_group | varchar(255) | NO | MUL | home | |
|
||||
// | user_platform | varchar(100) | NO | | mb | |
|
||||
// | user_email | varchar(255) | NO | | | |
|
||||
// | user_point | int(10) unsigned | NO | | 0 | |
|
||||
// | user_money | int(10) unsigned | NO | | 0 | |
|
||||
// | user_coin | int(10) unsigned | NO | | 0 | |
|
||||
// | payment_count | smallint(5) unsigned | NO | | 0 | |
|
||||
// | payment_total | int(10) unsigned | NO | | 0 | |
|
||||
// | user_birthday | varchar(50) | NO | | | |
|
||||
// | user_phone | varchar(50) | NO | | | |
|
||||
// | user_picture | varchar(255) | NO | | | |
|
||||
// | user_icon | varchar(255) | NO | | | |
|
||||
// | user_messenger | varchar(255) | NO | | | |
|
||||
// | user_homepage | varchar(255) | NO | | | |
|
||||
// | user_blog | varchar(255) | NO | | | |
|
||||
// | user_sex | tinyint(3) | NO | | 0 | |
|
||||
// | home_postcode | varchar(20) | NO | | | |
|
||||
// | home_address1 | varchar(255) | NO | | | |
|
||||
// | home_address2 | varchar(255) | NO | | | |
|
||||
// | home_tel | varchar(50) | NO | | | |
|
||||
// | office_postcode | varchar(20) | NO | | | |
|
||||
// | office_address1 | varchar(255) | NO | | | |
|
||||
// | office_address2 | varchar(255) | NO | | | |
|
||||
// | office_tel | varchar(50) | NO | | | |
|
||||
// | office_fax | varchar(50) | NO | | | |
|
||||
// | company_name | varchar(255) | NO | | | |
|
||||
// | job_title | varchar(255) | NO | | | |
|
||||
// | gps_latitude | decimal(10,8) | NO | | 0.00000000 | |
|
||||
// | gps_longitude | decimal(11,8) | NO | | 0.00000000 | |
|
||||
// | allow_mailing | tinyint(3) unsigned | NO | MUL | 1 | |
|
||||
// | allow_message | tinyint(3) unsigned | NO | | 1 | |
|
||||
// | allow_push | tinyint(3) unsigned | NO | | 1 | |
|
||||
// | allow_sms | tinyint(3) unsigned | NO | | 1 | |
|
||||
// | followers | int(10) unsigned | NO | | 0 | |
|
||||
// | following | int(10) unsigned | NO | | 0 | |
|
||||
// | new_memo | smallint(5) unsigned | NO | | 0 | |
|
||||
// | login_count | int(10) unsigned | NO | | 0 | |
|
||||
// | write_count | int(10) unsigned | NO | | 0 | |
|
||||
// | reply_count | int(10) unsigned | NO | | 0 | |
|
||||
// | comment_count | int(10) unsigned | NO | | 0 | |
|
||||
// | send_count | int(10) unsigned | NO | | 0 | |
|
||||
// | api_count | int(10) unsigned | NO | | 0 | |
|
||||
// | item1_count | int(10) unsigned | NO | | 0 | |
|
||||
// | item2_count | int(10) unsigned | NO | | 0 | |
|
||||
// | item3_count | int(10) unsigned | NO | | 0 | |
|
||||
// | review_count | int(10) unsigned | NO | | 0 | |
|
||||
// | review_star_sum | int(10) unsigned | NO | | 0 | |
|
||||
// | reg_mail | tinyint(3) | NO | | 0 | |
|
||||
// | reg_phone | tinyint(3) | NO | | 0 | |
|
||||
// | push_pid | int(10) unsigned | NO | | 0 | |
|
||||
// | reg_date | datetime | NO | MUL | 0000-00-00 00:00:00 | |
|
||||
// | last_login | datetime | NO | MUL | 0000-00-00 00:00:00 | |
|
||||
// | user_memo | varchar(255) | NO | | | |
|
||||
// | admin_memo | varchar(255) | NO | | | |
|
||||
// | recommender_id | varchar(255) | NO | | | |
|
||||
// | user_auth_key | varchar(255) | NO | | | |
|
||||
// | user_access_token | varchar(255) | NO | | | |
|
||||
// | ext1 | varchar(255) | NO | | | |
|
||||
// | ext2 | varchar(255) | NO | | | |
|
||||
// | ext3 | varchar(255) | NO | | | |
|
||||
// | ext4 | varchar(255) | NO | | | |
|
||||
// | ext5 | varchar(255) | NO | | | |
|
||||
// | ext6 | varchar(255) | NO | | | |
|
||||
// | ext7 | varchar(255) | NO | | | |
|
||||
// | ext8 | varchar(255) | NO | | | |
|
||||
// | ext9 | varchar(255) | NO | | | |
|
||||
// | ext10 | varchar(255) | NO | | | |
|
||||
// | ext11 | varchar(255) | NO | | | |
|
||||
// | ext12 | varchar(255) | NO | | | |
|
||||
// | ext13 | varchar(255) | NO | | | |
|
||||
// | ext14 | varchar(255) | NO | | | |
|
||||
// | ext15 | varchar(255) | NO | | | |
|
||||
// | ext16 | varchar(255) | NO | | | |
|
||||
// | ext17 | varchar(255) | NO | | | |
|
||||
// | ext18 | varchar(255) | NO | | | |
|
||||
// | ext19 | varchar(255) | NO | | | |
|
||||
// | ext20 | varchar(255) | NO | | | |
|
||||
// +-------------------+----------------------+------+-----+---------------------+----------------+
|
||||
|
||||
class UserModel extends CommonModel
|
||||
{
|
||||
const TABLE = "mb_users";
|
||||
const PK = "pid";
|
||||
const TITLE = "user_name";
|
||||
protected $table = self::TABLE;
|
||||
protected $primaryKey = self::PK;
|
||||
protected $returnType = UserEntity::class;
|
||||
protected $allowedFields = [
|
||||
"user_id",
|
||||
"passwd",
|
||||
self::TITLE,
|
||||
"user_email",
|
||||
"user_state",
|
||||
"user_level",
|
||||
"user_point"
|
||||
];
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
public function getTitleField(): string
|
||||
{
|
||||
return self::TITLE;
|
||||
}
|
||||
public function getFieldRule(string $field, array $rules): array
|
||||
{
|
||||
switch ($field) {
|
||||
case "user_id":
|
||||
case "passwd":
|
||||
$rules[$field] = "required|trim|string";
|
||||
break;
|
||||
case "user_state":
|
||||
$rules[$field] = "if_exist|trim|string";
|
||||
break;
|
||||
case "user_email":
|
||||
$rules[$field] = "if_exist|trim|valid_email";
|
||||
break;
|
||||
case "user_level":
|
||||
case "user_point":
|
||||
$rules[$field] = "if_exist|numeric";
|
||||
break;
|
||||
default:
|
||||
$rules = parent::getFieldRule($field, $rules);
|
||||
break;
|
||||
}
|
||||
return $rules;
|
||||
}
|
||||
|
||||
public function getEntityByPK(int $uid): null|UserEntity
|
||||
{
|
||||
$this->where($this->getPKField(), $uid);
|
||||
return $this->getEntity();
|
||||
}
|
||||
public function getEntityByID(string $id): null|UserEntity
|
||||
{
|
||||
$this->where('user_id', $id);
|
||||
return $this->getEntity();
|
||||
}
|
||||
//create용
|
||||
public function create(array $formDatas = []): UserEntity
|
||||
{
|
||||
return $this->create_process(new UserEntity(), $formDatas);
|
||||
}
|
||||
//modify용
|
||||
public function modify(UserEntity $entity, array $formDatas): UserEntity
|
||||
{
|
||||
return $this->modify_process($entity, $formDatas);
|
||||
}
|
||||
public function getEntityByLoginCheck(string $id, string $password): null|UserEntity
|
||||
{
|
||||
$this->where('user_id', $id);
|
||||
$this->where('passwd', password_hash($password, PASSWORD_DEFAULT));
|
||||
return $this->getEntity();
|
||||
}
|
||||
|
||||
private function getLevelByPoint(UserEntity $entity): int
|
||||
{
|
||||
//Admin용 Level로는 변경불가
|
||||
if ($entity->getLevel() == getenv('mangboard.admin.level')) {
|
||||
log_message("notice", "Admin용 Level을 변경하실수 없습니다.");
|
||||
return $entity->getLevel();
|
||||
}
|
||||
|
||||
//사용자 Point별 Level 계산
|
||||
$levelup_point = getenv('mangboard.level.up.point.unit');
|
||||
$level = intval($entity->getPoint() / $levelup_point * $levelup_point / $levelup_point);
|
||||
|
||||
//운영자면 7~9
|
||||
if (getenv('mangboard.level.manager.min') <= $level && $level <= getenv('mangboard.level.manager.max')) {
|
||||
$level = $level < getenv('mangboard.level.manager.min') ? getenv('mangboard.level.manager.min') : $level;
|
||||
$level = getenv('mangboard.level.manager.max') < $level ? getenv('mangboard.level.manager.max') : $level;
|
||||
}
|
||||
// echo "point:" . $entity->getPoint() . ",level:" . $level . "\n";
|
||||
|
||||
//사용자 Level 1~5;
|
||||
if (getenv('mangboard.level.user.min') <= $level && $level <= getenv('mangboard.level.user.max')) {
|
||||
$level = $level < getenv('mangboard.level.user.min') ? getenv('mangboard.level.user.min') : $level;
|
||||
$level = getenv('mangboard.level.user.max') < $level ? getenv('mangboard.level.user.max') : $level;
|
||||
}
|
||||
// echo "point:" . $entity->getPoint() . ",level:" . $level . "\n";
|
||||
return $level;
|
||||
}
|
||||
|
||||
public function setPoint(UserEntity $entity, int $point, $sign = '+'): UserEntity
|
||||
{
|
||||
switch ($sign) {
|
||||
case '-':
|
||||
if ($point < $point) {
|
||||
throw new \Exception("기존포인트:{$point}가 감소 포인트:-{$point} 작습니다.\n");
|
||||
}
|
||||
$point = $point - $point;
|
||||
break;
|
||||
case '+':
|
||||
$point = $point + $point;
|
||||
break;
|
||||
default:
|
||||
throw new \Exception(__FUNCTION__ . "에서는 {$sign}은 사용할수 없습니다.\n");
|
||||
// break;
|
||||
}
|
||||
|
||||
//기존정보와 Point값이 다르면 저장
|
||||
if ($entity->getPoint() != $point) {
|
||||
$formDatas = ["point" => $point];
|
||||
$entity = $this->modify($entity, $formDatas);
|
||||
log_message("notice", __FUNCTION__ . "=>{$entity->getTitle()}님의 Point가 {$entity->getPoint()}에서 {$point}로 변경되었습니다.");
|
||||
}
|
||||
return $this->setLevel($entity, $this->getLevelByPoint($entity));
|
||||
}
|
||||
public function setLevel(UserEntity $entity, int $level): UserEntity
|
||||
{
|
||||
//기존정보와 Level값이 다르면 저장
|
||||
if ($entity->getLevel() != $level) {
|
||||
$formDatas = ["level" => $level];
|
||||
$entity = $this->modify($entity, $formDatas);
|
||||
log_message("notice", __FUNCTION__ . "=>{$entity->getTitle()}님의 Level이 {$entity->getLevel()}에서 {$level}로 변경되었습니다.");
|
||||
}
|
||||
return $entity;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user