[色子游戏]玩家-优化样式

This commit is contained in:
2026-03-03 14:36:04 +08:00
parent fc5f8bb1ca
commit a54f4623c5
8 changed files with 276 additions and 95 deletions

View File

@@ -39,6 +39,9 @@ class DicePlayerController extends BaseController
$where = $request->more([
['username', ''],
['name', ''],
['status', ''],
['coin', ''],
['is_up', ''],
]);
$query = $this->logic->search($where);
$data = $this->logic->getList($query);
@@ -99,6 +102,26 @@ class DicePlayerController extends BaseController
}
}
/**
* 仅更新状态(列表内开关用)
* @param Request $request
* @return Response
*/
#[Permission('大富翁-玩家修改', 'dice:player:index:update')]
public function updateStatus(Request $request): Response
{
$id = $request->input('id');
$status = $request->input('status');
if ($id === null || $id === '') {
return $this->fail('缺少 id');
}
if ($status === null || $status === '') {
return $this->fail('缺少 status');
}
$this->logic->edit($id, ['status' => (int) $status]);
return $this->success('修改成功');
}
/**
* 删除数据
* @param Request $request

View File

@@ -16,6 +16,9 @@ use app\dice\model\player\DicePlayer;
*/
class DicePlayerLogic extends BaseLogic
{
/** 密码加密盐(可与 config 统一) */
private const PASSWORD_SALT = 'dice_player_salt_2024';
/**
* 构造函数
*/
@@ -24,4 +27,35 @@ class DicePlayerLogic extends BaseLogic
$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);
}
}

View File

@@ -62,4 +62,34 @@ class DicePlayer extends BaseModel
$query->where('name', 'like', '%'.$value.'%');
}
/**
* 状态 搜索
*/
public function searchStatusAttr($query, $value)
{
if ($value !== '' && $value !== null) {
$query->where('status', '=', $value);
}
}
/**
* 平台币 搜索
*/
public function searchCoinAttr($query, $value)
{
if ($value !== '' && $value !== null) {
$query->where('coin', '=', $value);
}
}
/**
* 倍率 搜索
*/
public function searchIs_upAttr($query, $value)
{
if ($value !== '' && $value !== null) {
$query->where('is_up', '=', $value);
}
}
}

View File

@@ -36,7 +36,7 @@ class DicePlayerValidate extends BaseValidate
];
/**
* 定义场景
* 定义场景update 时密码可选,不填则不修改)
*/
protected $scene = [
'save' => [
@@ -49,7 +49,6 @@ class DicePlayerValidate extends BaseValidate
'update' => [
'username',
'name',
'password',
'status',
'coin',
],