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<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("list",result);
|
model.addAttribute("stores",stores);
|
model.addAttribute("sites",list);
|
return PREFIX + "GameData.html";
|
}
|
/**
|
* 获取激战球场统计
|
*/
|
@RequestMapping("/list")
|
@ResponseBody
|
public Object list(Integer 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=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<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);
|
}
|
// 获取月度数据 (今年的十二个月数据)
|
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<BatterData> dataList = batter.getData().getList();
|
|
// 月度数据
|
result.put("mDataList",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() {
|
Map<String, Object> 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<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;
|
}
|
|
|
|
|
}
|