| | |
| | | |
| | | import cc.mrbird.febs.common.entity.FebsResponse; |
| | | import cc.mrbird.febs.dapp.soccer.dto.LeaguesApiDto; |
| | | import cc.mrbird.febs.dapp.soccer.dto.TeamsApiDto; |
| | | import cc.mrbird.febs.dapp.soccer.entity.*; |
| | | import cc.mrbird.febs.dapp.soccer.mapper.SoccerCountriesMapper; |
| | | import cc.mrbird.febs.dapp.soccer.mapper.SoccerLeaguesMapper; |
| | | import cc.mrbird.febs.dapp.soccer.mapper.SoccerTimezoneMapper; |
| | | import cc.mrbird.febs.dapp.soccer.mapper.*; |
| | | import cc.mrbird.febs.dapp.soccer.service.CountryService; |
| | | import cc.mrbird.febs.dapp.soccer.util.SoccerResponseUtil; |
| | | import cn.hutool.core.collection.CollUtil; |
| | |
| | | private final SoccerCountriesMapper soccerCountriesMapper; |
| | | private final SoccerLeaguesMapper soccerLeaguesMapper; |
| | | private final SoccerTimezoneMapper soccerTimezoneMapper; |
| | | private final SoccerLeaguesSeasonsMapper soccerLeaguesSeasonsMapper; |
| | | private final SoccerTeamMapper soccerTeamMapper; |
| | | private final SoccerVenueMapper soccerVenueMapper; |
| | | |
| | | @Override |
| | | public FebsResponse countries() { |
| | |
| | | return new FebsResponse().success().data(jsonResponse); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse seasons() { |
| | | HttpResponse<String> httpResponse = null; |
| | | /** |
| | | * https://v3.football.api-sports.io/leagues/seasons |
| | | */ |
| | | try { |
| | | httpResponse = Unirest.get("https://v3.football.api-sports.io/leagues/seasons") |
| | | .header("x-rapidapi-key", "87f8d87d629d1704ba49622cb978eb81") |
| | | .header("x-rapidapi-host", "v3.football.api-sports.io").asString(); |
| | | } catch (UnirestException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | JsonResponse jsonResponse = SoccerResponseUtil.getJsonResponse(httpResponse); |
| | | if(ObjectUtil.isNotEmpty(jsonResponse)){ |
| | | List<Object> responses = jsonResponse.getResponse(); |
| | | if(CollUtil.isNotEmpty(jsonResponse.getResponse())){ |
| | | for(Object seasonsName : responses){ |
| | | SoccerLeaguesSeasons soccerLeaguesSeasons = new SoccerLeaguesSeasons(); |
| | | soccerLeaguesSeasons.setSeasonsName(SoccerResponseUtil.objectToStr(seasonsName)); |
| | | soccerLeaguesSeasonsMapper.insert(soccerLeaguesSeasons); |
| | | } |
| | | } |
| | | } |
| | | return new FebsResponse().success().data(jsonResponse); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse teams(TeamsApiDto teamsApiDto) { |
| | | HttpResponse<String> httpResponse = null; |
| | | String country = teamsApiDto.getCountry(); |
| | | |
| | | try { |
| | | /** |
| | | * https://v3.football.api-sports.io/teams |
| | | */ |
| | | httpResponse = Unirest.get(" https://v3.football.api-sports.io/teams") |
| | | .header("x-rapidapi-key", "87f8d87d629d1704ba49622cb978eb81") |
| | | .header("x-rapidapi-host", "v3.football.api-sports.io") |
| | | .queryString("country",country) |
| | | .asString(); |
| | | } catch (UnirestException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | TeamsInfoResponse teamsInfoResponse = SoccerResponseUtil.getTeamsInfoResponse(httpResponse); |
| | | if(ObjectUtil.isNotEmpty(teamsInfoResponse)){ |
| | | List<TeamsInfo> responses = teamsInfoResponse.getResponse(); |
| | | if(CollUtil.isNotEmpty(responses)){ |
| | | for(TeamsInfo teamsInfo : responses){ |
| | | |
| | | Team team = teamsInfo.getTeam(); |
| | | Integer teamId = team.getId(); |
| | | List<SoccerTeam> soccerTeams = soccerTeamMapper.selectList(new QueryWrapper<SoccerTeam>().eq("team_id", teamId)); |
| | | if(CollUtil.isEmpty(soccerTeams)){ |
| | | SoccerTeam soccerTeam = new SoccerTeam(); |
| | | soccerTeam.setTeamId(team.getId()); |
| | | soccerTeam.setName(team.getName()); |
| | | soccerTeam.setCode(team.getCode()); |
| | | soccerTeam.setCountry(team.getCountry()); |
| | | soccerTeam.setFounded(team.getFounded()); |
| | | soccerTeam.setNational(team.getNational()); |
| | | soccerTeam.setLogo(team.getLogo()); |
| | | soccerTeamMapper.insert(soccerTeam); |
| | | } |
| | | |
| | | Venue venue = teamsInfo.getVenue(); |
| | | Integer venueId = venue.getId(); |
| | | List<SoccerVenue> soccerVenues = soccerVenueMapper.selectList(new QueryWrapper<SoccerVenue>().eq("venue_id", venueId)); |
| | | if(CollUtil.isEmpty(soccerVenues)){ |
| | | SoccerVenue soccerVenue = new SoccerVenue(); |
| | | soccerVenue.setVenueId(venue.getId()); |
| | | soccerVenue.setName(venue.getName()); |
| | | soccerVenue.setAddress(venue.getAddress()); |
| | | soccerVenue.setCity(venue.getCity()); |
| | | soccerVenue.setCapacity(venue.getCapacity()); |
| | | soccerVenue.setSurface(venue.getSurface()); |
| | | soccerVenue.setImage(venue.getImage()); |
| | | soccerVenueMapper.insert(soccerVenue); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | return new FebsResponse().success().data(teamsInfoResponse); |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | String str = "{\n" + |
| | | " \"get\": \"leagues\",\n" + |