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<CityGameDataOne> 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<AccuracyGameDataOne> 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<GameListData> list = res.getData();
|
model.addAttribute("games",list);
|
}
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
List<String> strings = new ArrayList<>();
|
List<TSite> list = siteService.list(new QueryWrapper<TSite>());
|
List<TSite> result = new ArrayList<>();
|
for (TSite tSite : list) {
|
if (!strings.contains(tSite.getCity())) {
|
strings.add(tSite.getCity());
|
result.add(tSite);
|
}
|
}
|
List<TStore> stores = storeService.list(new QueryWrapper<TStore>());
|
model.addAttribute("stores", stores);
|
model.addAttribute("list", result);
|
model.addAttribute("sites", list);
|
if(UserExt.getUser().getObjectType() == 2){
|
List<TStore> operatorId = storeService.list(new QueryWrapper<TStore>()
|
.eq("operatorId", UserExt.getUser().getObjectId()));
|
model.addAttribute("stores", operatorId);
|
List<TSite> sites = siteService.list(new QueryWrapper<TSite>()
|
.eq("operatorId", UserExt.getUser().getObjectId()));
|
model.addAttribute("sites", sites);
|
}
|
|
return PREFIX + "GameData.html";
|
}
|
|
/**
|
* 获取激战球场统计
|
*/
|
@RequestMapping("/list")
|
@ResponseBody
|
public Object list(String range,String storeId) {
|
Map<String, Object> 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<BatterData> dataList = batter.getData().getList();
|
// 年份
|
List<String> 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<String, Object> 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<SUTUData> list = res.getData().getList();
|
List<String> 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<String, Object> 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<SUTUDataOne> list = res.getData().getList();
|
List<String> 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<String, Object> 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<String, Object> 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;
|
}
|
}
|