49 lines
1.2 KiB
PHP
49 lines
1.2 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace app\admin\model;
|
|
|
|
use app\common\model\traits\TimestampInteger;
|
|
use support\think\Model;
|
|
use think\model\relation\BelongsTo;
|
|
|
|
class User extends Model
|
|
{
|
|
use TimestampInteger;
|
|
|
|
protected string $table = 'user';
|
|
protected string $pk = 'id';
|
|
protected bool $autoWriteTimestamp = true;
|
|
|
|
public function getAvatarAttr($value): string
|
|
{
|
|
return full_url($value ?? '', false, config('buildadmin.default_avatar'));
|
|
}
|
|
|
|
public function setAvatarAttr($value): string
|
|
{
|
|
return $value === full_url('', false, config('buildadmin.default_avatar')) ? '' : $value;
|
|
}
|
|
|
|
public function getMoneyAttr($value): string
|
|
{
|
|
return bcdiv((string) $value, '100', 2);
|
|
}
|
|
|
|
public function setMoneyAttr($value): string
|
|
{
|
|
return bcmul((string) $value, '100', 2);
|
|
}
|
|
|
|
public function userGroup(): BelongsTo
|
|
{
|
|
return $this->belongsTo(UserGroup::class, 'group_id');
|
|
}
|
|
|
|
public function resetPassword(int|string $uid, string $newPassword): int
|
|
{
|
|
return $this->where(['id' => $uid])->update(['password' => hash_password($newPassword), 'salt' => '']);
|
|
}
|
|
}
|