MVC/lib/Model/Mangboard/UserModel.php
2024-08-23 15:17:09 +09:00

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