MobileLogin.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <?php
  2. namespace api\modules\v1\forms;
  3. use Yii;
  4. use yii\base\Model;
  5. use common\enums\MemberTypeEnum;
  6. use common\helpers\RegularHelper;
  7. use common\enums\SmsUsageEnum;
  8. use common\enums\AccessTokenGroupEnum;
  9. /**
  10. * Class MobileLogin
  11. * @package api\modules\v1\models
  12. * @author jianyan74 <751393839@qq.com>
  13. */
  14. class MobileLogin extends Model
  15. {
  16. /**
  17. * @var
  18. */
  19. public $mobile;
  20. /**
  21. * @var
  22. */
  23. public $code;
  24. /**
  25. * @var
  26. */
  27. public $group;
  28. /**
  29. * @var
  30. */
  31. protected $_user;
  32. /**
  33. * @return array
  34. */
  35. public function rules()
  36. {
  37. return [
  38. [['mobile', 'code', 'group'], 'required'],
  39. ['code', 'filter', 'filter' => 'trim'],
  40. ['code', '\common\models\validators\SmsCodeValidator', 'usage' => SmsUsageEnum::LOGIN],
  41. ['mobile', 'match', 'pattern' => RegularHelper::mobile(), 'message' => '请输入正确的手机号'],
  42. ['mobile', 'validateMobile'],
  43. ['group', 'in', 'range' => AccessTokenGroupEnum::getKeys()]
  44. ];
  45. }
  46. /**
  47. * @return array
  48. */
  49. public function attributeLabels()
  50. {
  51. return [
  52. 'mobile' => '手机号码',
  53. 'code' => '验证码',
  54. 'group' => '组别',
  55. ];
  56. }
  57. /**
  58. * @param $attribute
  59. */
  60. public function validateMobile($attribute)
  61. {
  62. if (!$this->getUser()) {
  63. $this->addError($attribute, '找不到用户');
  64. }
  65. }
  66. /**
  67. * 获取用户信息
  68. *
  69. * @return mixed|null|static
  70. */
  71. public function getUser()
  72. {
  73. if ($this->_user == false) {
  74. $this->_user = Yii::$app->services->member->findByCondition([
  75. 'mobile' => $this->mobile,
  76. 'type' => MemberTypeEnum::MEMBER
  77. ]);
  78. }
  79. return $this->_user;
  80. }
  81. }
粤ICP备19079148号