UserBrokerageValidate.php 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. namespace app\validate\admin;
  12. use app\common\repositories\user\UserBrokerageRepository;
  13. use think\Validate;
  14. class UserBrokerageValidate extends Validate
  15. {
  16. protected $failException = true;
  17. protected $rule = [
  18. 'brokerage_level|会员等级' => 'require|integer|>:0',
  19. 'brokerage_name|会员名称' => 'require|max:16',
  20. 'brokerage_icon|会员图标' => 'require',
  21. 'brokerage_rule|会员升级规则' => 'requireIf:type,0|array|checkBrokerageRule',
  22. 'extension_one|一级佣金比例' => 'requireIf:type,0|float|>=:0|<=:100',
  23. 'extension_two|二级佣金比例' => 'requireIf:type,0|float|>=:0|<=:100',
  24. 'image|背景图' => 'requireIf:type,1|max:128',
  25. 'value|会员成长值' => 'requireIf:type,1|float|>=:0',
  26. 'type|类型' => 'require|in:0,1',
  27. ];
  28. public function checkBrokerageRule($value, $rlue, $data)
  29. {
  30. if (!$data['type']) {
  31. $types = UserBrokerageRepository::BROKERAGE_RULE_TYPE;
  32. if (count($types) != count($value)) {
  33. return '请输入正确的升级任务';
  34. }
  35. $flag = 0;
  36. foreach ($types as $type) {
  37. $val = $value[$type] ?? '';
  38. if (!is_array($val) || !isset($val['name'], $val['num'], $val['info']) || count($val) != 3) return '请输入正确的升级任务';
  39. if ($val['num'] < 0)
  40. return '请输入正确的任务数量';
  41. if ($val['num'] > 0 && !$val['name']) return '请输入任务名称';
  42. if ($val['num'] > 0) $flag++;
  43. }
  44. if (!$flag) return '请至少设置一个升级任务';
  45. }
  46. return true;
  47. }
  48. }