1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- <?php
- namespace backend\forms;
- use common\logic\Amqp\Cache;
- use common\logic\Amqp\Message;
- use components\Exception;
- class MessageForm extends BaseForm
- {
- public $email;
- public $password;
- public $type;
- /**
- * 登录方式
- */
- const TYPE_SMS = 'sms';
- const TYPE_EMAIL = 'email';
- /**
- * 绑定队列名称
- * @var array
- */
- public static $queueMap = [
- 'login' => 'login'
- ];
- public function rules()
- {
- return [
- [['email', 'password', 'type'], 'safe', 'on' => 'login'],
- [['email', 'password', 'type'], 'trim', 'on' => 'login'],
- [['email', 'password'], 'required', 'on' => 'login'],
- ['email', 'email', 'on' => 'login'],
- ['type', 'default', 'value' => static::TYPE_EMAIL, 'on' => 'login'],
- ['type', 'in', 'range' => [static::TYPE_EMAIL, static::TYPE_SMS], 'on' => 'login']
- ];
- }
- public static function getQueueName($scenario)
- {
- if (isset(self::$queueMap[$scenario])) {
- return self::$queueMap[$scenario];
- }
- return '';
- }
- /**
- * [发送消息]
- * @author: libingke
- * @return array
- * @throws Exception
- */
- public function sendMessage()
- {
- $body = json_encode([
- 'email' => $this->email,
- 'password' => $this->password,
- 'type' => $this->type
- ]);
- $queue = MessageForm::getQueueName($this->scenario);
- $data = [];
- try {
- $message = new Message($queue);
- $corrId = $message->send($body, $queue);
- Cache::setData($corrId, Cache::STATUS_SEND_OK); //set: status = send ok
- $data[] = $corrId;
- } catch (\common\logic\Amqp\Exception $e) {
- throw new Exception($e->getCode(), $e->getMessage());
- }
- return $data;
- }
- }
|