package com.template.controller; import com.alibaba.fastjson.JSONObject; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.template.annotation.PassToken; import com.template.api.BookingControllerAPI; import com.template.api.ToiletBaseControllerAPI; import com.template.mapper.BookingMapper; import com.template.mapper.ToiletBaseMapper; import com.template.model.result.CommonResult; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpRequestBase; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClientBuilder; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; /** *

* 前端控制器 *

* * @author ceshi * @since 2023-03-30 */ @RestController public class ToiletBaseController implements ToiletBaseControllerAPI { @Value("${diseaseRightUrl}") String url; @Autowired private ToiletBaseMapper toiletBaseMapper; @Override @PassToken public CommonResult getToiletBaseCount() { List> toiletBaseCount = toiletBaseMapper.getToiletBaseCount(); if (toiletBaseCount.isEmpty()){ return CommonResult.ok(toiletBaseCount); } return CommonResult.ok(toiletBaseCount); } @Override @PassToken public CommonResult getToiletBaseInfo() { List> toiletBaseInfo = toiletBaseMapper.getToiletBaseInfo(); if (toiletBaseInfo.isEmpty()){ return CommonResult.ok(toiletBaseInfo); } return CommonResult.ok(toiletBaseInfo); } @Override @PassToken public CommonResult getToiletRealTime() { RestTemplate client = new RestTemplate(); List> toiletBaseInfo = toiletBaseMapper.getToiletBaseInfo(); int ToiletCount=toiletBaseInfo.size(); int intoNum=0; if(!toiletBaseInfo.isEmpty()){ for (Map infoMap:toiletBaseInfo) { String id=String.valueOf(infoMap.get("id")); ResponseEntity responseEntity = client.getForEntity(url+id, String.class); String body = responseEntity.getBody(); if (!responseEntity.getStatusCode().is2xxSuccessful()) { continue; } if ("false".equals(JSONObject.parseObject(body).getString("success"))) { return CommonResult.fail("请求实时数据异常:"+JSONObject.parseObject(body).getString("message")); } JSONObject jsonObject=JSONObject.parseObject(body).getJSONObject("data"); //入流量 int dataOfMan=jsonObject.getJSONObject("dataOfMan").getInteger("intoNum"); int dataOfWoman=jsonObject.getJSONObject("dataOfWoman").getInteger("intoNum"); int dataOfThird=jsonObject.getJSONObject("dataOfThird").getInteger("intoNum"); intoNum=intoNum+dataOfMan+dataOfWoman+dataOfThird; } } Map resultMap=new HashMap<>(); resultMap.put("ToiletCount",ToiletCount); Long intoNumTotal= toiletBaseMapper.getToiletBaseInfoHis(); resultMap.put("intoNumTotal",intoNumTotal); resultMap.put("intoNum",intoNum); return CommonResult.ok(resultMap); } @Override @PassToken public CommonResult getToiletRealTimeById(String toiletId) { if("".equals(toiletId)){ return CommonResult.fail("请求厕所实时数据toiletId不能为空"); } RestTemplate client = new RestTemplate(); ResponseEntity responseEntity = client.getForEntity(url+toiletId, String.class); String body = responseEntity.getBody(); if (!responseEntity.getStatusCode().is2xxSuccessful()) { return CommonResult.fail("请求厕所实时数据异常"); } if ("false".equals(JSONObject.parseObject(body).getString("success"))) { return CommonResult.fail("请求实时数据异常:"+JSONObject.parseObject(body).getString("message")); } JSONObject jsonObject=JSONObject.parseObject(body).getJSONObject("data"); return CommonResult.ok(jsonObject); } }