AutoRegPhone.php 978 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. namespace App\Module\User\Validator;
  3. use App\Module\User\Models\UserPhone;
  4. use App\Module\User\User;
  5. use UCore\Validator;
  6. use function _\uniq;
  7. /**
  8. * 手机自动注册
  9. */
  10. class AutoRegPhone extends Validator
  11. {
  12. public function validate(mixed $value, array $data): bool
  13. {
  14. $userPhone = UserPhone::query()
  15. ->where('phone', '=', $value)
  16. ->first();
  17. if (!$userPhone) {
  18. // 注册,绑定手机号码
  19. /**
  20. * @var Api\CanPhoneLogin $api
  21. */
  22. $api = Api::getApiById(1,\App\Module\Outside\Enums\Api::CanPhoneLogin);
  23. $res = $api->request($value);
  24. if(!$res){
  25. return false;
  26. }
  27. $user = User::createPhone($value, uniqid());
  28. }else{
  29. $user = $userPhone->user;
  30. }
  31. $name = $this->args[0] ?? "user";
  32. $this->validationSet($name, $user);
  33. return true;
  34. }
  35. }