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.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.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.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("") public String index(Model model) { 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("list",result); model.addAttribute("stores",stores); model.addAttribute("sites",list); return PREFIX + "GameData.html"; } /** * 获取激战球场统计 */ @RequestMapping("/list") @ResponseBody public Object list(Integer 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=1001&date_type=y"; 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); } // 获取月度数据 (今年的十二个月数据) Calendar calendar = Calendar.getInstance(); // 当前年份 int year = calendar.get(Calendar.YEAR); // 月度数据 // 创建 HttpClient 实例 HttpClient httpClient1 = HttpClients.createDefault(); // 创建 POST 请求 HttpPost httpPost1 = new HttpPost("https://try.daowepark.com/v7/user_api/general/getBatterData"); // 设置请求体数据 String postData1 = "sign=0DB011836143EEE2C2E072967C9F4E4B&space_id=1001&date_type=m&year=2022"; StringEntity entity1 = new StringEntity(postData1, ContentType.APPLICATION_FORM_URLENCODED); httpPost1.setEntity(entity1); // 执行请求 HttpResponse response1 = httpClient1.execute(httpPost1); // 处理响应 HttpEntity responseEntity1 = response1.getEntity(); if (responseEntity1 != null) { String responseData = EntityUtils.toString(responseEntity1); 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(); // 月度数据 result.put("mDataList",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() { Map result = new HashMap<>(); try { String apiUrl = "https://try.daowepark.com/v7/user_api/general/getSingleGameData?game_id=1&date_type=d&date=2021-02"; 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; } }