package com.dsh.guns.modular.system.controller.code; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.dsh.course.feignClient.other.model.Site; import com.dsh.guns.config.UserExt; import com.dsh.guns.core.base.controller.BaseController; import com.dsh.guns.modular.system.model.*; import com.dsh.guns.modular.system.service.ISiteBookingService; import com.dsh.guns.modular.system.service.IStoreService; import com.dsh.guns.modular.system.service.ITSiteService; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.ContentType; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.ProtocolException; import java.net.URL; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.*; /** * 智慧球场统计控制器 * */ @Controller @RequestMapping("/gameData") public class GameDataController extends BaseController { private String PREFIX = "/system/gameData/"; @Autowired private ITSiteService siteService; @Autowired private IStoreService storeService; @Autowired private ISiteBookingService siteBookingService; @RequestMapping("/listAll") @ResponseBody public Object list(String spaceId,String type,String date,String cityCode){ if(spaceId==null){ spaceId=""; } if(type==null){ type="y"; } if(date==null){ date=""; } if(cityCode==null){ cityCode=""; } String apiUrl1 = "https://try.daowepark.com/v7/user_api/general/cityGameRanking?space_id="+spaceId+"&type="+type+"&date="+date+"&city_code="+cityCode; URL url1 = null; try { url1 = new URL(apiUrl1); HttpURLConnection connection1 = (HttpURLConnection) url1.openConnection(); connection1.setRequestMethod("GET"); // 发送请求并获取响应 int responseCode1 = connection1.getResponseCode(); if (responseCode1 == HttpURLConnection.HTTP_OK) { BufferedReader reader1 = new BufferedReader(new InputStreamReader(connection1.getInputStream())); String line1; StringBuilder response1 = new StringBuilder(); while ((line1 = reader1.readLine()) != null) { response1.append(line1); } reader1.close(); // 处理响应数据 String data1 = response1.toString(); // 使用Jackson库将JSON字符串转换为Java对象 ObjectMapper objectMapper1 = new ObjectMapper(); CityGameOne res1 = objectMapper1.readValue(data1, CityGameOne.class); List data2 = res1.getData(); return data2; } } catch (ProtocolException e) { e.printStackTrace(); } catch (JsonProcessingException e) { e.printStackTrace(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return new ArrayList<>(); } @RequestMapping("/listAll1") @ResponseBody public Object listAll1(String spaceId,String type,String date,String cityCode){ if(spaceId==null){ spaceId=""; } if(type==null){ type="y"; } if(date==null){ date=""; } if(cityCode==null){ cityCode=""; } // String apiUrl1 = "https://try.daowepark.com/v7/user_api/general/accuracyGameRanking?space_id=1001"+spaceId+"&type="+type+"&date="+date+"&city_code="+cityCode; String apiUrl1 = "https://try.daowepark.com/v7/user_api/general/accuracyGameRanking?space_id="+spaceId+"&type="+type+"&date="+date+"&city_code="+cityCode; URL url1 = null; try { url1 = new URL(apiUrl1); HttpURLConnection connection1 = (HttpURLConnection) url1.openConnection(); connection1.setRequestMethod("GET"); // 发送请求并获取响应 int responseCode1 = connection1.getResponseCode(); if (responseCode1 == HttpURLConnection.HTTP_OK) { BufferedReader reader1 = new BufferedReader(new InputStreamReader(connection1.getInputStream())); String line1; StringBuilder response1 = new StringBuilder(); while ((line1 = reader1.readLine()) != null) { response1.append(line1); } reader1.close(); // 处理响应数据 String data1 = response1.toString(); // 使用Jackson库将JSON字符串转换为Java对象 ObjectMapper objectMapper1 = new ObjectMapper(); AccuracyGameOne res1 = objectMapper1.readValue(data1, AccuracyGameOne.class); List data2 = res1.getData(); return data2; } } catch (ProtocolException e) { e.printStackTrace(); } catch (JsonProcessingException e) { e.printStackTrace(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return new ArrayList<>(); } /** * 跳转到智慧球场数据统计页面 */ @RequestMapping("") public String index(Model model) { try { // 年度数据 // 创建 HttpClient 实例 HttpClient httpClient = HttpClients.createDefault(); // 创建 POST 请求 HttpPost httpPost = new HttpPost("https://try.daowepark.com/v7/user_api/general/gameList"); // 设置请求体数据 String postData = "sign=0DB011836143EEE2C2E072967C9F4E4B&space_id=1001&sutu_id=1001"; StringEntity entity = new StringEntity(postData, ContentType.APPLICATION_FORM_URLENCODED); httpPost.setEntity(entity); // 执行请求 HttpResponse response = httpClient.execute(httpPost); // 处理响应 HttpEntity responseEntity = response.getEntity(); if (responseEntity != null) { String responseData = EntityUtils.toString(responseEntity); ObjectMapper objectMapper = new ObjectMapper(); GameList res = objectMapper.readValue(responseData, GameList.class); List list = res.getData(); model.addAttribute("games",list); } } catch (IOException e) { e.printStackTrace(); } List strings = new ArrayList<>(); List list = siteService.list(new QueryWrapper()); List result = new ArrayList<>(); for (TSite tSite : list) { if (!strings.contains(tSite.getCity())) { strings.add(tSite.getCity()); result.add(tSite); } } List stores = storeService.list(new QueryWrapper()); model.addAttribute("stores", stores); model.addAttribute("list", result); model.addAttribute("sites", list); if(UserExt.getUser().getObjectType() == 2){ List operatorId = storeService.list(new QueryWrapper() .eq("operatorId", UserExt.getUser().getObjectId())); model.addAttribute("stores", operatorId); List sites = siteService.list(new QueryWrapper() .eq("operatorId", UserExt.getUser().getObjectId())); model.addAttribute("sites", sites); } return PREFIX + "GameData.html"; } /** * 获取激战球场统计 */ @RequestMapping("/list") @ResponseBody public Object list(String range,String storeId) { Map result = new HashMap<>(); try { // 年度数据 // 创建 HttpClient 实例 HttpClient httpClient = HttpClients.createDefault(); // 创建 POST 请求 HttpPost httpPost = new HttpPost("https://try.daowepark.com/v7/user_api/general/getBatterData"); // 设置请求体数据 String postData = "sign=0DB011836143EEE2C2E072967C9F4E4B&space_id="+storeId+"&date_type="+range+"&year="; StringEntity entity = new StringEntity(postData, ContentType.APPLICATION_FORM_URLENCODED); httpPost.setEntity(entity); // 执行请求 HttpResponse response = httpClient.execute(httpPost); // 处理响应 HttpEntity responseEntity = response.getEntity(); if (responseEntity != null) { String responseData = EntityUtils.toString(responseEntity); ObjectMapper objectMapper = new ObjectMapper(); Batter batter = objectMapper.readValue(responseData, Batter.class); result.put("totalNumber", batter.getData().getAll_batter_num()); result.put("totalTime", batter.getData().getAll_batter_time()); List dataList = batter.getData().getList(); // 年份 List yearList = new ArrayList<>(); for (BatterData data : dataList) { yearList.add(data.getDate()); } result.put("yearList", yearList); // 年度数据 result.put("yDataList", dataList); } } catch (Exception e) { e.printStackTrace(); } return result; } /** * 获取SUTU智慧球门统计 */ @RequestMapping("/listSUTU") @ResponseBody public Object listSUTU() { Map result = new HashMap<>(); try { String apiUrl = "https://try.daowepark.com/v7/user_api/general/gameDataRate"; URL url = new URL(apiUrl); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); // 发送请求并获取响应 int responseCode = connection.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_OK) { BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); String line; StringBuilder response = new StringBuilder(); while ((line = reader.readLine()) != null) { response.append(line); } reader.close(); // 处理响应数据 String data = response.toString(); // 使用Jackson库将JSON字符串转换为Java对象 ObjectMapper objectMapper = new ObjectMapper(); SUTU res = objectMapper.readValue(data, SUTU.class); // 场地总入场人数 String totalNum = res.getData().getTotal_num(); List list = res.getData().getList(); List games = new ArrayList<>(); for (SUTUData sutuData : list) { games.add(sutuData.getGame_name()); } result.put("data1", list); result.put("games", games); return result; } else { System.out.println("请求失败: " + responseCode); } } catch (IOException e) { e.printStackTrace(); } return result; } /** * 获取SUTU智慧球门统计 */ @RequestMapping("/listSUTU1") @ResponseBody public Object listSUTU1(String range,String gameId, String time, String spaceId, String cityCode) { Map result = new HashMap<>(); try { String apiUrl = "https://try.daowepark.com/v7/user_api/general/getSingleGameData?game_id=" + gameId + "&date_type=" + range + "&date=" + time + "&space_id=" + spaceId + "&city_code=" + cityCode; URL url = new URL(apiUrl); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); // 发送请求并获取响应 int responseCode = connection.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_OK) { BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); String line; StringBuilder response = new StringBuilder(); while ((line = reader.readLine()) != null) { response.append(line); } reader.close(); // 处理响应数据 String data = response.toString(); // 使用Jackson库将JSON字符串转换为Java对象 ObjectMapper objectMapper = new ObjectMapper(); SUTUOne res = objectMapper.readValue(data, SUTUOne.class); // 场地总入场人数 List list = res.getData().getList(); List years = new ArrayList<>(); for (SUTUDataOne sutuDataOne : list) { years.add(sutuDataOne.getDate()); } result.put("data1", list); result.put("years", years); } return result; } catch (ProtocolException e) { e.printStackTrace(); } catch (JsonProcessingException e) { e.printStackTrace(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return result; } /** * 获取90°准度赛全球总数 */ @RequestMapping("/cityGameOne") @ResponseBody public Object cityGameOne() { Map result = new HashMap<>(); try { String apiUrl = "https://try.daowepark.com/v7/user_api/general/getAccuracyGameCount?space_id="; URL url = new URL(apiUrl); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); // 发送请求并获取响应 int responseCode = connection.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_OK) { BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); String line; StringBuilder response = new StringBuilder(); while ((line = reader.readLine()) != null) { response.append(line); } reader.close(); // 处理响应数据 String data = response.toString(); // 使用Jackson库将JSON字符串转换为Java对象 ObjectMapper objectMapper = new ObjectMapper(); CityGame res = objectMapper.readValue(data, CityGame.class); result.put("totalNum", res.getData().getTotal_num()); return result; } } catch (IOException e) { e.printStackTrace(); } return result; } /** * 获取跨城赛统计全球总数 */ @RequestMapping("/cityGame") @ResponseBody public Object cityGame() { Map result = new HashMap<>(); try { String apiUrl = "https://try.daowepark.com/v7/user_api/general/getCityGameCount"; URL url = new URL(apiUrl); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); // 发送请求并获取响应 int responseCode = connection.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_OK) { BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); String line; StringBuilder response = new StringBuilder(); while ((line = reader.readLine()) != null) { response.append(line); } reader.close(); // 处理响应数据 String data = response.toString(); // 使用Jackson库将JSON字符串转换为Java对象 ObjectMapper objectMapper = new ObjectMapper(); CityGame res = objectMapper.readValue(data, CityGame.class); result.put("totalNum", res.getData().getTotal_num()); return result; } } catch (IOException e) { e.printStackTrace(); } return result; } }