Browse Source

更新测试

lbk 6 years ago
parent
commit
5524e4400d

+ 0 - 3
backend/controllers/BaseController.php

@@ -15,7 +15,6 @@ class BaseController extends Controller
 		parent::init();
 	}
 
-
 	public function beforeAction($action)
 	{
 		//todo
@@ -24,6 +23,4 @@ class BaseController extends Controller
 		}*/
 		return true;
 	}
-
-
 }

+ 55 - 45
backend/controllers/MessageController.php

@@ -1,11 +1,12 @@
 <?php
 namespace backend\controllers;
 
+use backend\models\Jobs;
 use backend\forms\MessageForm;
 use common\logic\Amqp\Cache;
-use components\Exception;
 use common\logic\Amqp\Message;
 use common\logic\Amqp\Queue;
+use components\Exception;
 use Yii;
 
 class MessageController extends BaseController
@@ -46,53 +47,78 @@ class MessageController extends BaseController
 	 */
 	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)
 			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'] = MessageForm::getQueueName($scenario);
-			$data['requestId'] = $model->sendMessage();	//send
+			$data['queueName'] = $model->getQueue();
+			$data['requestId'] = $model->sendMessage();
 		} else {
 			$model->handleError();//处理验证失败
 		}
 
 		return [
 			'code' => 200,
-			'message' => 'OK',
+			'message' => Yii::t('error', 200),
 			'data' => $data
 		];
 	}
 
 	/**
-	 * 发送消息 (接受多条)
+	 * 发送消息
 	 * @author: libingke
 	 */
 	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();
 		//test data start todo delete
 		$test[] = [
@@ -159,32 +185,16 @@ class MessageController extends BaseController
 	}
 
 	/**
-	 * 消费消息 todo
+	 * 消费消息  todo
 	 * @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 {
-			$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) {
 			$result = ['code' => $e->getCode(), 'message' => $e->getMessage()];

+ 16 - 16
backend/forms/MessageForm.php

@@ -14,6 +14,10 @@ class MessageForm extends BaseForm
 
 	public $type;
 
+	public $send_arr;
+
+	private $_queue = '';
+
 	/**
 	 * 登录方式
 	 */
@@ -21,33 +25,29 @@ class MessageForm extends BaseForm
 
 	const TYPE_EMAIL = 'email';
 
-	/**
-	 * 绑定队列名称
-	 * @var array
-	 */
-	public static $queueMap = [
-		'login'	=> 'login'
-	];
-
 	public function rules()
 	{
 		return [
-			[['email', 'password', 'type'], 'safe', 'on' => 'login'],
+			//login
+			//[['email', 'password', 'type'], 'safe', 'on' => 'login'],
 			[['email', 'password', 'type'], 'trim', 'on' => 'login'],
 			[['email', 'password'], 'required', 'on' => 'login'],
 			['email', 'email', 'on' => 'login'],
 			['type', 'default', 'value' => static::TYPE_EMAIL, 'on' => 'login'],
-			['type', 'in', 'range' => [static::TYPE_EMAIL, static::TYPE_SMS], 'on' => 'login']
+			['type', 'in', 'range' => [static::TYPE_EMAIL, static::TYPE_SMS], 'on' => 'login'],
+			//logins
+			[['send_arr'], 'required', 'on' => 'logins']
 		];
 	}
 
-	public static function getQueueName($scenario)
+	public function setQueue($scenario)
 	{
-		if (isset(self::$queueMap[$scenario])) {
-			return self::$queueMap[$scenario];
-		}
+		$this->_queue = $scenario;
+	}
 
-		return '';
+	public function getQueue()
+	{
+		return $this->_queue;
 	}
 
 	/**
@@ -63,7 +63,7 @@ class MessageForm extends BaseForm
 			'password'	=> $this->password,
 			'type'		=> $this->type
 		]);
-		$queue = MessageForm::getQueueName($this->scenario);
+		$queue = $this->getQueue();
 
 		$data = [];
 		try {

+ 3 - 2
common/config/db.php

@@ -2,8 +2,9 @@
 
 return [
     'class' => 'yii\db\Connection',
-    'dsn' => 'mysql:host=localhost;dbname=advance',
+    'dsn' => 'mysql:host=localhost;dbname=log_system',
     'username' => 'root',
-    'password' => 'yang~1',
+    'password' => 'my@123456',
     'charset' => 'utf8',
+	'tablePrefix' => 'amqp_'
 ];

+ 4 - 6
common/config/main.php

@@ -12,15 +12,13 @@ return [
             'class' => 'yii\caching\FileCache',
         ],
 
-        /*'redis' => [
+        'redis' => [
             'class' => 'yii\redis\Connection',
-            'hostname' => 'localhost',
+            'hostname' => '127.0.0.1',
             'port' => 6378,
             'database' => 1,
-            'password' => 'airent-redis~123',
-
-
-        ],*/
+            'password' => 'redis12017',
+        ],
 
 		'i18n' => [
 			'translations' => [

+ 8 - 10
common/logic/Amqp/Message.php

@@ -2,6 +2,7 @@
 
 namespace common\logic\Amqp;
 
+use common\helpers\Helper;
 use PhpAmqpLib\Message\AMQPMessage;
 use Yii;
 
@@ -19,8 +20,6 @@ class Message extends Connect
 
 	private $_callback_queue;
 
-	private $_result;
-
 	private $_response;
 
 	private $_corr_id;
@@ -43,9 +42,9 @@ class Message extends Connect
 	 */
 	public function send($body, $routing_key)
 	{
-		$this->_corr_id = uniqid();
+		$this->_corr_id = Helper::getUniqueId();
 		$properties = [
-			'content_type' => 'text/plain',
+			//'content_type' => 'text/plain',
 			'correlation_id' => $this->_corr_id,
 			'reply_to' => $this->_callback_queue
 		];
@@ -73,16 +72,15 @@ class Message extends Connect
 	}
 
 	/**
-	 * [消费信息]
+	 * [消费信息]  todo
 	 * @author: libingke
 	 * @param string $queue 队列名称
 	 * @param string $str
 	 * @return bool
 	 */
-	public function receive($queue)
+	public function consume($queue)
 	{
 		$callback = function($msg) {
-			echo $msg->get('correlation_id');
 			echo " [x] Received ", $msg->body, "\n";
 			$msg->delivery_info['channel']->basic_ack($msg->delivery_info['delivery_tag']);
 		};
@@ -93,9 +91,9 @@ class Message extends Connect
 			$callback
 		);
 
-		/*while(count($this->_channel->callbacks)) {
+		while(count($this->_channel->callbacks)) {
 			$this->_channel->wait();
-		}*/
+		}
 
 		return true;
 	}
@@ -107,7 +105,7 @@ class Message extends Connect
 	 * @param string $arr
 	 * @return array 返回数据
 	 */
-	public function batchReceive($queue, $arr)
+	public function batchConsume($queue, $arr)
 	{
 	}
 

+ 1 - 1
common/messages/zh-CN/errorCode.php

@@ -94,6 +94,6 @@ return [
 	'2101' => '消息处理中',
 	'2102' => '未知消息',
 
-	'2201' => 'form不能为空',
+	'2201' => 'sign不能为空',
 	'2202' => '不支持的请求类型',
 ];

+ 2 - 1
composer.json

@@ -19,7 +19,8 @@
         "yiisoft/yii2-bootstrap": "~2.0.0",
         "yiisoft/yii2-swiftmailer": "~2.0.0 || ~2.1.0",
         "php-amqplib/php-amqplib": "2.6.*",
-        "yiisoft/yii2-redis": "^2.0"
+        "yiisoft/yii2-redis": "^2.0",
+        "e282486518/yii2-console-migration": "*"
     },
     "require-dev": {
         "yiisoft/yii2-debug": "~2.0.0",

+ 4 - 2
console/controllers/BaseController.php

@@ -10,13 +10,15 @@ use yii\console\Controller;
  */
 class BaseController extends Controller
 {
-	public function beforeAction($action)
+	/*public function beforeAction($action)
 	{
+		return true;
 		//todo start log
 	}
 
 	public function afterAction($action, $result)
 	{
+		return true;
 		//todo end log
-	}
+	}*/
 }

+ 6 - 4
console/controllers/WorkerMsgController.php

@@ -3,6 +3,7 @@
 namespace console\controllers;
 
 use backend\forms\MessageForm;
+use backend\models\Jobs;
 use common\logic\Amqp\Cache;
 use common\logic\Amqp\Connect;
 use components\Curl;
@@ -40,7 +41,8 @@ class WorkerMsgController extends BaseController
 	 */
     public function actionLogin()
     {
-		$queue = MessageForm::getQueueName('login');
+    	$queue = Jobs::find()->select('queue')->where(['sign' => 'queue'])->scalar();
+
     	$conn = $this->getConn();
 		$channel = $conn->channel();
 
@@ -51,10 +53,10 @@ class WorkerMsgController extends BaseController
 
         	$post = json_decode($msg->body, true);
         	//todo log
-        	if (!is_array($post)) {
-        		$data = ['code' => Cache::STATUS_HAND_FAIL, 'message' => '消息格式错误'];
+			if (!is_array($post)) {
+				$data = ['code' => Cache::STATUS_HAND_FAIL, 'message' => '消息格式错误'];
 			} else {
-        		//handle
+				//handle
 				$loginUrl = 'https://dev407.33.cn/admin/member/login';
 				$post['redirect_uri'] = 'https://zpapi.licai.cn';
 				$curl = new Curl();

+ 2 - 0
console/migrations/README.md

@@ -0,0 +1,2 @@
+php yii migrate/backup all
+php yii migrate/up

+ 1 - 0
environments/dev/backend/config/main-local.php

@@ -2,6 +2,7 @@
 
 $config = [
     'components' => [
+		'db' =>   require __DIR__ . '/../../common/config/db-local.php',
         'request' => [
             // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation
             'cookieValidationKey' => '',

+ 0 - 7
environments/dev/common/config/main-local.php

@@ -1,13 +1,6 @@
 <?php
 return [
     'components' => [
-        'db' => [
-            'class' => 'yii\db\Connection',
-            'dsn' => 'mysql:host=localhost;dbname=yii2advanced',
-            'username' => 'root',
-            'password' => '',
-            'charset' => 'utf8',
-        ],
         'mailer' => [
             'class' => 'yii\swiftmailer\Mailer',
             'viewPath' => '@common/mail',

+ 3 - 0
environments/dev/console/config/main-local.php

@@ -1,5 +1,8 @@
 <?php
 return [
+	'components' => [
+		'db' =>   require __DIR__ . '/../../common/config/db-local.php',
+	],
     'bootstrap' => ['gii'],
     'modules' => [
         'gii' => 'yii\gii\Module',

+ 1 - 0
environments/dev/frontend/config/main-local.php

@@ -2,6 +2,7 @@
 
 $config = [
     'components' => [
+		'db' =>   require __DIR__ . '/../../common/config/db-local.php',
         'request' => [
             // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation
             'cookieValidationKey' => '',

+ 0 - 7
environments/prod/common/config/main-local.php

@@ -1,13 +1,6 @@
 <?php
 return [
     'components' => [
-        'db' => [
-            'class' => 'yii\db\Connection',
-            'dsn' => 'mysql:host=localhost;dbname=yii2advanced',
-            'username' => 'root',
-            'password' => '',
-            'charset' => 'utf8',
-        ],
         'mailer' => [
             'class' => 'yii\swiftmailer\Mailer',
             'viewPath' => '@common/mail',