58 lines
1.7 KiB
PHP
58 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace lib\Model\Mangboard;
|
|
|
|
use lib\Entity\Mangboard\UserEntity;
|
|
|
|
class UserModel extends BaseModel
|
|
{
|
|
protected $resultMode = UserEntity::class;
|
|
public function __construct()
|
|
{
|
|
parent::__construct("pid");
|
|
} //
|
|
|
|
final public function getTable()
|
|
{
|
|
return 'mb_users';
|
|
}
|
|
|
|
public function setPoint(UserEntity $entity, int $point, $sign = '+'): UserEntity
|
|
{
|
|
switch (strtolower($sign)) {
|
|
case '-':
|
|
if ($entity->getPoint() < $point) {
|
|
throw new \Exception("기존포인트:{$entity->getPoint()}가 감소 포인트:-{$point} 작습니다.\n");
|
|
}
|
|
$entity->setPoint($entity->getPoint() - $point);
|
|
break;
|
|
case '+':
|
|
$entity->setPoint($entity->getPoint() + $point);
|
|
break;
|
|
default:
|
|
throw new \Exception("{$sign}에 해당하는 작업은 수행할수 없습니다.\n");
|
|
// break;
|
|
}
|
|
return $this->save($entity);
|
|
}
|
|
|
|
final public function setLevel(UserEntity $entity, int $level): UserEntity
|
|
{
|
|
//관리자면 변경불가
|
|
if ($entity->getUserID() == MANGBOARD_ADMIN_ID) {
|
|
return $entity;
|
|
}
|
|
|
|
//운영자면 변경불가(7이상이면 변경불가)
|
|
if (MANGBOARD_LEVEL_OPERATOR <= $entity->getLevel()) {
|
|
return $entity;
|
|
}
|
|
|
|
//사용자 Level 1~5;
|
|
$level = $level < MANGBOARD_LEVEL_USER_MIN ? MANGBOARD_LEVEL_USER_MIN : $level;
|
|
$level = MANGBOARD_LEVEL_USER_MAX < $level ? MANGBOARD_LEVEL_USER_MAX : $level;
|
|
$entity->setLevel($level);
|
|
return $this->save($entity);
|
|
}
|
|
} //Class
|