From 9533bf3b42f2053de299959f0d8ac201c478657c Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Sat, 11 May 2024 17:08:39 +0800
Subject: [PATCH] 香港新环境
---
src/main/java/cc/mrbird/febs/dapp/soccer/entity/Fixtures.java | 17 ++
src/main/java/cc/mrbird/febs/dapp/soccer/entity/JsonResponse.java | 4
src/main/java/cc/mrbird/febs/dapp/soccer/controller/SoccerController.java | 2
src/main/java/cc/mrbird/febs/dapp/soccer/entity/SoccerLeagues.java | 6
src/main/java/cc/mrbird/febs/dapp/soccer/service/Impl/CountryServiceImpl.java | 189 ++++++++++++++++----------
src/main/java/cc/mrbird/febs/dapp/soccer/entity/LeaguesInfo.java | 19 ++
src/main/java/cc/mrbird/febs/dapp/soccer/mapper/SoccerTimezoneMapper.java | 7 +
src/main/java/cc/mrbird/febs/dapp/soccer/util/SoccerResponseUtil.java | 17 ++
src/main/java/cc/mrbird/febs/dapp/soccer/entity/league.java | 20 ++
src/main/java/cc/mrbird/febs/dapp/soccer/entity/Season.java | 19 ++
src/main/java/cc/mrbird/febs/dapp/soccer/entity/Country.java | 17 ++
src/main/java/cc/mrbird/febs/dapp/soccer/entity/LeaguesResponse.java | 37 +++++
src/main/java/cc/mrbird/febs/dapp/soccer/entity/Coverage.java | 28 ++++
src/main/java/cc/mrbird/febs/dapp/soccer/entity/SoccerTimezone.java | 12 +
14 files changed, 316 insertions(+), 78 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/dapp/soccer/controller/SoccerController.java b/src/main/java/cc/mrbird/febs/dapp/soccer/controller/SoccerController.java
index 3dae431..f91f813 100644
--- a/src/main/java/cc/mrbird/febs/dapp/soccer/controller/SoccerController.java
+++ b/src/main/java/cc/mrbird/febs/dapp/soccer/controller/SoccerController.java
@@ -34,8 +34,6 @@
@ApiOperation(value = "获取联赛", notes = "获取联赛")
@PostMapping(value = "/leagues")
public FebsResponse leagues(LeaguesApiDto leaguesApiDto) {
-
return countryService.leagues(leaguesApiDto);
-
}
}
diff --git a/src/main/java/cc/mrbird/febs/dapp/soccer/entity/Country.java b/src/main/java/cc/mrbird/febs/dapp/soccer/entity/Country.java
new file mode 100644
index 0000000..cf0c2f5
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/dapp/soccer/entity/Country.java
@@ -0,0 +1,17 @@
+package cc.mrbird.febs.dapp.soccer.entity;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+@Data
+public class Country {
+
+ @JsonProperty("name")
+ private String name;
+
+ @JsonProperty("code")
+ private String code;
+
+ @JsonProperty("flag")
+ private String flag;
+}
diff --git a/src/main/java/cc/mrbird/febs/dapp/soccer/entity/Coverage.java b/src/main/java/cc/mrbird/febs/dapp/soccer/entity/Coverage.java
new file mode 100644
index 0000000..b4d2fd8
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/dapp/soccer/entity/Coverage.java
@@ -0,0 +1,28 @@
+package cc.mrbird.febs.dapp.soccer.entity;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+@Data
+public class Coverage {
+ @JsonProperty("fixtures")
+ private Fixtures fixtures;
+
+ @JsonProperty("standings")
+ private boolean standings;
+ @JsonProperty("players")
+ private boolean players;
+ @JsonProperty("top_scorers")
+ private boolean top_scorers;
+ @JsonProperty("top_assists")
+ private boolean top_assists;
+
+ @JsonProperty("top_cards")
+ private boolean top_cards;
+ @JsonProperty("injuries")
+ private boolean injuries;
+ @JsonProperty("predictions")
+ private boolean predictions;
+ @JsonProperty("odds")
+ private boolean odds;
+}
diff --git a/src/main/java/cc/mrbird/febs/dapp/soccer/entity/Fixtures.java b/src/main/java/cc/mrbird/febs/dapp/soccer/entity/Fixtures.java
new file mode 100644
index 0000000..9a1b855
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/dapp/soccer/entity/Fixtures.java
@@ -0,0 +1,17 @@
+package cc.mrbird.febs.dapp.soccer.entity;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+@Data
+public class Fixtures {
+
+ @JsonProperty("events")
+ private boolean events;
+ @JsonProperty("lineups")
+ private boolean lineups;
+ @JsonProperty("statistics_fixtures")
+ private boolean statistics_fixtures;
+ @JsonProperty("statistics_players")
+ private boolean statistics_players;
+}
diff --git a/src/main/java/cc/mrbird/febs/dapp/soccer/entity/JsonResponse.java b/src/main/java/cc/mrbird/febs/dapp/soccer/entity/JsonResponse.java
index 61fdcd2..4a46c4b 100644
--- a/src/main/java/cc/mrbird/febs/dapp/soccer/entity/JsonResponse.java
+++ b/src/main/java/cc/mrbird/febs/dapp/soccer/entity/JsonResponse.java
@@ -10,7 +10,7 @@
private String get;
@JsonProperty("parameters")
- private List<Object> parameters;
+ private Object parameters;
@JsonProperty("errors")
private List<Object> errors;
@@ -22,7 +22,7 @@
private Paging paging;
@JsonProperty("response")
- private List<String> response;
+ private List<Object> response;
public static class Paging {
diff --git a/src/main/java/cc/mrbird/febs/dapp/soccer/entity/LeaguesInfo.java b/src/main/java/cc/mrbird/febs/dapp/soccer/entity/LeaguesInfo.java
new file mode 100644
index 0000000..e0d1b5b
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/dapp/soccer/entity/LeaguesInfo.java
@@ -0,0 +1,19 @@
+package cc.mrbird.febs.dapp.soccer.entity;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class LeaguesInfo {
+
+ @JsonProperty("league")
+ private league league;
+
+ @JsonProperty("country")
+ private Country country;
+
+ @JsonProperty("seasons")
+ private List<Season> seasons;
+}
diff --git a/src/main/java/cc/mrbird/febs/dapp/soccer/entity/LeaguesResponse.java b/src/main/java/cc/mrbird/febs/dapp/soccer/entity/LeaguesResponse.java
new file mode 100644
index 0000000..5bbe20e
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/dapp/soccer/entity/LeaguesResponse.java
@@ -0,0 +1,37 @@
+package cc.mrbird.febs.dapp.soccer.entity;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+import java.util.List;
+@Data
+public class LeaguesResponse {
+
+ @JsonProperty("get")
+ private String get;
+
+ @JsonProperty("parameters")
+ private Object parameters;
+
+ @JsonProperty("errors")
+ private List<Object> errors;
+
+ @JsonProperty("results")
+ private int results;
+
+ @JsonProperty("paging")
+ private JsonResponse.Paging paging;
+
+ @JsonProperty("response")
+ private List<LeaguesInfo> response;
+
+
+ public static class Paging {
+ @JsonProperty("current")
+ private int current;
+
+ @JsonProperty("total")
+ private int total;
+
+ }
+}
diff --git a/src/main/java/cc/mrbird/febs/dapp/soccer/entity/Season.java b/src/main/java/cc/mrbird/febs/dapp/soccer/entity/Season.java
new file mode 100644
index 0000000..b7e3a6f
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/dapp/soccer/entity/Season.java
@@ -0,0 +1,19 @@
+package cc.mrbird.febs.dapp.soccer.entity;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+@Data
+public class Season {
+ @JsonProperty("year")
+ private Integer year;
+ @JsonProperty("start")
+ private String start;
+ @JsonProperty("end")
+ private String end;
+ @JsonProperty("current")
+ private boolean current;
+ @JsonProperty("coverage")
+ private Coverage coverage;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/dapp/soccer/entity/SoccerLeagues.java b/src/main/java/cc/mrbird/febs/dapp/soccer/entity/SoccerLeagues.java
index ba67aea..8927020 100644
--- a/src/main/java/cc/mrbird/febs/dapp/soccer/entity/SoccerLeagues.java
+++ b/src/main/java/cc/mrbird/febs/dapp/soccer/entity/SoccerLeagues.java
@@ -16,4 +16,10 @@
private String leaguesLogo;
+ private String countryName;
+
+ private String countryCode;
+
+ private String countryFlag;
+
}
diff --git a/src/main/java/cc/mrbird/febs/dapp/soccer/entity/SoccerTimezone.java b/src/main/java/cc/mrbird/febs/dapp/soccer/entity/SoccerTimezone.java
new file mode 100644
index 0000000..9d4d776
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/dapp/soccer/entity/SoccerTimezone.java
@@ -0,0 +1,12 @@
+package cc.mrbird.febs.dapp.soccer.entity;
+
+import cc.mrbird.febs.common.entity.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+@Data
+@TableName("soccer_timezone")
+public class SoccerTimezone extends BaseEntity {
+
+ private String timezoneName;
+}
diff --git a/src/main/java/cc/mrbird/febs/dapp/soccer/entity/league.java b/src/main/java/cc/mrbird/febs/dapp/soccer/entity/league.java
new file mode 100644
index 0000000..1b64740
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/dapp/soccer/entity/league.java
@@ -0,0 +1,20 @@
+package cc.mrbird.febs.dapp.soccer.entity;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+@Data
+public class league {
+
+ @JsonProperty("id")
+ private Integer id;
+
+ @JsonProperty("name")
+ private String name;
+
+ @JsonProperty("type")
+ private String type;
+
+ @JsonProperty("logo")
+ private String logo;
+}
diff --git a/src/main/java/cc/mrbird/febs/dapp/soccer/mapper/SoccerTimezoneMapper.java b/src/main/java/cc/mrbird/febs/dapp/soccer/mapper/SoccerTimezoneMapper.java
new file mode 100644
index 0000000..fcf60ea
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/dapp/soccer/mapper/SoccerTimezoneMapper.java
@@ -0,0 +1,7 @@
+package cc.mrbird.febs.dapp.soccer.mapper;
+
+import cc.mrbird.febs.dapp.soccer.entity.SoccerTimezone;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+public interface SoccerTimezoneMapper extends BaseMapper<SoccerTimezone> {
+}
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 8b87cd0..26bf217 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
@@ -1,19 +1,16 @@
package cc.mrbird.febs.dapp.soccer.service.Impl;
-import cc.mrbird.febs.common.contants.SoccerContants;
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.dapp.soccer.dto.LeaguesApiDto;
-import cc.mrbird.febs.dapp.soccer.entity.JsonResponse;
-import cc.mrbird.febs.dapp.soccer.entity.SoccerCountries;
-import cc.mrbird.febs.dapp.soccer.entity.SoccerLeagues;
+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.service.CountryService;
import cc.mrbird.febs.dapp.soccer.util.SoccerResponseUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
-import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -35,47 +32,51 @@
private final SoccerCountriesMapper soccerCountriesMapper;
private final SoccerLeaguesMapper soccerLeaguesMapper;
+ private final SoccerTimezoneMapper soccerTimezoneMapper;
@Override
public FebsResponse countries() {
- HttpResponse<String> response = null;
+ HttpResponse<String> httpResponse = null;
try {
- response = Unirest.get("http://v3.football.api-sports.io/countries")
+ httpResponse = Unirest.get("http://v3.football.api-sports.io/countries")
.header("x-rapidapi-key", "87f8d87d629d1704ba49622cb978eb81")
.header("x-rapidapi-host", "v3.football.api-sports.io").asString();
} catch (UnirestException e) {
e.printStackTrace();
}
- JSONArray jsonArray = SoccerResponseUtil.getResponseToJSONArray(response);
- if(CollUtil.isNotEmpty(jsonArray)){
- for(Object list : jsonArray){
- JSONObject jsonObject = JSONUtil.parseObj(list);
- String code = SoccerResponseUtil.objectToStr(jsonObject.get("code"));
- List<SoccerCountries> soccerCountryList = soccerCountriesMapper.selectList(new QueryWrapper<SoccerCountries>().eq("code", code));
- if(CollUtil.isNotEmpty(soccerCountryList)){
- continue;
+ JsonResponse jsonResponse = SoccerResponseUtil.getJsonResponse(httpResponse);
+ if(ObjectUtil.isNotEmpty(jsonResponse)){
+ List<Object> responses = jsonResponse.getResponse();
+ if(CollUtil.isNotEmpty(responses)){
+ for(Object list : responses){
+ JSONObject jsonObject = JSONUtil.parseObj(list);
+ String code = SoccerResponseUtil.objectToStr(jsonObject.get("code"));
+ List<SoccerCountries> soccerCountryList = soccerCountriesMapper.selectList(new QueryWrapper<SoccerCountries>().eq("code", code));
+ if(CollUtil.isNotEmpty(soccerCountryList)){
+ continue;
+ }
+ SoccerCountries soccerCountries = new SoccerCountries();
+ soccerCountries.setName(SoccerResponseUtil.objectToStr(jsonObject.get("code")));
+ soccerCountries.setCode(SoccerResponseUtil.objectToStr(jsonObject.get("name")));
+ soccerCountries.setFlag(SoccerResponseUtil.objectToStr(jsonObject.get("flag")));
+ soccerCountriesMapper.insert(soccerCountries);
}
- SoccerCountries soccerCountries = new SoccerCountries();
- soccerCountries.setName(SoccerResponseUtil.objectToStr(jsonObject.get("code")));
- soccerCountries.setCode(SoccerResponseUtil.objectToStr(jsonObject.get("name")));
- soccerCountries.setFlag(SoccerResponseUtil.objectToStr(jsonObject.get("flag")));
- soccerCountriesMapper.insert(soccerCountries);
}
}
- return new FebsResponse().success();
+ return new FebsResponse().success().data(jsonResponse);
}
@Override
public FebsResponse leagues(LeaguesApiDto leaguesApiDto) {
- HttpResponse<String> response = null;
+ HttpResponse<String> httpResponse = null;
int season = ObjectUtil.isEmpty(leaguesApiDto.getSeason()) ? DateUtil.date().year() : leaguesApiDto.getSeason();
String current = ObjectUtil.isEmpty(leaguesApiDto.getCurrent()) ? "true" : leaguesApiDto.getCurrent();
try {
/**
* https://v3.football.api-sports.io/leagues?season=2023¤t=true
*/
- response = Unirest.get(" https://v3.football.api-sports.io/leagues")
+ httpResponse = Unirest.get(" https://v3.football.api-sports.io/leagues")
.header("x-rapidapi-key", "87f8d87d629d1704ba49622cb978eb81")
.header("x-rapidapi-host", "v3.football.api-sports.io")
.queryString("season",season)
@@ -85,81 +86,121 @@
e.printStackTrace();
}
- JSONArray jsonArray = SoccerResponseUtil.getResponseToJSONArray(response);
- if(CollUtil.isNotEmpty(jsonArray)){
- for(Object list : jsonArray){
- JSONObject parseObj1 = JSONUtil.parseObj(list);
- Object leagueObj = parseObj1.get("league");
- JSONObject parseObjLeague = JSONUtil.parseObj(leagueObj);
- JSONObject leagueStr = JSONUtil.parseObj(parseObjLeague);
+ LeaguesResponse leaguesResponse = SoccerResponseUtil.getLeaguesResponse(httpResponse);
+ if(ObjectUtil.isNotEmpty(leaguesResponse)){
+ List<LeaguesInfo> responses = leaguesResponse.getResponse();
+ if(CollUtil.isNotEmpty(responses)){
+ for(LeaguesInfo leaguesInfo : responses){
- Integer leaguesId = SoccerResponseUtil.objectToInteger(leagueStr.get("id"));
- List<SoccerLeagues> soccerLeaguesList = soccerLeaguesMapper.selectList(new QueryWrapper<SoccerLeagues>().eq("leagues_id", leaguesId));
- if(CollUtil.isNotEmpty(soccerLeaguesList)){
- continue;
+ SoccerLeagues soccerLeagues = new SoccerLeagues();
+ Integer leaguesId = SoccerResponseUtil.objectToInteger(leaguesInfo.getLeague().getId());
+ List<SoccerLeagues> soccerLeaguesList = soccerLeaguesMapper.selectList(new QueryWrapper<SoccerLeagues>().eq("leagues_id", leaguesId));
+ if(CollUtil.isNotEmpty(soccerLeaguesList)){
+ continue;
+ }
+ soccerLeagues.setLeaguesId(SoccerResponseUtil.objectToInteger(leaguesInfo.getLeague().getId()));
+ soccerLeagues.setLeaguesName(SoccerResponseUtil.objectToStr(leaguesInfo.getLeague().getName()));
+ soccerLeagues.setLeaguesType(SoccerResponseUtil.objectToStr(leaguesInfo.getLeague().getType()));
+ soccerLeagues.setLeaguesLogo(SoccerResponseUtil.objectToStr(leaguesInfo.getLeague().getLogo()));
+
+ soccerLeagues.setCountryName(SoccerResponseUtil.objectToStr(leaguesInfo.getCountry().getName()));
+ soccerLeagues.setCountryCode(SoccerResponseUtil.objectToStr(leaguesInfo.getCountry().getCode()));
+ soccerLeagues.setCountryFlag(SoccerResponseUtil.objectToStr(leaguesInfo.getCountry().getFlag()));
+ soccerLeaguesMapper.insert(soccerLeagues);
}
- SoccerLeagues soccerLeagues = new SoccerLeagues();
- soccerLeagues.setLeaguesId(SoccerResponseUtil.objectToInteger(leagueStr.get("id")));
- soccerLeagues.setLeaguesName(SoccerResponseUtil.objectToStr(leagueStr.get("name")));
- soccerLeagues.setLeaguesType(SoccerResponseUtil.objectToStr(leagueStr.get("type")));
- soccerLeagues.setLeaguesLogo(SoccerResponseUtil.objectToStr(leagueStr.get("logo")));
- soccerLeaguesMapper.insert(soccerLeagues);
}
}
- return new FebsResponse().success();
+
+ return new FebsResponse().success().data(leaguesResponse);
}
@Override
public FebsResponse timezone() {
- HttpResponse<String> response = null;
+ HttpResponse<String> httpResponse = null;
try {
- response = Unirest.get("https://v3.football.api-sports.io/timezone")
+ httpResponse = Unirest.get("https://v3.football.api-sports.io/timezone")
.header("x-rapidapi-key", "87f8d87d629d1704ba49622cb978eb81")
.header("x-rapidapi-host", "v3.football.api-sports.io").asString();
} catch (UnirestException e) {
e.printStackTrace();
}
- JsonResponse jsonResponse = SoccerResponseUtil.getJsonResponse(response);
+ JsonResponse jsonResponse = SoccerResponseUtil.getJsonResponse(httpResponse);
+ if(ObjectUtil.isNotEmpty(jsonResponse)){
+ List<Object> responses = jsonResponse.getResponse();
+ if(CollUtil.isNotEmpty(jsonResponse.getResponse())){
+ for(Object timezoneName : responses){
+ SoccerTimezone soccerTimezone = new SoccerTimezone();
+ soccerTimezone.setTimezoneName(SoccerResponseUtil.objectToStr(timezoneName));
+ soccerTimezoneMapper.insert(soccerTimezone);
+ }
+ }
+ }
- log.info(jsonResponse.getResponse().get(1));
-
-// JSONArray jsonArray = SoccerResponseUtil.getResponseToJSONArray(response);
-// if(CollUtil.isNotEmpty(jsonArray)){
-// for(Object list : jsonArray){
-// JSONObject jsonObject = JSONUtil.parseObj(list);
-// String code = SoccerResponseUtil.objectToStr(jsonObject.get("code"));
-// List<SoccerCountries> soccerCountryList = soccerCountriesMapper.selectList(new QueryWrapper<SoccerCountries>().eq("code", code));
-// if(CollUtil.isNotEmpty(soccerCountryList)){
-// continue;
-// }
-// SoccerCountries soccerCountries = new SoccerCountries();
-// soccerCountries.setName(SoccerResponseUtil.objectToStr(jsonObject.get("code")));
-// soccerCountries.setCode(SoccerResponseUtil.objectToStr(jsonObject.get("name")));
-// soccerCountries.setFlag(SoccerResponseUtil.objectToStr(jsonObject.get("flag")));
-// soccerCountriesMapper.insert(soccerCountries);
-// }
-// }
- return new FebsResponse().success();
+ return new FebsResponse().success().data(jsonResponse);
}
public static void main(String[] args) {
-
- StringBuffer stringBuffer = new StringBuffer("{\"get\":\"timezone\",\"parameters\":[],\"errors\":[],\"results\":427,\"paging\":{\"current\":1,\"total\":1},\"response\":[\"Africa\\/Abidjan\",\"Africa\\/Accra\",\"Africa\\/Addis_Ababa\",\"Africa\\/Algiers\",\"Africa\\/Asmara\",\"Africa\\/Bamako\",\"Africa\\/Bangui\",\"Africa\\/Banjul\",\"Africa\\/Bissau\",\"Africa\\/Blantyre\",\"Africa\\/Brazzaville\",\"Africa\\/Bujumbura\",\"Africa\\/Cairo\",\"Africa\\/Casablanca\",\"Africa\\/Ceuta\",\"Africa\\/Conakry\",\"Africa\\/Dakar\",\"Africa\\/Dar_es_Salaam\",\"Africa\\/Djibouti\",\"Africa\\/Douala\",\"Africa\\/El_Aaiun\",\"Africa\\/Freetown\",\"Africa\\/Gaborone\",\"Africa\\/Harare\",\"Africa\\/Johannesburg\",\"Africa\\/Juba\",\"Africa\\/Kampala\",\"Africa\\/Khartoum\",\"Africa\\/Kigali\",\"Africa\\/Kinshasa\",\"Africa\\/Lagos\",\"Africa\\/Libreville\",\"Africa\\/Lome\",\"Africa\\/Luanda\",\"Africa\\/Lubumbashi\",\"Africa\\/Lusaka\",\"Africa\\/Malabo\",\"Africa\\/Maputo\",\"Africa\\/Maseru\",\"Africa\\/Mbabane\",\"Africa\\/Mogadishu\",\"Africa\\/Monrovia\",\"Africa\\/Nairobi\",\"Africa\\/Ndjamena\",\"Africa\\/Niamey\",\"Africa\\/Nouakchott\",\"Africa\\/Ouagadougou\",\"Africa\\/Porto-Novo\",\"Africa\\/Sao_Tome\",\"Africa\\/Tripoli\",\"Africa\\/Tunis\",\"Africa\\/Windhoek\",\"America\\/Adak\",\"America\\/Anchorage\",\"America\\/Anguilla\",\"America\\/Antigua\",\"America\\/Araguaina\",\"America\\/Argentina\\/Buenos_Aires\",\"America\\/Argentina\\/Catamarca\",\"America\\/Argentina\\/Cordoba\",\"America\\/Argentina\\/Jujuy\",\"America\\/Argentina\\/La_Rioja\",\"America\\/Argentina\\/Mendoza\",\"America\\/Argentina\\/Rio_Gallegos\",\"America\\/Argentina\\/Salta\",\"America\\/Argentina\\/San_Juan\",\"America\\/Argentina\\/San_Luis\",\"America\\/Argentina\\/Tucuman\",\"America\\/Argentina\\/Ushuaia\",\"America\\/Aruba\",\"America\\/Asuncion\",\"America\\/Atikokan\",\"America\\/Bahia\",\"America\\/Bahia_Banderas\",\"America\\/Barbados\",\"America\\/Belem\",\"America\\/Belize\",\"America\\/Blanc-Sablon\",\"America\\/Boa_Vista\",\"America\\/Bogota\",\"America\\/Boise\",\"America\\/Cambridge_Bay\",\"America\\/Campo_Grande\",\"America\\/Cancun\",\"America\\/Caracas\",\"America\\/Cayenne\",\"America\\/Cayman\",\"America\\/Chicago\",\"America\\/Chihuahua\",\"America\\/Costa_Rica\",\"America\\/Creston\",\"America\\/Cuiaba\",\"America\\/Curacao\",\"America\\/Danmarkshavn\",\"America\\/Dawson\",\"America\\/Dawson_Creek\",\"America\\/Denver\",\"America\\/Detroit\",\"America\\/Dominica\",\"America\\/Edmonton\",\"America\\/Eirunepe\",\"America\\/El_Salvador\",\"America\\/Fort_Nelson\",\"America\\/Fortaleza\",\"America\\/Glace_Bay\",\"America\\/Godthab\",\"America\\/Goose_Bay\",\"America\\/Grand_Turk\",\"America\\/Grenada\",\"America\\/Guadeloupe\",\"America\\/Guatemala\",\"America\\/Guayaquil\",\"America\\/Guyana\",\"America\\/Halifax\",\"America\\/Havana\",\"America\\/Hermosillo\",\"America\\/Indiana\\/Indianapolis\",\"America\\/Indiana\\/Knox\",\"America\\/Indiana\\/Marengo\",\"America\\/Indiana\\/Petersburg\",\"America\\/Indiana\\/Tell_City\",\"America\\/Indiana\\/Vevay\",\"America\\/Indiana\\/Vincennes\",\"America\\/Indiana\\/Winamac\",\"America\\/Inuvik\",\"America\\/Iqaluit\",\"America\\/Jamaica\",\"America\\/Juneau\",\"America\\/Kentucky\\/Louisville\",\"America\\/Kentucky\\/Monticello\",\"America\\/Kralendijk\",\"America\\/La_Paz\",\"America\\/Lima\",\"America\\/Los_Angeles\",\"America\\/Lower_Princes\",\"America\\/Maceio\",\"America\\/Managua\",\"America\\/Manaus\",\"America\\/Marigot\",\"America\\/Martinique\",\"America\\/Matamoros\",\"America\\/Mazatlan\",\"America\\/Menominee\",\"America\\/Merida\",\"America\\/Metlakatla\",\"America\\/Mexico_City\",\"America\\/Miquelon\",\"America\\/Moncton\",\"America\\/Monterrey\",\"America\\/Montevideo\",\"America\\/Montserrat\",\"America\\/Nassau\",\"America\\/New_York\",\"America\\/Nipigon\",\"America\\/Nome\",\"America\\/Noronha\",\"America\\/North_Dakota\\/Beulah\",\"America\\/North_Dakota\\/Center\",\"America\\/North_Dakota\\/New_Salem\",\"America\\/Ojinaga\",\"America\\/Panama\",\"America\\/Pangnirtung\",\"America\\/Paramaribo\",\"America\\/Phoenix\",\"America\\/Port-au-Prince\",\"America\\/Port_of_Spain\",\"America\\/Porto_Velho\",\"America\\/Puerto_Rico\",\"America\\/Punta_Arenas\",\"America\\/Rainy_River\",\"America\\/Rankin_Inlet\",\"America\\/Recife\",\"America\\/Regina\",\"America\\/Resolute\",\"America\\/Rio_Branco\",\"America\\/Santarem\",\"America\\/Santiago\",\"America\\/Santo_Domingo\",\"America\\/Sao_Paulo\",\"America\\/Scoresbysund\",\"America\\/Sitka\",\"America\\/St_Barthelemy\",\"America\\/St_Johns\",\"America\\/St_Kitts\",\"America\\/St_Lucia\",\"America\\/St_Thomas\",\"America\\/St_Vincent\",\"America\\/Swift_Current\",\"America\\/Tegucigalpa\",\"America\\/Thule\",\"America\\/Thunder_Bay\",\"America\\/Tijuana\",\"America\\/Toronto\",\"America\\/Tortola\",\"America\\/Vancouver\",\"America\\/Whitehorse\",\"America\\/Winnipeg\",\"America\\/Yakutat\",\"America\\/Yellowknife\",\"Antarctica\\/Casey\",\"Antarctica\\/Davis\",\"Antarctica\\/DumontDUrville\",\"Antarctica\\/Macquarie\",\"Antarctica\\/Mawson\",\"Antarctica\\/McMur\",\"Antarctica\\/PalmerAnta\",\"Antarctica\\/Rothera\",\"Antarctica\\/Syowa\",\"Antarctica\\/Troll\",\"Antarctica\\/Vostok\",\"Arctic\\/Longyearbyen\",\"Asia\\/Aden\",\"Asia\\/Almaty\",\"Asia\\/Amman\",\"Asia\\/Anadyr\",\"Asia\\/Aqtau\",\"Asia\\/Aqtobe\",\"Asia\\/Ashgabat\",\"Asia\\/Atyrau\",\"Asia\\/Baghdad\",\"Asia\\/Bahrain\",\"Asia\\/Baku\",\"Asia\\/Bangkok\",\"Asia\\/Barnaul\",\"Asia\\/Beirut\",\"Asia\\/Bishkek\",\"Asia\\/Brunei\",\"Asia\\/Calcutta\",\"Asia\\/Chita\",\"Asia\\/Choibalsan\",\"Asia\\/Colombo\",\"Asia\\/Damascus\",\"Asia\\/Dhaka\",\"Asia\\/Dili\",\"Asia\\/Dubai\",\"Asia\\/Dushanbe\",\"Asia\\/Famagusta\",\"Asia\\/Gaza\",\"Asia\\/Hebron\",\"Asia\\/Ho_Chi_Minh\",\"Asia\\/Hong_Kong\",\"Asia\\/Hovd\",\"Asia\\/Irkutsk\",\"Asia\\/Jakarta\",\"Asia\\/Jayapura\",\"Asia\\/Jerusalem\",\"Asia\\/Kabul\",\"Asia\\/Kamchatka\",\"Asia\\/Karachi\",\"Asia\\/Kathmandu\",\"Asia\\/Khandyga\",\"Asia\\/Kolkata\",\"Asia\\/Krasnoyarsk\",\"Asia\\/Kuala_Lumpur\",\"Asia\\/Kuching\",\"Asia\\/Kuwait\",\"Asia\\/Macau\",\"Asia\\/Magadan\",\"Asia\\/Makassar\",\"Asia\\/Manila\",\"Asia\\/Muscat\",\"Asia\\/Nicosia\",\"Asia\\/Novokuznetsk\",\"Asia\\/Novosibirsk\",\"Asia\\/Omsk\",\"Asia\\/Oral\",\"Asia\\/Phnom_Penh\",\"Asia\\/Pontianak\",\"Asia\\/Pyongyang\",\"Asia\\/Qatar\",\"Asia\\/Qostanay\",\"Asia\\/Qyzylorda\",\"Asia\\/Riyadh\",\"Asia\\/Saigon\",\"Asia\\/Sakhalin\",\"Asia\\/Samarkand\",\"Asia\\/Seoul\",\"Asia\\/Shanghai\",\"Asia\\/Singapore\",\"Asia\\/Srednekolymsk\",\"Asia\\/Taipei\",\"Asia\\/Tashkent\",\"Asia\\/Tbilisi\",\"Asia\\/Tehran\",\"Asia\\/Thimphu\",\"Asia\\/Tokyo\",\"Asia\\/Tomsk\",\"Asia\\/Ulaanbaatar\",\"Asia\\/Urumqi\",\"Asia\\/Ust-Nera\",\"Asia\\/Vientiane\",\"Asia\\/Vladivostok\",\"Asia\\/Yakutsk\",\"Asia\\/Yangon\",\"Asia\\/Yekaterinburg\",\"Asia\\/Yerevan\",\"Atlantic\\/Azores\",\"Atlantic\\/Bermuda\",\"Atlantic\\/Canary\",\"Atlantic\\/Cape_Verde\",\"Atlantic\\/Faroe\",\"Atlantic\\/Madeira\",\"Atlantic\\/Reykjavik\",\"Atlantic\\/South_Georgia\",\"Atlantic\\/St_Helena\",\"Atlantic\\/Stanley\",\"Australia\\/Adelaide\",\"Australia\\/Brisbane\",\"Australia\\/Broken_Hill\",\"Australia\\/Currie\",\"Australia\\/Darwin\",\"Australia\\/Eucla\",\"Australia\\/Hobart\",\"Australia\\/Lindeman\",\"Australia\\/Lord_Howe\",\"Australia\\/Melbourne\",\"Australia\\/Perth\",\"Australia\\/Sydney\",\"Europe\\/Amsterdam\",\"Europe\\/Andorra\",\"Europe\\/Astrakhan\",\"Europe\\/Athens\",\"Europe\\/Belgrade\",\"Europe\\/Berlin\",\"Europe\\/Bratislava\",\"Europe\\/Brussels\",\"Europe\\/Bucharest\",\"Europe\\/Budapest\",\"Europe\\/Busingen\",\"Europe\\/Chisinau\",\"Europe\\/Copenhagen\",\"Europe\\/Dublin\",\"Europe\\/Gibraltar\",\"Europe\\/Guernsey\",\"Europe\\/Helsinki\",\"Europe\\/Isle_of_Man\",\"Europe\\/Istanbul\",\"Europe\\/Jersey\",\"Europe\\/Kaliningrad\",\"Europe\\/Kiev\",\"Europe\\/Kirov\",\"Europe\\/Lisbon\",\"Europe\\/Ljubljana\",\"Europe\\/London\",\"Europe\\/Luxembourg\",\"Europe\\/Madrid\",\"Europe\\/Malta\",\"Europe\\/Mariehamn\",\"Europe\\/Minsk\",\"Europe\\/Monaco\",\"Europe\\/Moscow\",\"Europe\\/Oslo\",\"Europe\\/Paris\",\"Europe\\/Podgorica\",\"Europe\\/Prague\",\"Europe\\/Riga\",\"Europe\\/Rome\",\"Europe\\/Samara\",\"Europe\\/San_Marino\",\"Europe\\/Sarajevo\",\"Europe\\/Saratov\",\"Europe\\/Simferopol\",\"Europe\\/Skopje\",\"Europe\\/Sofia\",\"Europe\\/Stockholm\",\"Europe\\/Tallinn\",\"Europe\\/Tirane\",\"Europe\\/Ulyanovsk\",\"Europe\\/Uzhgorod\",\"Europe\\/Vaduz\",\"Europe\\/Vatican\",\"Europe\\/Vienna\",\"Europe\\/Vilnius\",\"Europe\\/Volgograd\",\"Europe\\/Warsaw\",\"Europe\\/Zagreb\",\"Europe\\/Zaporozhye\",\"Europe\\/Zurich\",\"Indian\\/Antananarivo\",\"Indian\\/Chagos\",\"Indian\\/Christmas\",\"Indian\\/Cocos\",\"Indian\\/Comoro\",\"Indian\\/Kerguelen\",\"Indian\\/Mahe\",\"Indian\\/Maldives\",\"Indian\\/Mauritius\",\"Indian\\/Mayotte\",\"Indian\\/Reunion\",\"Pacific\\/Apia\",\"Pacific\\/Auckland\",\"Pacific\\/Bougainville\",\"Pacific\\/Chatham\",\"Pacific\\/Chuuk\",\"Pacific\\/Easter\",\"Pacific\\/Efate\",\"Pacific\\/Enderbury\",\"Pacific\\/Fakaofo\",\"Pacific\\/Fiji\",\"Pacific\\/Funafuti\",\"Pacific\\/Galapagos\",\"Pacific\\/Gambier\",\"Pacific\\/Guadalcanal\",\"Pacific\\/Guam\",\"Pacific\\/Honolulu\",\"Pacific\\/Kiritimati\",\"Pacific\\/Kosrae\",\"Pacific\\/Kwajalein\",\"Pacific\\/Majuro\",\"Pacific\\/Marquesas\",\"Pacific\\/Midway\",\"Pacific\\/Nauru\",\"Pacific\\/Niue\",\"Pacific\\/Norfolk\",\"Pacific\\/Noumea\",\"Pacific\\/Pago_Pago\",\"Pacific\\/Palau\",\"Pacific\\/Pitcairn\",\"Pacific\\/Pohnpei\",\"Pacific\\/Port_Moresby\",\"Pacific\\/Rarotonga\",\"Pacific\\/Saipan\",\"Pacific\\/Tahiti\",\"Pacific\\/Tarawa\",\"Pacific\\/Tongatapu\",\"Pacific\\/Wake\",\"Pacific\\/Wallis\"]}");
- JSONObject parseObj = JSONUtil.parseObj(stringBuffer);
- Object responseStr = parseObj.get(SoccerContants.RESPONSE);
- JSONArray jsonArray = JSONUtil.parseArray(responseStr);
- System.out.println(jsonArray);
-
+ String str = "{\n" +
+ " \"get\": \"leagues\",\n" +
+ " \"parameters\": {\n" +
+ " \"season\": \"2008\",\n" +
+ " \"country\": \"World\"\n" +
+ " },\n" +
+ " \"errors\": [],\n" +
+ " \"results\": 1,\n" +
+ " \"paging\": {\n" +
+ " \"current\": 1,\n" +
+ " \"total\": 1\n" +
+ " },\n" +
+ " \"response\": [\n" +
+ " {\n" +
+ " \"league\": {\n" +
+ " \"id\": 4,\n" +
+ " \"name\": \"Euro Championship\",\n" +
+ " \"type\": \"Cup\",\n" +
+ " \"logo\": \"https://media.api-sports.io/football/leagues/4.png\"\n" +
+ " },\n" +
+ " \"country\": {\n" +
+ " \"name\": \"World\",\n" +
+ " \"code\": null,\n" +
+ " \"flag\": null\n" +
+ " },\n" +
+ " \"seasons\": [\n" +
+ " {\n" +
+ " \"year\": 2008,\n" +
+ " \"start\": \"2008-06-07\",\n" +
+ " \"end\": \"2008-06-29\",\n" +
+ " \"current\": false,\n" +
+ " \"coverage\": {\n" +
+ " \"fixtures\": {\n" +
+ " \"events\": true,\n" +
+ " \"lineups\": true,\n" +
+ " \"statistics_fixtures\": false,\n" +
+ " \"statistics_players\": false\n" +
+ " },\n" +
+ " \"standings\": false,\n" +
+ " \"players\": true,\n" +
+ " \"top_scorers\": true,\n" +
+ " \"top_assists\": true,\n" +
+ " \"top_cards\": true,\n" +
+ " \"injuries\": false,\n" +
+ " \"predictions\": true,\n" +
+ " \"odds\": false\n" +
+ " }\n" +
+ " }\n" +
+ " ]\n" +
+ " }\n" +
+ " ]\n" +
+ "}";
+ LeaguesResponse leaguesResponse = new LeaguesResponse();
ObjectMapper mapper = new ObjectMapper();
try {
- JsonResponse jsonResponse = mapper.readValue(stringBuffer.toString(), JsonResponse.class);
-
- System.out.println(jsonResponse.getResponse());
- // 现在你可以使用jsonResponse对象了
+ leaguesResponse = mapper.readValue(str, LeaguesResponse.class);
} catch (Exception e) {
e.printStackTrace();
}
+ System.out.println(leaguesResponse);
}
}
diff --git a/src/main/java/cc/mrbird/febs/dapp/soccer/util/SoccerResponseUtil.java b/src/main/java/cc/mrbird/febs/dapp/soccer/util/SoccerResponseUtil.java
index 1ad9ef3..5b6f498 100644
--- a/src/main/java/cc/mrbird/febs/dapp/soccer/util/SoccerResponseUtil.java
+++ b/src/main/java/cc/mrbird/febs/dapp/soccer/util/SoccerResponseUtil.java
@@ -2,6 +2,7 @@
import cc.mrbird.febs.common.contants.SoccerContants;
import cc.mrbird.febs.dapp.soccer.entity.JsonResponse;
+import cc.mrbird.febs.dapp.soccer.entity.LeaguesResponse;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
@@ -33,6 +34,22 @@
return jsonResponse;
}
+ /**
+ * 将接口获取到的返回值转换成LeaguesResponse
+ * @param response
+ * @return
+ */
+ public static LeaguesResponse getLeaguesResponse(HttpResponse<String> response){
+ LeaguesResponse leaguesResponse = new LeaguesResponse();
+ ObjectMapper mapper = new ObjectMapper();
+ try {
+ leaguesResponse = mapper.readValue(response.getBody(), LeaguesResponse.class);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return leaguesResponse;
+ }
+
public static String objectToStr(Object object){
return ObjectUtil.isEmpty(object) ? "-" : (String) object;
}
--
Gitblit v1.9.1