|
@@ -1,11 +1,12 @@
|
|
<?php
|
|
<?php
|
|
namespace backend\controllers;
|
|
namespace backend\controllers;
|
|
|
|
|
|
|
|
+use backend\models\Jobs;
|
|
use backend\forms\MessageForm;
|
|
use backend\forms\MessageForm;
|
|
use common\logic\Amqp\Cache;
|
|
use common\logic\Amqp\Cache;
|
|
-use components\Exception;
|
|
|
|
use common\logic\Amqp\Message;
|
|
use common\logic\Amqp\Message;
|
|
use common\logic\Amqp\Queue;
|
|
use common\logic\Amqp\Queue;
|
|
|
|
+use components\Exception;
|
|
use Yii;
|
|
use Yii;
|
|
|
|
|
|
class MessageController extends BaseController
|
|
class MessageController extends BaseController
|
|
@@ -46,53 +47,78 @@ class MessageController extends BaseController
|
|
*/
|
|
*/
|
|
public function actionSend()
|
|
public function actionSend()
|
|
{
|
|
{
|
|
- /* 选择对应表单 start */
|
|
|
|
- $form = Yii::$app->request->get('form');
|
|
|
|
- switch ($form)
|
|
|
|
- {
|
|
|
|
- //发送登录消息
|
|
|
|
- case 'licai_login':
|
|
|
|
- $scenario = 'login';
|
|
|
|
- break;
|
|
|
|
-
|
|
|
|
- case '':
|
|
|
|
- throw new Exception(2201);
|
|
|
|
- break;
|
|
|
|
-
|
|
|
|
- default:
|
|
|
|
- throw new Exception(2202);
|
|
|
|
- }
|
|
|
|
- /* 选择对应表单 end */
|
|
|
|
|
|
+ $sign = Yii::$app->request->get('sign');
|
|
|
|
+ if ($sign == '')
|
|
|
|
+ throw new Exception(2201);
|
|
|
|
+
|
|
|
|
+ $job = Jobs::fetchDataBySign($sign, false);
|
|
|
|
+ if (!isset($job['scenario']))
|
|
|
|
+ throw new Exception(2202);//验证场景
|
|
|
|
+ $scenario = $job['scenario'];
|
|
|
|
+ $queue = $job['queue'];
|
|
|
|
|
|
if (!Yii::$app->request->isPost)
|
|
if (!Yii::$app->request->isPost)
|
|
throw new Exception('1001');
|
|
throw new Exception('1001');
|
|
|
|
|
|
- //验证
|
|
|
|
$model = new MessageForm();
|
|
$model = new MessageForm();
|
|
$model->setScenario($scenario);
|
|
$model->setScenario($scenario);
|
|
|
|
+ $model->setQueue($queue);
|
|
$model->load(['MessageForm' => Yii::$app->request->post()]);
|
|
$model->load(['MessageForm' => Yii::$app->request->post()]);
|
|
|
|
|
|
$data = [];
|
|
$data = [];
|
|
if ($model->validate()) {
|
|
if ($model->validate()) {
|
|
- $data['queueName'] = MessageForm::getQueueName($scenario);
|
|
|
|
- $data['requestId'] = $model->sendMessage(); //send
|
|
|
|
|
|
+ $data['queueName'] = $model->getQueue();
|
|
|
|
+ $data['requestId'] = $model->sendMessage();
|
|
} else {
|
|
} else {
|
|
$model->handleError();//处理验证失败
|
|
$model->handleError();//处理验证失败
|
|
}
|
|
}
|
|
|
|
|
|
return [
|
|
return [
|
|
'code' => 200,
|
|
'code' => 200,
|
|
- 'message' => 'OK',
|
|
|
|
|
|
+ 'message' => Yii::t('error', 200),
|
|
'data' => $data
|
|
'data' => $data
|
|
];
|
|
];
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
- * 发送消息 (接受多条)
|
|
|
|
|
|
+ * 发送消息
|
|
* @author: libingke
|
|
* @author: libingke
|
|
*/
|
|
*/
|
|
public function actionBatchSend()
|
|
public function actionBatchSend()
|
|
{
|
|
{
|
|
|
|
+ $sign = Yii::$app->request->get('sign');
|
|
|
|
+ if ($sign == '')
|
|
|
|
+ throw new Exception(2201);
|
|
|
|
+
|
|
|
|
+ $job = Jobs::fetchDataBySign($sign, false);
|
|
|
|
+ if (!isset($job['scenario']))
|
|
|
|
+ throw new Exception(2202);//验证场景
|
|
|
|
+ $scenario = $job['scenario'];
|
|
|
|
+ $queue = $job['queue'];
|
|
|
|
+
|
|
|
|
+ if (!Yii::$app->request->isPost)
|
|
|
|
+ throw new Exception('1001');
|
|
|
|
+
|
|
|
|
+ $model = new MessageForm();
|
|
|
|
+ $model->setScenario($scenario);
|
|
|
|
+ $model->setQueue($queue);
|
|
|
|
+ $model->load(['MessageForm' => Yii::$app->request->post()]);
|
|
|
|
+
|
|
|
|
+ $data = [];
|
|
|
|
+ if ($model->validate()) {
|
|
|
|
+ $data['queueName'] = $model->getQueue();
|
|
|
|
+ $data['requestId'] = $model->sendMessage();
|
|
|
|
+ } else {
|
|
|
|
+ $model->handleError();//处理验证失败
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return [
|
|
|
|
+ 'code' => 200,
|
|
|
|
+ 'message' => Yii::t('error', 200),
|
|
|
|
+ 'data' => $data
|
|
|
|
+ ];
|
|
|
|
+
|
|
|
|
+
|
|
$params = Yii::$app->request->post();
|
|
$params = Yii::$app->request->post();
|
|
//test data start todo delete
|
|
//test data start todo delete
|
|
$test[] = [
|
|
$test[] = [
|
|
@@ -159,32 +185,16 @@ class MessageController extends BaseController
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
- * 消费消息 todo
|
|
|
|
|
|
+ * 消费消息 todo
|
|
* @author: libingke
|
|
* @author: libingke
|
|
*/
|
|
*/
|
|
- public function actionReceive()
|
|
|
|
|
|
+ public function actionConsume()
|
|
{
|
|
{
|
|
- //获取接收参数 利用model验证或者判断
|
|
|
|
- $params = Yii::$app->request->post();
|
|
|
|
- $post = [
|
|
|
|
- 'message1' => 'message 1',
|
|
|
|
- 'message2' => 'message 2',
|
|
|
|
- 'message3' => 'message 3',
|
|
|
|
- 'queue' => 'y1',
|
|
|
|
- ];
|
|
|
|
-
|
|
|
|
|
|
+ $queue = 'login';
|
|
try {
|
|
try {
|
|
- $queue = (new Queue())->create($post['queue']);
|
|
|
|
- if ($queue['status'] == 1) {
|
|
|
|
- $message = new Message($queue['result']);
|
|
|
|
- $message->receive($post['queue']);
|
|
|
|
-
|
|
|
|
- return $result = ['code' => 200, 'message' => Yii::t('common', 'OK')];
|
|
|
|
-
|
|
|
|
- } else {
|
|
|
|
-
|
|
|
|
- return ['code' => $queue['status'], 'message' => $queue['result']];
|
|
|
|
- }
|
|
|
|
|
|
+ $message = new Message($queue);
|
|
|
|
+ $message->consume($queue);
|
|
|
|
+ return $result = ['code' => 200, 'message' => Yii::t('common', 'OK')];
|
|
|
|
|
|
} catch (\common\logic\Amqp\Exception $e) {
|
|
} catch (\common\logic\Amqp\Exception $e) {
|
|
$result = ['code' => $e->getCode(), 'message' => $e->getMessage()];
|
|
$result = ['code' => $e->getCode(), 'message' => $e->getMessage()];
|