KKSU
2024-05-13 f18f343009b97b7802635ff2d3a84cc4f89cdb41
src/main/java/cc/mrbird/febs/dapp/soccer/service/Impl/CountryServiceImpl.java
@@ -2,10 +2,9 @@
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;
@@ -33,6 +32,9 @@
    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() {
@@ -140,6 +142,85 @@
        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();
                    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();
                    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" +