Browse Source

Signed-off-by: MrHgx <252766929@qq.com>

MrHgx 6 years ago
parent
commit
3395cb327f

+ 25 - 0
backend/controllers/QueueController.php

@@ -21,6 +21,7 @@ class QueueController extends BaseController
 					'list' => ['GET'],
 					'create' => ['POST'],
 					'delete' => ['POST'],
+					'update' => ['POST'],
 				],
 			],
 		]);
@@ -93,4 +94,28 @@ class QueueController extends BaseController
 			'data' => $data
 		];
 	}
+	
+	/**
+     	* 移除并重置队列
+     	* @author: hanguangxu
+     	* @return array
+     	* @throws Exception
+     	*/
+	public function actionUpdate(){
+        $model = new QueueForm();
+        $model->setScenario('update_queue');
+        $model->load(['QueueForm' => Yii::$app->request->post()]);
+        $data = [];
+        if ($model->validate()) {
+            $data = $model->updateQueue();
+        } else {
+            $model->handleError();//处理验证失败
+        }
+
+        return [
+            'code' => 200,
+            'message' => Yii::t('error', 200),
+            'data' => $data
+        ];
+    }
 }

+ 27 - 0
backend/controllers/TopicController.php

@@ -22,6 +22,7 @@ class TopicController extends BaseController
                     'list' => ['GET'],
                     'create' => ['POST'],
                     'delete' => ['POST'],
+		    'update' => ['POST'],
                 ],
             ],
         ]);
@@ -94,4 +95,30 @@ class TopicController extends BaseController
             'data' => $data
         ];
     }
+
+    /**
+     * [修改队列]
+     * @author: hanguangxu
+     * @return array
+     * @throws Exception
+     */
+    public function actionUpdate()
+    {
+        $model = new TopicForm();
+        $model->setScenario('update_topic');
+        $model->load(['TopicForm' => Yii::$app->request->post()]);
+
+        $data = [];
+        if ($model->validate()) {
+            $data = $model->updateTopic();
+        } else {
+            $model->handleError();//处理验证失败
+        }
+
+        return [
+            'code' => 200,
+            'message' => Yii::t('error', 200),
+            'data' => $data
+        ];
+    }
 }

+ 30 - 1
backend/forms/QueueForm.php

@@ -16,12 +16,17 @@ class QueueForm extends BaseForm
 	 * @var string 名称
 	 */
 	public $name;
+
+    	public $name1;
+
+    	public $name2;
 
 	public function rules()
 	{
 		return [
 			//create_queue  delete_queue
 			[['name'], 'required', 'message' => 1100, 'on' => ['create_queue', 'delete_queue']],
+			[['name1','name2'], 'required', 'message' => 1100, 'on' => ['update_queue']],
 			['name', 'string', 'message' => 1101, 'on' => ['create_queue', 'delete_queue']],
 			['name', 'filter', 'filter' => 'trim', 'on' => ['create_queue', 'delete_queue']],
 		];
@@ -114,4 +119,28 @@ class QueueForm extends BaseForm
 
 		return ['count' => count($rows), 'rows' => $rows];
 	}
-}
+
+	/**
+     	* [修改队列]
+     	* @author: hanguangxu
+     	* @return array
+     	* @throws Exception
+     	*/
+    	public function updateQueue()
+    	{
+	try {
+            	$connect = $this->getConnect();
+            	$channel = $connect->channel();
+            	$channel->queue_delete($this->name1,
+                false, false, false, false
+            );
+            list($queue,,) = $channel->queue_declare($this->name2,
+                false, true, false, false, false);
+
+        } catch (\Exception $e) {
+            throw new Exception(1001, $e->getMessage());
+        }
+
+        return $data = ['name' => $queue];
+	}
+}

+ 26 - 4
backend/forms/TopicForm.php

@@ -17,11 +17,16 @@ class TopicForm extends BaseForm
 	 */
 	public $name;
 
+	public $name1;
+	
+	public $name2;
+
 	public function rules()
 	{
 		return [
 			//create_queue  delete_queue
-			[['name'], 'required', 'message' => 1100, 'on' => ['create_topic', 'delete_topic']],
+			[['name'], 'required', 'message' => 1100, 'on' => ['create_topic', 'delete_topic']],
+			[['name1','name2'], 'required', 'message' => 1100, 'on' => ['update_topic']],
 			['name', 'string', 'message' => 1101, 'on' => ['create_topic', 'delete_topic']],
 			['name', 'filter', 'filter' => 'trim', 'on' => ['create_topic', 'delete_topic']],
 		];
@@ -109,6 +114,23 @@ class TopicForm extends BaseForm
         return ['count' => count($rows), 'rows' => $rows];
     }
 
-
-
-}
+    /**
+     * [修改队列]
+     * @author: hanguangxu
+     * @return array
+     * @throws Exception
+     */
+    public function updateTopic()
+    {
+        try {
+            $connect = $this->getConnect();
+            $channel = $connect->channel();
+            $channel->exchange_delete($this->name1, false, false );
+            list($topic,,) = $channel->exchange_declare($this->name2, 'topic', false, true, false);
+        } catch (\Exception $e) {
+            throw new Exception(1001, $e->getMessage());
+        }
+        return $data = ['TopicName' => empty($topic)?$this->name2:$topic];
+    }
+
+}