|  | @@ -10,6 +10,8 @@ namespace App\Modules\User\Services;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  use App\Modules\User\Models\User;
 | 
	
		
			
				|  |  |  use DB;
 | 
	
		
			
				|  |  | +use App\Jobs\ActionTrigger;
 | 
	
		
			
				|  |  | +use App\Modules\OfficialAccount\Models\DistributionSelfDefineConfig;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  class UserService
 | 
	
		
			
				|  |  |  {
 | 
	
	
		
			
				|  | @@ -257,4 +259,48 @@ class UserService
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          return User::updateInfo($from_uid, ['balance' => 0, 'reward_balance' => 0, 'charge_balance' => 0]);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  | +    // 扔用户一些动作到队列,异步处理一些额外逻辑
 | 
	
		
			
				|  |  | +    static function PushUserActionToQueue($action_type,$distribution_channel_id,$param){
 | 
	
		
			
				|  |  | +    	try{
 | 
	
		
			
				|  |  | +    		// 判断站点是否需要额外逻辑
 | 
	
		
			
				|  |  | +    		$distribution_self_define_config = DistributionSelfDefineConfig::getDistributionSelfDefineConfig($distribution_channel_id,'action_call_ycsd');
 | 
	
		
			
				|  |  | +    		if(empty($distribution_self_define_config)){
 | 
	
		
			
				|  |  | +//     			\Log::info('not_action_call_ycsd:'.$distribution_channel_id);
 | 
	
		
			
				|  |  | +    			return '';
 | 
	
		
			
				|  |  | +    		}else{
 | 
	
		
			
				|  |  | +    			\Log::info('action_call_ycsd:'.$distribution_channel_id);
 | 
	
		
			
				|  |  | +    		}
 | 
	
		
			
				|  |  | +    		
 | 
	
		
			
				|  |  | +    		$data = [];
 | 
	
		
			
				|  |  | +    		$data['send_time'] = date("Y-m-d H:i:s");
 | 
	
		
			
				|  |  | +    		$data['action_type'] = $action_type;
 | 
	
		
			
				|  |  | +    		if($action_type == 'Register'){
 | 
	
		
			
				|  |  | +    			$data['openid'] =  $param['openid'];
 | 
	
		
			
				|  |  | +    			$data['uid'] = $param['uid'];
 | 
	
		
			
				|  |  | +    		}elseif($action_type == 'CreateOrder'){
 | 
	
		
			
				|  |  | +    			$data['orderSn'] =  $param['order_sn'];
 | 
	
		
			
				|  |  | +    			$data['amount'] = $param['amount'];
 | 
	
		
			
				|  |  | +    			$data['openid'] =  $param['openid'];
 | 
	
		
			
				|  |  | +    			$data['uid'] = $param['uid'];
 | 
	
		
			
				|  |  | +    		}elseif($action_type == 'CallBackOrder'){
 | 
	
		
			
				|  |  | +    			$data['orderSn'] =  $param['order_sn'];
 | 
	
		
			
				|  |  | +    			$data['openid'] =  $param['openid'];
 | 
	
		
			
				|  |  | +    		}
 | 
	
		
			
				|  |  | +    		 
 | 
	
		
			
				|  |  | +    		$send_data=array(
 | 
	
		
			
				|  |  | +    				'send_time'=>date("Y-m-d H:i:s"),
 | 
	
		
			
				|  |  | +    				'data' => $data
 | 
	
		
			
				|  |  | +    		);
 | 
	
		
			
				|  |  | +    		\Log::info('PushUserActionToQueue_openid:'.$data['openid'].' action_type:'.$action_type);
 | 
	
		
			
				|  |  | +    		\Log::info('$send_data');\Log::info($send_data);
 | 
	
		
			
				|  |  | +    		
 | 
	
		
			
				|  |  | +    		$delay = 0;
 | 
	
		
			
				|  |  | +    		
 | 
	
		
			
				|  |  | +    		$job = (new ActionTrigger($send_data))->onConnection('rabbitmq')->delay($delay)->onQueue('action_trigger_list');
 | 
	
		
			
				|  |  | +    		dispatch($job);
 | 
	
		
			
				|  |  | +    	}catch(\Exception $e){
 | 
	
		
			
				|  |  | +    		\Log::info('ept:'.$e->getMessage());
 | 
	
		
			
				|  |  | +    	}
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |  }
 |