MessageController.php 4.1 KB

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