zhanghua
2023-03-30 259b76217c491e7c00257e985aa70bc68dd2e757
获取图片改成多次获取
4个文件已修改
99 ■■■■■ 已修改文件
ycl-common/src/main/java/com/ycl/service/oss/impl/OssServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/controller/platformApi/AlarmController.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/ViolationsServiceImpl.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/service/video/impl/VideoAlarmReportServiceImpl.java 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/com/ycl/service/oss/impl/OssServiceImpl.java
@@ -47,7 +47,7 @@
            ossClient.shutdown();
            // 把上传的文件路径返回 (手动拼接)
            // 这里设置图片有效时间 我设置了30年
            Date expiration = new Date(System.currentTimeMillis() + 946080000 * 1000);
            Date expiration = new Date(System.currentTimeMillis() + (long) 946080000 * 1000);
            String url = ossClient.generatePresignedUrl(bucketName, fileName, expiration).toString();
            return url;
@@ -118,7 +118,7 @@
            ossClient.shutdown();
            // 把上传的文件路径返回 (手动拼接)
            // 这里设置图片有效时间 我设置了30年
            Date expiration = new Date(System.currentTimeMillis() + 946080000 * 1000);
            Date expiration = new Date(System.currentTimeMillis() + (long) 946080000 * 1000);
            String url = ossClient.generatePresignedUrl(bucketName, fileName, expiration).toString();
            System.out.println("oss上传成功:" + url);
ycl-platform/src/main/java/com/ycl/controller/platformApi/AlarmController.java
@@ -31,6 +31,8 @@
public class AlarmController {
    private IVideoAlarmReportService videoAlarmReportService;
    private static Integer index = 0;
    @Autowired
    private VideoUtil videoUtil;
@@ -67,28 +69,33 @@
//    @GetMapping(value = "/img")
    @ResponseBody
    public byte[] getImages(HttpServletResponse response, @RequestParam String fileUrl, @RequestParam String OSSAccessKeyId, @RequestParam String Signature) {
        index = 0;
        return getBytes(fileUrl, OSSAccessKeyId, Signature);
    }
    private byte[] getBytes(String fileUrl, String OSSAccessKeyId, String Signature) {
        try {
            if (index < 10) {
                index++;
                System.out.println("getImages获取图片地址:" + fileUrl + "&OSSAccessKeyId=" + OSSAccessKeyId + "&Signature=" + Signature);
                URL url = new URL(fileUrl + "&OSSAccessKeyId=" + OSSAccessKeyId + "&Signature=" + Signature);
                HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                conn.setRequestMethod("GET");
                conn.setConnectTimeout(10 * 1000);
                conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
            System.out.println("getImages获取图片地址:" + fileUrl + "&OSSAccessKeyId=" + OSSAccessKeyId + "&Signature=" + Signature);
            URL url = new URL(fileUrl + "&OSSAccessKeyId=" + OSSAccessKeyId + "&Signature=" + Signature);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("GET");
            conn.setConnectTimeout(10 * 1000);
            conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
                InputStream inputStream = conn.getInputStream();// 通过输入流获取图片数据
            InputStream inputStream = conn.getInputStream();// 通过输入流获取图片数据
                byte[] data = readInputStream(inputStream);
                System.out.println("getImages获取图片成功");
            byte[] data = readInputStream(inputStream);
            System.out.println("getImages获取图片成功");
            System.out.println("getImages -图片64");
            System.out.println(Base64.getEncoder().encodeToString(data));
            return data;
                return data;
            }
        } catch (Exception e) {
            System.out.println("getImages获取图片失败:" + e.getMessage());
            System.out.println(index + "getImages获取图片失败:" + e.getMessage());
            getBytes(fileUrl, OSSAccessKeyId, Signature);
            // e.printStackTrace();
        }
        return null;
ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/ViolationsServiceImpl.java
@@ -61,7 +61,9 @@
    public void saveFromVideo(List<VideoAlarmReport> videoAlarmReports) {
        for (VideoAlarmReport videoAlarmReport : videoAlarmReports) {
            VideoPoint videoPoint = null;
            LambdaQueryWrapper<VideoPoint> queryWrapper = new LambdaQueryWrapper<VideoPoint>().eq(VideoPoint::getPlatResourceId, videoAlarmReport.getPlatResourceId());
            LambdaQueryWrapper<VideoPoint> queryWrapper = new LambdaQueryWrapper<VideoPoint>()
                    .eq(VideoPoint::getPlatResourceId, videoAlarmReport.getPlatResourceId())
                    .or().eq(VideoPoint::getCode, videoAlarmReport.getPlatResourceId());
            List<VideoPoint> pointList = videoPointService.list(queryWrapper);
            if (pointList.size() > 0) {
                videoPoint = pointList.get(0);
ycl-platform/src/main/java/com/ycl/service/video/impl/VideoAlarmReportServiceImpl.java
@@ -147,37 +147,38 @@
                InputStream inputStream = new ByteArrayInputStream(data);
                try {
//                    如果List<AlarmDataParam>合理
                    if (alarmParam.getAlarmData()!=null && alarmParam.getAlarmData().size()!=0) {
                    if (alarmParam.getAlarmData() != null && alarmParam.getAlarmData().size() != 0) {
                            BufferedImage image = ImageIO.read(inputStream);
                            Graphics2D g2 = (Graphics2D) image.getGraphics();
                            g2.setColor(Color.RED);
                            g2.setStroke(new BasicStroke(3.0f));
                        BufferedImage image = ImageIO.read(inputStream);
                        Graphics2D g2 = (Graphics2D) image.getGraphics();
                        g2.setColor(Color.RED);
                        g2.setStroke(new BasicStroke(3.0f));
                            List<AlarmDataParam> alarmData = alarmParam.getAlarmData();
                        List<AlarmDataParam> alarmData = alarmParam.getAlarmData();
                            alarmData.forEach(new Consumer<AlarmDataParam>() {
                                @Override
                                public void accept(AlarmDataParam alarmDataParam) {
                                    List<AlarmObject> alarmObject = alarmDataParam.getAlarmObject();
                                    alarmObject.forEach(new Consumer<AlarmObject>() {
                                        @Override
                                        public void accept(AlarmObject alarmObject) {
                                            ObjectRect rect = alarmObject.getObjectRect();
                                            g2.drawRect(rect.getX(), rect.getY(), rect.getW(), rect.getH());
                                        }
                                    });
                                }
                            });
                        alarmData.forEach(new Consumer<AlarmDataParam>() {
                            @Override
                            public void accept(AlarmDataParam alarmDataParam) {
                                List<AlarmObject> alarmObject = alarmDataParam.getAlarmObject();
                                alarmObject.forEach(new Consumer<AlarmObject>() {
                                    @Override
                                    public void accept(AlarmObject alarmObject) {
                                        ObjectRect rect = alarmObject.getObjectRect();
                                        g2.drawRect(rect.getX(), rect.getY(), rect.getW(), rect.getH());
                                    }
                                });
                            }
                        });
                            ByteArrayOutputStream os = new ByteArrayOutputStream();
                            ImageIO.write(image, extension, os);
                            inputStream = new ByteArrayInputStream(os.toByteArray());
                        ByteArrayOutputStream os = new ByteArrayOutputStream();
                        ImageIO.write(image, extension, os);
                        inputStream = new ByteArrayInputStream(os.toByteArray());
                    }
                    picData = ossService.uploadImages(inputStream, extension);
                } catch (Exception e) {
                    e.printStackTrace();
                    System.out.println("保存报警数据失败---图片上传失败:" + e.getMessage());
//                    e.printStackTrace();
                }
            }
            List<VideoAlarmReport> videoAlarmReports = new ArrayList<>();
@@ -211,7 +212,8 @@
                        this.updateById(videoAlarmReport);
                    }
                } catch (ParseException e) {
                    e.printStackTrace();
                    System.out.println("保存报警数据失败:" + e.getMessage());
//                    e.printStackTrace();
                }
            }
        }