66 lines
1.9 KiB
PHP
66 lines
1.9 KiB
PHP
<?php
|
||
// +----------------------------------------------------------------------
|
||
// | saiadmin [ saiadmin快速开发框架 ]
|
||
// +----------------------------------------------------------------------
|
||
// | Author: your name
|
||
// +----------------------------------------------------------------------
|
||
namespace app\dice\validate\reward_config;
|
||
|
||
use plugin\saiadmin\basic\BaseValidate;
|
||
|
||
/**
|
||
* 奖励配置验证器
|
||
* weight 仅当 tier=BIGWIN 时可设定,且严格限制 0-100(%)
|
||
*/
|
||
class DiceRewardConfigValidate extends BaseValidate
|
||
{
|
||
/**
|
||
* 定义验证规则
|
||
*/
|
||
protected $rule = [
|
||
'grid_number' => 'require',
|
||
'ui_text' => 'require',
|
||
'real_ev' => 'require',
|
||
'tier' => 'require',
|
||
'weight' => 'checkWeight',
|
||
];
|
||
|
||
/**
|
||
* 定义错误信息
|
||
*/
|
||
protected $message = [
|
||
'grid_number' => '色子点数必须填写',
|
||
'ui_text' => '前端显示文本必须填写',
|
||
'real_ev' => '真实资金结算必须填写',
|
||
'tier' => '所属档位必须填写',
|
||
'weight' => '权重仅 tier=BIGWIN 时可设定,且必须为 0-100',
|
||
];
|
||
|
||
/**
|
||
* 定义场景
|
||
*/
|
||
protected $scene = [
|
||
'save' => ['grid_number', 'ui_text', 'real_ev', 'tier', 'weight'],
|
||
'update' => ['grid_number', 'ui_text', 'real_ev', 'tier', 'weight'],
|
||
];
|
||
|
||
/**
|
||
* weight:仅 tier=BIGWIN 时可设定,严格限制 0-100(%)
|
||
*/
|
||
protected function checkWeight($value, $rule = '', $data = []): bool
|
||
{
|
||
$tier = isset($data['tier']) ? (string) $data['tier'] : '';
|
||
if ($tier !== 'BIGWIN') {
|
||
return true;
|
||
}
|
||
$num = is_numeric($value) ? (float) $value : null;
|
||
if ($num === null) {
|
||
return false;
|
||
}
|
||
if ($num < 0 || $num > 100) {
|
||
return false;
|
||
}
|
||
return true;
|
||
}
|
||
}
|