123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 |
- <?php
- namespace backend\controllers;
- use backend\forms\MessageForm;
- use common\helpers\KeyHelper;
- use common\logic\Amqp\Cache;
- use components\Exception;
- use components\service\AmqpConfig;
- use Yii;
- class MessageController extends BaseController
- {
- /**
- * [查询回执信息]
- * @author: libingke
- * @param $query
- * @param $queue
- * @return bool
- * @throws Exception
- */
- public function actionQueryReceipt($query, $queue)
- {
- if (is_string($query) && is_string($query)) {
- $statusKey = KeyHelper::getMessageStatusKey($query, $queue);
- $resultKey = KeyHelper::getMessageResultKey($query, $queue);
- $status = Yii::$app->redis->get($statusKey);
- if ($status !== false) {
- $mark = AmqpConfig::getMarkById($status);//状态码 => 提示信息
- if (Cache::STATUS_HAND_OK == $status) {
- return json_decode(Yii::$app->redis->get($resultKey), true);//直接返回数据
- } else {
- throw new Exception(2101, $mark);//非正常时回执
- }
- } else {
- throw new Exception(2102);//无效
- }
- } else {
- throw new Exception(2102);//无效
- }
- }
- /**
- * 发送消息
- * @author: libingke
- * @return array
- * @throws Exception
- */
- public function actionSend()
- {
- $model = new MessageForm();
- $model->setScenario('send');
- $model->load(['MessageForm' => Yii::$app->request->get()]);
- $data = [];
- if ($model->validate()) {
- $data = $model->sendMessageV1_1();
- } else {
- $model->handleError();//处理验证失败
- }
- return [
- 'code' => 200,
- 'message' => Yii::t('error', 200),
- 'data' => $data
- ];
- }
- /**
- * 批量发送消息
- * @author: libingke
- * @return array
- */
- public function actionBatchSend()
- {
- $model = new MessageForm();
- $model->setScenario('batch_send');
- $model->load(['MessageForm' => Yii::$app->request->get()]);
- $data = [];
- if ($model->validate()) {
- $data = $model->batchSendMessage();
- } else {
- $model->handleError();
- }
- return [
- 'code' => 200,
- 'message' => Yii::t('error', 200),
- 'data' => $data
- ];
- }
- /**
- * 获取队列消息列表
- * @author: libingke
- */
- public function actionList()
- {
- $model = new MessageForm();
- $model->setScenario('message_list');
- $model->load(['MessageForm' => Yii::$app->request->get()]);
- $data = [];
- if ($model->validate()) {
- $data = $model->getMessageList();
- } else {
- $model->handleError();
- }
- return [
- 'code' => 200,
- 'message' => Yii::t('error', 200),
- 'data' => $data
- ];
- }
- /**
- * 消费消息
- * @author: libingke
- */
- public function actionConsume()
- {
- $model = new MessageForm();
- $model->setScenario('consume');
- $model->load(['MessageForm' => Yii::$app->request->get()]);
- $data = [];
- if ($model->validate()) {
- $data = $model->consumeMessage();
- } else {
- $model->handleError();
- }
- return [
- 'code' => 200,
- 'message' => Yii::t('error', 200),
- 'data' => $data
- ];
- }
- /**
- * 删除消息
- * @author: libingke
- */
- public function actionDelete()
- {
- }
- /**
- * 清空消息
- * @author: libingke
- */
- public function actionPurge()
- {
- $model = new MessageForm();
- $model->setScenario('purge');
- $model->load(['MessageForm' => Yii::$app->request->get()]);
- $data = [];
- if ($model->validate()) {
- $data = $model->purge();
- } else {
- $model->handleError();
- }
- return [
- 'code' => 200,
- 'message' => Yii::t('error', 200),
- 'data' => $data
- ];
- }
- }
|