|
@@ -10,6 +10,7 @@ namespace App\Modules\User\Services;
|
|
|
|
|
|
use App\Modules\User\Models\User;
|
|
|
use DB;
|
|
|
+use App\Jobs\ActionTrigger;
|
|
|
|
|
|
class UserService
|
|
|
{
|
|
@@ -257,4 +258,40 @@ 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{
|
|
|
+ // 判断站点是否需要额外逻辑
|
|
|
+ $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());
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|