package cc.mrbird.febs.dapp.basketball_nba.service.Impl; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.dapp.basketball_nba.entity.NbaLeagues; import cc.mrbird.febs.dapp.basketball_nba.entity.NbaSeasons; import cc.mrbird.febs.dapp.basketball_nba.mapper.NbaLeaguesMapper; import cc.mrbird.febs.dapp.basketball_nba.mapper.NbaSeasonsMapper; import cc.mrbird.febs.dapp.basketball_nba.service.BasketballService; import cc.mrbird.febs.dapp.basketball_nba.util.DataEnum; import cc.mrbird.febs.dapp.basketball_nba.util.SoccerResponseUtil; import cc.mrbird.febs.dapp.basketball_nba.vo.JsonResponse; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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; import java.util.List; @Slf4j @Service @RequiredArgsConstructor public class BasketballServiceImpl extends ServiceImpl implements BasketballService { private final NbaSeasonsMapper nbaSeasonsMapper; private final NbaLeaguesMapper nbaLeaguesMapper; @Override public FebsResponse seasons() { HttpResponse httpResponse = null; try { httpResponse = Unirest.get(DataEnum.SEASONS_URL.getCode()) .header(DataEnum.API_KEY.getType(), DataEnum.API_KEY.getCode()) .header(DataEnum.API_HOST.getType(), DataEnum.API_HOST.getCode()).asString(); } catch (UnirestException e) { e.printStackTrace(); } JsonResponse jsonResponse = SoccerResponseUtil.getJsonResponse(httpResponse); if(ObjectUtil.isNotEmpty(jsonResponse)){ List responses = jsonResponse.getResponse(); if(CollUtil.isNotEmpty(jsonResponse.getResponse())){ for(Object object : responses){ NbaSeasons nbaSeasons = new NbaSeasons(); Integer seasonsCode = SoccerResponseUtil.objectToInteger(object); List nbaSeasonsList = nbaSeasonsMapper.selectList(new QueryWrapper().eq("seasons_code", seasonsCode)); if(CollUtil.isEmpty(nbaSeasonsList)){ nbaSeasons.setSeasonsCode(seasonsCode); nbaSeasonsMapper.insert(nbaSeasons); } } } } return new FebsResponse().success().data(jsonResponse); } @Override public FebsResponse leagues() { HttpResponse httpResponse = null; try { httpResponse = Unirest.get(DataEnum.LEAGUES_URL.getCode()) .header(DataEnum.API_KEY.getType(), DataEnum.API_KEY.getCode()) .header(DataEnum.API_HOST.getType(), DataEnum.API_HOST.getCode()).asString(); } catch (UnirestException e) { e.printStackTrace(); } JsonResponse jsonResponse = SoccerResponseUtil.getJsonResponse(httpResponse); if(ObjectUtil.isNotEmpty(jsonResponse)){ List responses = jsonResponse.getResponse(); if(CollUtil.isNotEmpty(jsonResponse.getResponse())){ for(Object object : responses){ NbaLeagues nbaLeagues = new NbaLeagues(); String leaguesCode = SoccerResponseUtil.objectToStr(object); List nbaLeaguesList = nbaLeaguesMapper.selectList(new QueryWrapper().eq("leagues_code", leaguesCode)); if(CollUtil.isEmpty(nbaLeaguesList)){ nbaLeagues.setLeaguesCode(leaguesCode); nbaLeaguesMapper.insert(nbaLeagues); } } } } return new FebsResponse().success().data(jsonResponse); } @Override public FebsResponse teams() { HttpResponse httpResponse = null; try { httpResponse = Unirest.get(DataEnum.TEAMS_URL.getCode()) .header(DataEnum.API_KEY.getType(), DataEnum.API_KEY.getCode()) .header(DataEnum.API_HOST.getType(), DataEnum.API_HOST.getCode()) .asString(); } catch (UnirestException e) { e.printStackTrace(); } JsonResponse jsonResponse = SoccerResponseUtil.getJsonResponse(httpResponse); if(ObjectUtil.isNotEmpty(jsonResponse)){ List responses = jsonResponse.getResponse(); if(CollUtil.isNotEmpty(jsonResponse.getResponse())){ for(Object object : responses){ NbaLeagues nbaLeagues = new NbaLeagues(); String leaguesCode = SoccerResponseUtil.objectToStr(object); List nbaLeaguesList = nbaLeaguesMapper.selectList(new QueryWrapper().eq("leagues_code", leaguesCode)); if(CollUtil.isEmpty(nbaLeaguesList)){ nbaLeagues.setLeaguesCode(leaguesCode); nbaLeaguesMapper.insert(nbaLeagues); } } } } return new FebsResponse().success().data(jsonResponse); } }