chunkById(500, function($competitions) { foreach ($competitions as $competition) { $this->syncScore($competition->competition_id, $competition->curr_season); } }); } public function syncScore($competitionId, $season) { /** @var AlStatService $alStatService */ $alStatService = app(AlStatService::class); $competitions = $alStatService->getZqLeaqueTableDetail($competitionId, $season); if (!$competitions) { return; } $allScores = Arr::get($competitions, 'overall'); if (!empty($allScores)) { // $this->syncAll($allScores, 1); } $homeScores = Arr::get($competitions, 'home'); if (!empty($homeScores)) { $this->syncAll($homeScores, 2); } $awayScores = Arr::get($competitions, 'away'); if (!empty($awayScores)) { $this->syncAll($awayScores, 3); } } public function syncAll($scores, $type) { foreach ($scores as $item) { $competitionScore = ZqCompetitionScore::where('competition_score_id', $item['id'])->first(); if (!$competitionScore) { $competitionScore = new ZqCompetitionScore(); $competitionScore->competition_score_id = $item['id']; $competitionScore->type = $type; } $competitionScore->competition_id = intval(Arr::get($item, 'competitionId')); $competitionScore->season = strval(Arr::get($item, 'season')); $competitionScore->team_id = intval(Arr::get($item, 'teamId')); $competitionScore->team_name = strval(Arr::get($item, 'teamName')); $competitionScore->group_id = intval(Arr::get($item, 'groupId')); $competitionScore->matches = intval(Arr::get($item, 'matches')); $competitionScore->wins = intval(Arr::get($item, 'wins')); $competitionScore->draws = intval(Arr::get($item, 'draws')); $competitionScore->losts = intval(Arr::get($item, 'losts')); $competitionScore->goal_for = intval(Arr::get($item, 'goalFor')); $competitionScore->goal_aga = intval(Arr::get($item, 'goalAga')); $competitionScore->goal_diff = intval(Arr::get($item, 'goalDiff')); $competitionScore->points = intval(Arr::get($item, 'points')); $competitionScore->position = intval(Arr::get($item, 'position')); $competitionScore->qualificate = strval(Arr::get($item, 'qualificate')); $competitionScore->save(); } } }