package cc.mrbird.febs.dapp.soccer.service.Impl;
|
|
import cc.mrbird.febs.common.entity.FebsResponse;
|
import cc.mrbird.febs.dapp.soccer.dto.LeaguesApiDto;
|
import cc.mrbird.febs.dapp.soccer.entity.SoccerCountries;
|
import cc.mrbird.febs.dapp.soccer.entity.SoccerLeagues;
|
import cc.mrbird.febs.dapp.soccer.mapper.SoccerCountriesMapper;
|
import cc.mrbird.febs.dapp.soccer.mapper.SoccerLeaguesMapper;
|
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.extension.service.impl.ServiceImpl;
|
import com.mashape.unirest.http.HttpResponse;
|
import com.mashape.unirest.http.Unirest;
|
import com.mashape.unirest.http.exceptions.UnirestException;
|
import lombok.RequiredArgsConstructor;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.stereotype.Service;
|
|
@Slf4j
|
@Service
|
@RequiredArgsConstructor
|
public class CountryServiceImpl extends ServiceImpl<SoccerCountriesMapper, SoccerCountries> implements CountryService {
|
|
private final SoccerCountriesMapper soccerCountriesMapper;
|
private final SoccerLeaguesMapper soccerLeaguesMapper;
|
|
@Override
|
public FebsResponse countries() {
|
HttpResponse<String> response = null;
|
try {
|
response = 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);
|
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();
|
}
|
|
@Override
|
public FebsResponse leagues(LeaguesApiDto leaguesApiDto) {
|
HttpResponse<String> response = 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")
|
.header("x-rapidapi-key", "87f8d87d629d1704ba49622cb978eb81")
|
.header("x-rapidapi-host", "v3.football.api-sports.io")
|
.queryString("season",season)
|
.queryString("current",current)
|
.asString();
|
} catch (UnirestException e) {
|
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);
|
|
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);
|
}
|
}
|
System.out.println(jsonArray);
|
log.info(String.valueOf(response.getRawBody()));
|
return new FebsResponse().success();
|
}
|
}
|