zhanghua
2024-09-05 a4cd4c2d98392cd1036f36b96c262878743a7e63
ycl-platform/src/main/java/com/ycl/controller/platformApi/TranspondDHController.java
@@ -4,7 +4,9 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import com.ycl.annotation.LogSave;
import com.ycl.api.CommonResult;
import com.ycl.dto.casePool.ViolationParam;
import com.ycl.dto.v1.Req.FirstReq;
import com.ycl.dto.v1.Req.GpsSubscribe;
import com.ycl.dto.v1.Req.SecondReq;
import com.ycl.dto.v1.Res.FirstRes;
import com.ycl.dto.video.AlarmParam;
@@ -25,57 +27,105 @@
@Api(tags = "第三方接口-大华")
@RestController
@RequestMapping("/API/videoService/eventCenter/messages")
@RequestMapping("/API")
public class TranspondDHController {
    @Value("${videoPoint.url}")
    @Value("${DH.web_url}")
    private String url;
    @Value("${videoPoint.userName}")
    @Value("${DH.userName}")
    private String userName;
    @Value("${videoPoint.passWord}")
    @Value("${DH.passWord}")
    private String passWord;
    @Value("${videoPoint.ip}")
    private String ip;
    @ApiOperation("消息订阅")
    @GetMapping("/subscribeAddress")
    @GetMapping("/videoService/eventCenter/messages/subscribeAddress")
    public CommonResult subscribeAddress() {
        String url = "/videoService/eventCenter/messages/subscribeAddress";
        return getResult(url, "");
    }
    @ApiOperation("用户信息")
    @GetMapping("/udu/user/infos")
    public CommonResult infos() {
        String url = "/udu/user/infos";
        return getResult(url, "");
    }
    @ApiOperation("gps订阅")
    @PostMapping("/dsu/gps/subscribe")
    public CommonResult gps_subscribe(@RequestBody GpsSubscribe subscribe) {
        String url = "/dsu/gps/subscribe";
        postResult(url, subscribe);
        return CommonResult.success("订阅成功");
    }
    @ApiOperation("gps用户订阅")
    @PostMapping("/dsu/gps/user/subscribe")
    public CommonResult gps_user_subscribe(@RequestBody GpsSubscribe subscribe) {
        String url = "/dsu/gps/user/subscribe";
        postResult(url, subscribe);
        return CommonResult.success("订阅成功");
    }
    @ApiOperation("长轮询获取消息")
    @GetMapping("/subscribe")
    @GetMapping("/videoService/eventCenter/messages/subscribe")
    public CommonResult subscribe(@RequestParam Integer type,
                                  @RequestParam Integer msgId,
                                  @RequestParam(required = false) Integer msgNum,
                                  @RequestParam(required = false) Integer waitSec) {
        String url = "/videoService/eventCenter/messages/subscribe";
        String param = "?type=" + type + "&msgId=" + msgId + "&msgNum=" + msgNum + "&waitSec=" + waitSec;
        String param = "?type=" + type + "&msgId=" + msgId + "&waitSec=" + waitSec + "&msgNum=" + msgNum;
        return getResult(url, param);
    }
    private CommonResult<?> getResult(String url, String param) {
    private CommonResult<?> getResult(String reqUrl, String param) {
        try {
            String token = getToken();
//            System.out.println("定位接口url:" + url + reqUrl + param);
            HttpHeaders deviceHeaders = new HttpHeaders();
            ObjectMapper objectMapper = new ObjectMapper();
            deviceHeaders.add("X-Subject-Token", token);
            HttpEntity<Object> deviceEntity = new HttpEntity<>(deviceHeaders);
            RestTemplate restTemplate = new RestTemplate();
            ResponseEntity<String> exchange = restTemplate.exchange(url + param, HttpMethod.GET, deviceEntity, String.class);
            ResponseEntity<String> exchange = restTemplate.exchange(url + reqUrl + param, HttpMethod.GET, deviceEntity, String.class);
            System.out.println(exchange);
            return CommonResult.success(exchange);
        } catch (Exception ex) {
            System.out.println("定位接口错误:" + ex.getMessage());
            return CommonResult.failed();
        }
    }
    private void postResult(String reqUrl, GpsSubscribe subscribe) {
        try {
            String token = getToken();
//            System.out.println("定位接口url:" + url + reqUrl + subscribe.toString());
            HttpHeaders deviceHeaders = new HttpHeaders();
            ObjectMapper objectMapper = new ObjectMapper();
            deviceHeaders.add("X-Subject-Token", token);
            HttpEntity<Object> deviceEntity = new HttpEntity<>(deviceHeaders);
            //请求头
            HttpHeaders httpHeaders = new HttpHeaders();
            httpHeaders.setContentType(MediaType.APPLICATION_JSON);
            RestTemplate restTemplate = new RestTemplate();
            HttpEntity<String> secondEntity = new HttpEntity<>(objectMapper.writeValueAsString(subscribe), httpHeaders);
            ResponseEntity<String> resEntity = restTemplate.postForEntity(url + reqUrl, secondEntity, String.class);
            System.out.println(resEntity.toString());
        } catch (Exception ex) {
            System.out.println("定位接口错误:" + ex.getMessage());
        }
    }
    private String getToken() throws JsonProcessingException {