MessageController.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. <?php
  2. namespace backend\controllers;
  3. use backend\forms\MessageForm;
  4. use components\Exception;
  5. use Yii;
  6. class MessageController extends BaseController
  7. {
  8. /**
  9. * behaviors
  10. * @return array
  11. */
  12. public function behaviors()
  13. {
  14. return [
  15. 'verbs' => [
  16. 'class' => \yii\filters\VerbFilter::className(),
  17. 'actions' => [
  18. 'send' => ['POST'],
  19. 'batch-send' => ['POST'],
  20. 'list' => ['GET'],
  21. 'purge' => ['POST'],
  22. 'consume' => ['POST'],
  23. 'delete' => ['POST'],
  24. 'ack' => ['POST'],
  25. ],
  26. ],
  27. ];
  28. }
  29. /**
  30. * 发送消息
  31. * @author: libingke
  32. * @return array
  33. */
  34. public function actionSend()
  35. {
  36. $model = new MessageForm();
  37. $model->setScenario('send');
  38. $model->load(['MessageForm' => Yii::$app->request->post()]);
  39. $data = [];
  40. if ($model->validate()) {
  41. $data = $model->sendMessage();
  42. } else {
  43. $model->handleError();//处理验证失败
  44. }
  45. return [
  46. 'code' => 200,
  47. 'message' => Yii::t('error', 200),
  48. 'data' => $data
  49. ];
  50. }
  51. /**
  52. * 批量发送消息
  53. * @author: libingke
  54. * @return array
  55. */
  56. public function actionBatchSend()
  57. {
  58. $model = new MessageForm();
  59. $model->setScenario('batch_send');
  60. $model->load(['MessageForm' => Yii::$app->request->post()]);
  61. $data = [];
  62. if ($model->validate()) {
  63. $data = $model->batchSendMessage();
  64. } else {
  65. $model->handleError();
  66. }
  67. return [
  68. 'code' => 200,
  69. 'message' => Yii::t('error', 200),
  70. 'data' => $data
  71. ];
  72. }
  73. /**
  74. * 获取队列消息列表
  75. * @author: libingke
  76. * @return array
  77. */
  78. public function actionList()
  79. {
  80. $model = new MessageForm();
  81. $model->setScenario('message_list');
  82. $model->load(['MessageForm' => Yii::$app->request->get()]);
  83. $data = [];
  84. if ($model->validate()) {
  85. $data = $model->getMessageList();
  86. } else {
  87. $model->handleError();
  88. }
  89. return [
  90. 'code' => 200,
  91. 'message' => Yii::t('error', 200),
  92. 'data' => $data
  93. ];
  94. }
  95. /**
  96. * 消费消息
  97. * @author: libingke
  98. */
  99. public function actionConsume()
  100. {
  101. $model = new MessageForm();
  102. $model->setScenario('consume');
  103. $model->load(['MessageForm' => Yii::$app->request->post()]);
  104. $data = [];
  105. if ($model->validate()) {
  106. $data = $model->consumeMessage();
  107. } else {
  108. $model->handleError();
  109. }
  110. return [
  111. 'code' => 200,
  112. 'message' => Yii::t('error', 200),
  113. 'data' => $data
  114. ];
  115. }
  116. /**
  117. * 手动应答
  118. * @author: libingke
  119. */
  120. public function actionAck()
  121. {
  122. $model = new MessageForm();
  123. $model->setScenario('ack');
  124. $model->load(['MessageForm' => Yii::$app->request->post()]);
  125. $data = [];
  126. if ($model->validate()) {
  127. $data = $model->ackMessage();
  128. } else {
  129. $model->handleError();
  130. }
  131. return [
  132. 'code' => 200,
  133. 'message' => Yii::t('error', 200),
  134. 'data' => $data
  135. ];
  136. }
  137. /**
  138. * 删除消息
  139. * @author: libingke
  140. * @return array
  141. * @throws Exception
  142. */
  143. public function actionDelete()
  144. {
  145. $model = new MessageForm();
  146. $model->setScenario('delete');
  147. $model->load(['MessageForm' => Yii::$app->request->post()]);
  148. $data = [];
  149. if ($model->validate()) {
  150. $data = $model->deleteMessage();
  151. } else {
  152. $model->handleError();
  153. }
  154. return [
  155. 'code' => 200,
  156. 'message' => Yii::t('error', 200),
  157. 'data' => $data
  158. ];
  159. }
  160. /**
  161. * 清空消息
  162. * @author: libingke
  163. * @return array
  164. */
  165. public function actionPurge()
  166. {
  167. $model = new MessageForm();
  168. $model->setScenario('purge');
  169. $model->load(['MessageForm' => Yii::$app->request->post()]);
  170. $data = [];
  171. if ($model->validate()) {
  172. $data = $model->purge();
  173. } else {
  174. $model->handleError();
  175. }
  176. return [
  177. 'code' => 200,
  178. 'message' => Yii::t('error', 200),
  179. 'data' => $data
  180. ];
  181. }
  182. }