62 lines
1.6 KiB
PHP
62 lines
1.6 KiB
PHP
<?php
|
||
// +----------------------------------------------------------------------
|
||
// | saiadmin [ saiadmin快速开发框架 ]
|
||
// +----------------------------------------------------------------------
|
||
// | Author: your name
|
||
// +----------------------------------------------------------------------
|
||
namespace app\dice\logic\player;
|
||
|
||
use plugin\saiadmin\basic\think\BaseLogic;
|
||
use plugin\saiadmin\exception\ApiException;
|
||
use plugin\saiadmin\utils\Helper;
|
||
use app\dice\model\player\DicePlayer;
|
||
|
||
/**
|
||
* 大富翁-玩家逻辑层
|
||
*/
|
||
class DicePlayerLogic extends BaseLogic
|
||
{
|
||
/** 密码加密盐(可与 config 统一) */
|
||
private const PASSWORD_SALT = 'dice_player_salt_2024';
|
||
|
||
/**
|
||
* 构造函数
|
||
*/
|
||
public function __construct()
|
||
{
|
||
$this->model = new DicePlayer();
|
||
}
|
||
|
||
/**
|
||
* 添加数据(密码 md5+salt 加密)
|
||
*/
|
||
public function add(array $data): mixed
|
||
{
|
||
if (!empty($data['password'])) {
|
||
$data['password'] = $this->hashPassword($data['password']);
|
||
}
|
||
return parent::add($data);
|
||
}
|
||
|
||
/**
|
||
* 修改数据(仅当传入 password 时用 md5+salt 加密后更新)
|
||
*/
|
||
public function edit($id, array $data): mixed
|
||
{
|
||
if (isset($data['password']) && $data['password'] !== '') {
|
||
$data['password'] = $this->hashPassword($data['password']);
|
||
} else {
|
||
unset($data['password']);
|
||
}
|
||
return parent::edit($id, $data);
|
||
}
|
||
|
||
/**
|
||
* 密码加密:md5(salt . password)
|
||
*/
|
||
private function hashPassword(string $password): string
|
||
{
|
||
return md5(self::PASSWORD_SALT . $password);
|
||
}
|
||
}
|