package com.ycl.controller.platformApi; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.ycl.api.CommonResult; import com.ycl.dto.video.AlarmParam; import com.ycl.enums.common.ResultCode; import com.ycl.service.video.IVideoAlarmReportService; import com.ycl.util.VideoUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.SneakyThrows; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; /** * @author admin */ @Api(tags = "第三方接口-报警") @RestController @RequestMapping("/API") public class AlarmController { private IVideoAlarmReportService videoAlarmReportService; @Autowired private VideoUtil videoUtil; @Autowired public void setVideoAlarmReportService(IVideoAlarmReportService videoAlarmReportService) { this.videoAlarmReportService = videoAlarmReportService; } @ApiOperation("视频报警推送API") @PostMapping("/AlarmReport") public CommonResult alarmReport(@RequestBody @Validated AlarmParam alarmParam) { videoAlarmReportService.save(alarmParam); return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage()); } @GetMapping("/Video/{code}/{subType}") @ApiOperation(value = "设备获取监控地址") @SneakyThrows public CommonResult getMonitorAddress(@PathVariable String code, @PathVariable Integer subType, @RequestParam(required = false) String scheme) { if (subType == null) { subType = 1; } if (!StringUtils.isNotBlank(scheme)) { scheme = "RTSP"; } return CommonResult.successApi(videoUtil.getVideo(code, scheme, subType)); } @ApiOperation(value = "获取图片") @GetMapping(value = "/img", produces = MediaType.IMAGE_PNG_VALUE) @ResponseBody public byte[] getImages(HttpServletResponse response, @RequestParam String fileUrl) { try { URL url = new URL(fileUrl); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); conn.setConnectTimeout(5 * 1000); InputStream inputStream = conn.getInputStream();// 通过输入流获取图片数据 byte[] bytes = new byte[inputStream.available()]; inputStream.read(bytes, 0, inputStream.available()); return bytes; } catch (Exception e) { e.printStackTrace(); } return null; } }