where('is_give', CardRiding::GIVE_OK)->first(); if ($card) { $user = $event->user; $user_id = $user->id; $card_id = $card->id; $users = User::where('id', $user_id)->first(); if (empty($users)) return; $cardRiding = CardRiding::where('status', CardRiding::STATUS_OK)->find($card_id); if (empty($cardRiding)) return; if ($cardRiding->is_give == CardRiding::GIVE_NO) return; $expiration_time = Carbon::now()->addDays($cardRiding->effective_days)->format('Y-m-d H:i:s'); try { DB::beginTransaction(); $cardRidingOrder = CardRidingOrder::firstOrCreate([ 'no' => CardRidingOrder::makeNo(), 'area_id' => $users->register_area_id, 'user_id' => $users->id, 'riding_card_id' => $card_id, 'money' => 0, 'discount' => 1, 'pay_money' => 0, 'pay_type' => CardRidingOrder::PAY_TYPE_NEW_USER_OVER_AUTH_SERVER_GIVE, 'pay_status' => CardRidingOrder::PAY_STATUS_OK, 'pay_time' => Carbon::now(), ]); $data = [ 'user_id' => $users->id, 'riding_card_id' => $card_id, 'card_riding_order_id' => $cardRidingOrder->id, 'take_effect_time' => Carbon::now(), 'deduction_money' => $cardRiding->deduction_money, 'expiration_time' => $expiration_time, 'is_limit_times' => $cardRiding->is_limit_times, 'can_ridding_times' => $cardRiding->times, 'day_can_ridding_times' => $cardRiding->day_can_ridding_times, 'status' => CardRidingUserBags::STATUS_OK ]; CardRidingUserBags::firstOrCreate(['card_riding_order_id' => $cardRidingOrder->id], $data); DB::commit(); } catch (\Exception $exception) { Log::error($exception->getMessage()); } } return; } public function failed(CardCertifiedEvent $event, $exception) { Log::error($exception); } }