UserBrokerageValidate.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. namespace app\validate\admin;
  3. use app\common\repositories\user\UserBrokerageRepository;
  4. use think\Validate;
  5. class UserBrokerageValidate extends Validate
  6. {
  7. protected $failException = true;
  8. protected $rule = [
  9. 'brokerage_level|会员等级' => 'require|integer|>:0',
  10. 'brokerage_name|会员名称' => 'require|max:16',
  11. 'brokerage_icon|会员图标' => 'require',
  12. 'brokerage_rule|会员升级规则' => 'require|array|checkBrokerageRule',
  13. 'extension_one|一级佣金比例' => 'require|float|>=:0|<=:100',
  14. 'extension_two|二级佣金比例' => 'require|float|>=:0|<=:100',
  15. ];
  16. public function checkBrokerageRule($data)
  17. {
  18. $types = UserBrokerageRepository::BROKERAGE_RULE_TYPE;
  19. if (count($types) != count($data)) {
  20. return '请输入正确的升级任务';
  21. }
  22. $flag = 0;
  23. foreach ($types as $type) {
  24. $val = $data[$type] ?? '';
  25. if (!is_array($val) || !isset($val['name'], $val['num'], $val['info']) || count($val) != 3) return '请输入正确的升级任务';
  26. if ($val['num'] < 0)
  27. return '请输入正确的任务数量';
  28. if ($val['num'] > 0 && !$val['name']) return '请输入任务名称';
  29. if ($val['num'] > 0) $flag++;
  30. }
  31. if (!$flag) return '请至少设置一个升级任务';
  32. return true;
  33. }
  34. }