CarmeraTimer.java 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. package com.huimv.admin.timer;
  2. import cn.hutool.core.codec.Base64;
  3. import cn.hutool.core.util.ObjectUtil;
  4. import cn.hutool.json.JSONUtil;
  5. import com.alibaba.fastjson.JSON;
  6. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  7. import com.baomidou.mybatisplus.core.toolkit.StringUtils;
  8. import com.huimv.admin.common.utils.Digests;
  9. import com.huimv.admin.common.utils.HttpClientSSLUtils;
  10. import com.huimv.admin.entity.EnvData;
  11. import com.huimv.admin.entity.EnvDevice;
  12. import com.huimv.admin.entity.EnvWarningInfo;
  13. import com.huimv.admin.entity.EnvWarningThreshold;
  14. import com.huimv.admin.entity.hkwsdto.CameraDto1;
  15. import com.huimv.admin.entity.hkwsdto.HkvsCameraDto;
  16. import com.huimv.admin.entity.zengxindto.*;
  17. import com.huimv.admin.service.*;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.context.annotation.Configuration;
  20. import org.springframework.http.*;
  21. import org.springframework.scheduling.annotation.EnableScheduling;
  22. import org.springframework.scheduling.annotation.Scheduled;
  23. import org.springframework.transaction.annotation.Transactional;
  24. import org.springframework.web.client.RestTemplate;
  25. import java.lang.invoke.MethodHandleProxies;
  26. import java.time.LocalDate;
  27. import java.time.LocalDateTime;
  28. import java.time.LocalTime;
  29. import java.util.Date;
  30. import java.util.HashMap;
  31. import java.util.List;
  32. import java.util.Map;
  33. @Configuration
  34. @EnableScheduling
  35. public class CarmeraTimer {
  36. private static final String APPKEY = "1c9ee657";
  37. private static final String SECRET = "a5d723941c804a429447e71db2707ce8";
  38. private static final String OPENAPI_IP_PORT_HTTP = "http://61.153.248.106:100";
  39. private static final String OPENAPI_IP_PORT_HTTPS = "https://61.153.248.106:4430";
  40. private static final String ITF_ADDRESS_GET_CAMERAS = "/openapi/service/vss/res/getCameras";
  41. private static final String OP_USER_UUID = "5b2eb534696b11e89c2e438f92627767";
  42. @Autowired
  43. private ICameraBaseService cameraBaseService;
  44. //数据库账号密码加密
  45. //更新摄像头状态
  46. @Scheduled(cron = "0 0/10 * * * ? ")
  47. private void updateCameraOnlin() throws Exception {
  48. String cameras = testGetCameras();
  49. HkvsCameraDto hkvsCameraDto = JSONUtil.toBean(cameras, HkvsCameraDto.class);
  50. if (ObjectUtil.isNotEmpty(hkvsCameraDto) && hkvsCameraDto.getErrorCode() ==0 ){
  51. List<CameraDto1> list = hkvsCameraDto.getData().getList();
  52. if (ObjectUtil.isNotEmpty(list)){
  53. cameraBaseService.updateCameraOnlin(list);
  54. }
  55. System.out.println("更新成功");
  56. }else {
  57. System.out.println("摄像头信息为空");
  58. }
  59. }
  60. /**
  61. * HTTP方式
  62. * 分页获取监控点信息 测试
  63. * @return
  64. * @throws Exception
  65. */
  66. private static String testGetCameras() throws Exception{
  67. String url = OPENAPI_IP_PORT_HTTP + ITF_ADDRESS_GET_CAMERAS;
  68. Map<String, Object> map = new HashMap<String, Object>();
  69. map.put("appkey", APPKEY);//设置APPKEY
  70. map.put("time", System.currentTimeMillis());//设置时间参数
  71. map.put("pageNo", 1);//设置分页参数
  72. map.put("pageSize", 1000);//设置分页参数
  73. map.put("opUserUuid", OP_USER_UUID);//设置操作用户UUID
  74. String params = JSON.toJSONString(map);
  75. System.out.println(" ====== getCameras请求参数:【" + params + "】");
  76. String data = HttpClientSSLUtils.doPost(url + "?token=" + Digests.buildToken(url + "?" + params, null, SECRET), params);
  77. System.out.println(" ====== getCameras请求返回结果:【{" + data + "}】");
  78. return data;
  79. }
  80. public static void main(String[] args) {
  81. RestTemplate restTemplate = new RestTemplate();
  82. String envUrl = "https://dnqyt.envchina.com/api/public/station-data";
  83. LocalDate previousDay = LocalDate.now().minusDays(1);
  84. LocalDateTime previousDayStart = LocalDateTime.of(previousDay, LocalTime.MIN);
  85. String sgToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJkYW9ub25nIiwidWlkIjozLCJ1biI6IlpYUUxZWktKMjMwN0EyIiwiZXhwIjoxNjg5MDcwNTYxLCJqdGkiOiIzIn0.BEFESZrKOwBej4rxOfoj7qPcHGomh6KN7xbXdjOB__w";
  86. HttpHeaders headers = new HttpHeaders();
  87. headers.add("token",sgToken);
  88. headers.setContentType(MediaType.APPLICATION_JSON);
  89. HttpEntity<Map<String, Object>> formEntity = new HttpEntity<Map<String, Object>>(headers);
  90. String urlWithParams = envUrl + "?type=D&mn=33330424001391" + "&startTime=" + "2023-07-10 00:00:00" + "&endTime=" + "2023-07-10 00:00:00";
  91. ResponseEntity<String> result = restTemplate.exchange(urlWithParams, HttpMethod.GET,formEntity,String.class);
  92. System.out.println(result);
  93. }
  94. }