97 lines
3.2 KiB
PHP
97 lines
3.2 KiB
PHP
<?php
|
|
|
|
namespace lib\Controller\Mangboard;
|
|
|
|
use lib\Entity\Mangboard\UserEntity;
|
|
|
|
class UserController extends BaseController
|
|
{
|
|
private $_model = null;
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
$this->_model = $this->getModel("Mangboard\\UserModel");
|
|
} //
|
|
|
|
final public function setPoint($params)
|
|
{
|
|
if (count($params) != 3) {
|
|
return "사용법: php app.php Mangboard\UserController setPoint 아이디 포인트 +|-\n" . var_export($params);
|
|
}
|
|
$id = $params[0];
|
|
|
|
$point = intval($params[1]);
|
|
if (!is_int($point)) {
|
|
return "{$params[1]}은 숫자형식이 아닙니다.";
|
|
}
|
|
$point = intval($params[1]);
|
|
switch ($params[2]) {
|
|
case '+':
|
|
case '-':
|
|
$sign = $params[2];
|
|
break;
|
|
default:
|
|
return "형식오류 +/- 가 아닙니다";
|
|
// break;
|
|
}
|
|
$this->_model->where("user_id", $id);
|
|
$entity = $this->_model->getEntity();
|
|
if (!$entity) {
|
|
return "[{$id}]에 해당하는 회원은 없습니다";
|
|
}
|
|
$old_point = $entity->getPoint();
|
|
if (is_int($point)) {
|
|
$entity = $this->_model->setPoint($entity, $point, $sign);
|
|
}
|
|
return "[{$entity}] 회원님의 포인트는 {$old_point}->{$entity->getPoint()} 입니다.";
|
|
} //
|
|
|
|
final public function getPoint($params)
|
|
{
|
|
if (count($params) == 1) {
|
|
$id = $params[0];
|
|
if ($id) {
|
|
$this->_model->where("user_id", $id);
|
|
$entity = $this->_model->getEntity();
|
|
if (!$entity) {
|
|
return "[{$id}]에 해당하는 회원은 없습니다";
|
|
}
|
|
}
|
|
}
|
|
$msgs = [];
|
|
foreach ($this->_model->getEntitys() as $entity) {
|
|
$msgs[] = "[{$entity}] 회원님의 포인트는 {$entity->getPoint()} 입니다.";
|
|
}
|
|
return implode("\n", $msgs);
|
|
} //
|
|
|
|
private function setLevel(UserEntity $entity, int $level)
|
|
{
|
|
$old_level = $entity->getLevel();
|
|
$entity = $this->_model->setLevel($entity, $level);
|
|
return "[{$entity}] 회원님의 레벨 {$old_level} -> {$entity->getLevel()}로 변경되었습니다.";
|
|
}
|
|
final public function checkLevel($id = false)
|
|
{
|
|
$entitys = [];
|
|
if ($id) {
|
|
$this->_model->where("user_id", $id);
|
|
$entity = $this->_model->getEntity();
|
|
if (!$entity) {
|
|
return "[{$id}]에 해당하는 회원은 없습니다";
|
|
}
|
|
$entitys[] = $entity;
|
|
} else {
|
|
$entitys = $this->_model->getEntitys();
|
|
}
|
|
$msgs = [];
|
|
foreach ($entitys as $entity) {
|
|
$level = intdiv($entity->getPoint() / MANGBOARD_POINT_UNIT)+1;
|
|
if ($entity->getLevel() != $level) {
|
|
$msgs[] = $this->setLevel($entity, $level);
|
|
}
|
|
}
|
|
return PHP_EOL . "------" . date('Y/m/d-H:i') . "---------" . PHP_EOL . implode(PHP_EOL, $msgs) . PHP_EOL . "------------------------------" . PHP_EOL;
|
|
} //
|
|
}
|