user_id = $user_id; } /** * Execute the job. * * @return void */ public function handle() { //检测该用户是否参与saas端活动 $user_id = $this->user_id; $user = User::find($user_id); if(!$user) return ; $m_user_id = $this->matchMerchantUser($user_id); if(!$m_user_id) return ; //参与 但是未编号 订单 $orders = TouristOrder::where('type','community')->whereIn('pay_status',[1,4])->where('account_id',$m_user_id)->whereNull('remark')->get(); foreach ($orders as $key => $value) { $remark = $this->numMember($value); if(!$remark) continue; $value->update(['remark'=>$remark]); } } //给嘉宾编号 public function numMember($tourist_order){ if($tourist_order->channel == 3 || $tourist_order->channel == '福恋小程序'){ $buy_channel = 2; }else{ $buy_channel = 0; } //获取当前报名用户的性别 if($tourist_order->open_id){ $openid = $tourist_order->open_id; }else{ $openid = MerchantUser::where('id',$tourist_order->account_id)->value('openid'); } $sex = $this->getUserSexByOpenid($openid,$buy_channel); if($sex == 0){ $sex = User::where('mobile',$tourist_order->mobile)->value('sex'); } if($sex && $sex == 1){ //现有男嘉宾数量 $male_count = TouristOrder::where('type','community')->where('type_id',$tourist_order->type_id)->where('remark','like',"%男%")->count(); //当前男嘉宾数量加1 $male_count = $male_count + 1; $remark = $male_count.'男'; }elseif($sex && $sex == 2){ //现有女嘉宾数量 $female_count = TouristOrder::where('type','community')->where('type_id',$tourist_order->type_id)->where('remark','like',"%女%")->count(); //当前女嘉宾数量加1 $female_count = $female_count + 1; $remark = $female_count.'女'; }else{ $remark = null; } return $remark; } //根据福恋用户id 匹配saas用户id public function matchMerchantUser($user_id){ $m_user = MerchantUser::where('user_id',$user_id)->first(); if($m_user){ return $m_user->id; } $openid = Wechat::where('user_id',$user_id)->value('official_openid'); if($openid){ $m_user = MerchantUser::where('openid',$openid)->first(); if($m_user){ return $m_user->id; } } $openid = Viewer::where('user_id',$user_id)->value('openid'); if($openid){ $m_user = MerchantUser::where('openid',$openid)->first(); if($m_user){ return $m_user->id; } } $user = User::find($user_id); $m_user = MerchantUser::where('uuid',$user->uuid)->first(); if($m_user){ return $m_user->id; } return 0; } //根据openid获取用户性别 public function getUserSexByOpenid($openid,$channel=0){ $m_user = MerchantUser::where('openid',$openid)->first(); if($m_user && $m_user->sex && $m_user->sex != 0){ return $m_user->sex; } $viewer = Viewer::where('openid',$openid)->first(); if($viewer && $viewer->sex && $viewer->sex != 0){ return $viewer->sex; } $user_id = $this->getUseridByOpenid($openid,$channel); if($user_id){ $user = User::withTrashed()->find($user_id); if($user && $user->sex){ return $user->sex; } $wechat = Wechat::where('user_id',$user_id)->first(); if($wechat && $wechat->gender){ return $wechat->gender; } } return 0; } //根据openid 获取用户id //channel 0 saasH5 1福恋h5 2小程序 public function getUseridByOpenid($openid,$channel = 0){ if(empty($openid) || $openid == 'null') return 0; if($channel == 2){ $wechat = Wechat::where('openid',$openid)->first(); if($wechat && $wechat->user_id){ $user_id = $wechat->user_id; return $user_id; } return 0; }else{ $merchant_user = MerchantUser::where('openid',$openid)->first(); if($merchant_user && $merchant_user->user_id){ $user_id = $merchant_user->user_id; return $user_id; } if(!isset($user_id)){ $wechat = Wechat::where('official_openid',$openid)->first(); if($wechat && $wechat->user_id){ $user_id = $wechat->user_id; return $user_id; } } if(!isset($user_id)){ $viewer = Viewer::where('openid',$openid)->first(); if($viewer && $viewer->user_id){ $user_id = $viewer->user_id; return $user_id; } } if(!isset($user_id) && $merchant_user){ $wechat = Wechat::where('unionid',$merchant_user->unionid)->first(); if($wechat){ $user_id = $wechat->user_id; return $user_id; } } return 0; } } }