From 6ff3fd9cceb165788696bb8c0fee36ff29ef1157 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Mon, 13 May 2024 14:12:16 +0800
Subject: [PATCH] 球队信息

---
 src/main/java/cc/mrbird/febs/dapp/soccer/service/Impl/CountryServiceImpl.java |   99 ++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 96 insertions(+), 3 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/dapp/soccer/service/Impl/CountryServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/soccer/service/Impl/CountryServiceImpl.java
index 26bf217..4617491 100644
--- a/src/main/java/cc/mrbird/febs/dapp/soccer/service/Impl/CountryServiceImpl.java
+++ b/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,97 @@
         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();
+                    if(ObjectUtil.isNotEmpty(team)){
+                        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();
+                    if(ObjectUtil.isNotEmpty(venue)){
+                        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" +

--
Gitblit v1.9.1