ToiletBaseController.java 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. package com.template.controller;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.fasterxml.jackson.databind.JsonNode;
  4. import com.fasterxml.jackson.databind.ObjectMapper;
  5. import com.template.annotation.PassToken;
  6. import com.template.api.BookingControllerAPI;
  7. import com.template.api.ToiletBaseControllerAPI;
  8. import com.template.mapper.BookingMapper;
  9. import com.template.mapper.ToiletBaseMapper;
  10. import com.template.model.result.CommonResult;
  11. import org.apache.http.client.config.RequestConfig;
  12. import org.apache.http.client.methods.CloseableHttpResponse;
  13. import org.apache.http.client.methods.HttpGet;
  14. import org.apache.http.client.methods.HttpRequestBase;
  15. import org.apache.http.impl.client.CloseableHttpClient;
  16. import org.apache.http.impl.client.HttpClientBuilder;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.beans.factory.annotation.Value;
  19. import org.springframework.http.ResponseEntity;
  20. import org.springframework.web.bind.annotation.RestController;
  21. import org.springframework.web.client.RestTemplate;
  22. import java.io.IOException;
  23. import java.util.HashMap;
  24. import java.util.List;
  25. import java.util.Map;
  26. /**
  27. * <p>
  28. * 前端控制器
  29. * </p>
  30. *
  31. * @author ceshi
  32. * @since 2023-03-30
  33. */
  34. @RestController
  35. public class ToiletBaseController implements ToiletBaseControllerAPI {
  36. @Value("${diseaseRightUrl}")
  37. String url;
  38. @Autowired
  39. private ToiletBaseMapper toiletBaseMapper;
  40. @Override
  41. @PassToken
  42. public CommonResult getToiletBaseCount() {
  43. List<Map<String, String>> toiletBaseCount = toiletBaseMapper.getToiletBaseCount();
  44. if (toiletBaseCount.isEmpty()){
  45. return CommonResult.ok(toiletBaseCount);
  46. }
  47. return CommonResult.ok(toiletBaseCount);
  48. }
  49. @Override
  50. @PassToken
  51. public CommonResult getToiletBaseInfo() {
  52. List<Map<String, String>> toiletBaseInfo = toiletBaseMapper.getToiletBaseInfo();
  53. if (toiletBaseInfo.isEmpty()){
  54. return CommonResult.ok(toiletBaseInfo);
  55. }
  56. return CommonResult.ok(toiletBaseInfo);
  57. }
  58. @Override
  59. @PassToken
  60. public CommonResult getToiletRealTime() {
  61. RestTemplate client = new RestTemplate();
  62. List<Map<String, String>> toiletBaseInfo = toiletBaseMapper.getToiletBaseInfo();
  63. int ToiletCount=toiletBaseInfo.size();
  64. int intoNum=0;
  65. if(!toiletBaseInfo.isEmpty()){
  66. for (Map<String, String> infoMap:toiletBaseInfo) {
  67. String id=String.valueOf(infoMap.get("id"));
  68. ResponseEntity<String> responseEntity = client.getForEntity(url+id, String.class);
  69. String body = responseEntity.getBody();
  70. if (!responseEntity.getStatusCode().is2xxSuccessful()) {
  71. continue;
  72. }
  73. if ("false".equals(JSONObject.parseObject(body).getString("success"))) {
  74. return CommonResult.fail("请求实时数据异常:"+JSONObject.parseObject(body).getString("message"));
  75. }
  76. JSONObject jsonObject=JSONObject.parseObject(body).getJSONObject("data");
  77. //入流量
  78. int dataOfMan=jsonObject.getJSONObject("dataOfMan").getInteger("intoNum");
  79. int dataOfWoman=jsonObject.getJSONObject("dataOfWoman").getInteger("intoNum");
  80. int dataOfThird=jsonObject.getJSONObject("dataOfThird").getInteger("intoNum");
  81. intoNum=intoNum+dataOfMan+dataOfWoman+dataOfThird;
  82. }
  83. }
  84. Map<String, Object> resultMap=new HashMap<>();
  85. resultMap.put("ToiletCount",ToiletCount);
  86. Long intoNumTotal= toiletBaseMapper.getToiletBaseInfoHis();
  87. resultMap.put("intoNumTotal",intoNumTotal);
  88. resultMap.put("intoNum",intoNum);
  89. return CommonResult.ok(resultMap);
  90. }
  91. @Override
  92. @PassToken
  93. public CommonResult getToiletRealTimeById(String toiletId) {
  94. if("".equals(toiletId)){
  95. return CommonResult.fail("请求厕所实时数据toiletId不能为空");
  96. }
  97. RestTemplate client = new RestTemplate();
  98. ResponseEntity<String> responseEntity = client.getForEntity(url+toiletId, String.class);
  99. String body = responseEntity.getBody();
  100. if (!responseEntity.getStatusCode().is2xxSuccessful()) {
  101. return CommonResult.fail("请求厕所实时数据异常");
  102. }
  103. if ("false".equals(JSONObject.parseObject(body).getString("success"))) {
  104. return CommonResult.fail("请求实时数据异常:"+JSONObject.parseObject(body).getString("message"));
  105. }
  106. JSONObject jsonObject=JSONObject.parseObject(body).getJSONObject("data");
  107. return CommonResult.ok(jsonObject);
  108. }
  109. }