new-admin-api/app/validate/admin/UserBrokerageValidate.php

49 lines
2.0 KiB
PHP

<?php
namespace app\validate\admin;
use app\common\repositories\user\UserBrokerageRepository;
use think\Validate;
class UserBrokerageValidate extends Validate
{
protected $failException = true;
protected $rule = [
'brokerage_level|会员等级' => 'require|integer|>:0',
'brokerage_name|会员名称' => 'require|max:16',
// 'brokerage_icon|会员图标' => 'require',
'brokerage_rule|会员升级规则' => 'requireIf:type,0|array',// checkBrokerageRule todo: 取消升级条件验证 如果不存在升级条件则不允许升级到该等级
'extension_one|一级佣金比例' => 'requireIf:type,0|float|>=:0|<=:100',
'extension_two|二级佣金比例' => 'requireIf:type,0|float|>=:0|<=:100',
'image|背景图' => 'requireIf:type,1|max:128',
'value|会员成长值' => 'requireIf:type,1|float|>=:0',
'type|类型' => 'require|in:0,1',
];
// todo 2023-12-25 重构升级条件,这里的验证不在使用 因此未修改验证内容,这里的验证已失效
public function checkBrokerageRule($value, $rlue, $data){
if (!$data['type']) {
// 基本升级条件:不在列表中的升级条件,不进行统一升级条件判断
$types = UserBrokerageRepository::BROKERAGE_RULE_TYPE;
// if (count($types) != count($value)) return '升级任务设置错误';
$flag = 0;
foreach ($types as $type) {
$val = $value[$type] ?? '';
if (!is_array($val) || !isset($val['name'], $val['num'], $val['info']) || count($val) != 3) return '请输入正确的升级任务';
if ($val['num'] < 0) return '请输入正确的任务数量';
if ($val['num'] > 0 && !$val['name']) return '请输入任务名称';
if ($val['num'] > 0) $flag++;
}
if (!$flag) return '请至少设置一个升级任务';
}
return true;
}
}