OpenDemoForm.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. namespace backend\models\forms;
  3. use backend\models\OpenApi;
  4. use yii\base\Model;
  5. class OpenDemoForm extends Model
  6. {
  7. public $name;
  8. public $email;
  9. public $mobile;
  10. public $level;
  11. public $agree;
  12. private $_login;
  13. private $_password;
  14. /**
  15. * @inheritdoc
  16. */
  17. public function rules()
  18. {
  19. return [
  20. ['name', 'required', 'message' => '请填写姓名'],
  21. ['email', 'required', 'message' => '请填写电子邮箱'],
  22. ['email', 'email'],
  23. ['mobile', 'required', 'message' => '请填写手机号码'],
  24. ['mobile', 'match', 'pattern' => '/^1(3[0-9]|4[57]|5[0-35-9]|7[01678]|8[0-9])\d{8}$/'],
  25. ['level', 'required'],
  26. ['level', 'in', 'range' => [100, 200]],
  27. ['agree', 'boolean', 'trueValue' => 'on'],
  28. ];
  29. }
  30. /**
  31. * @return bool
  32. */
  33. public function openDemo()
  34. {
  35. if ($this->validate()) {
  36. $api = new OpenApi();
  37. $data = [];
  38. $data['username'] = $this->name;
  39. $data['email'] = $this->email;
  40. $data['phone'] = $this->mobile;
  41. $result = $api->openDemo($data);
  42. if ($result['code'] == 1) {
  43. $this->_login = isset($result['data']['login']) ? $result['data']['login'] : 0;
  44. $this->_password = isset($result['data']['password']) ? $result['data']['password'] : '';
  45. return true;
  46. } else {
  47. if (is_array($result['message'])) {
  48. $this->addErrors($result['message']);
  49. } else {
  50. $this->addError('name', $result['message']);
  51. }
  52. }
  53. }
  54. return !$this->hasErrors();
  55. }
  56. /**
  57. * @return int
  58. */
  59. public function getLogin()
  60. {
  61. return $this->_login;
  62. }
  63. /**
  64. * @return string
  65. */
  66. public function getPassword()
  67. {
  68. return $this->_password;
  69. }
  70. }