From 18d31669c0d18ebe1b66ff12a1b955ba9fefb14d Mon Sep 17 00:00:00 2001 From: yangzongjia Date: Tue, 6 Jun 2023 19:15:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8B=89=E5=8F=96=E6=8A=A5=E8=AD=A6=E6=B6=88?= =?UTF-8?q?=E6=81=AF=EF=BC=8C=E6=91=84=E5=83=8F=E5=A4=B4=E6=8A=93=E5=9B=BE?= =?UTF-8?q?=E7=94=A8=E6=9D=A5=E6=AF=94=E5=AF=B9=E5=9B=BE=E7=89=87=E7=9B=B8?= =?UTF-8?q?=E4=BC=BC=E5=BA=A6=20=E6=B7=BB=E5=8A=A0=E7=BD=91=E7=BB=9C?= =?UTF-8?q?=E5=BD=95=E5=83=8F=E6=9C=BA=E8=AE=BE=E5=A4=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../monitor/api/entity/CallPolice.java | 2 +- .../supervise/monitor/api/entity/Device.java | 3 -- .../monitor/biz/callpolice/CallRest.java | 22 +++++--- .../monitor/biz/device/YDeviceRest.java | 1 + .../monitor/biz/device/YDeviceService.java | 4 ++ .../biz/deviceImage/YDeviceImageService.java | 20 +++++-- .../biz/messageInfo/YMessageInfoService.java | 7 +++ .../monitor/biz/scheduled/SyncService.java | 1 + .../monitor/biz/util/ImageDownloadUtil.java | 54 +++++++++++++++++++ 9 files changed, 101 insertions(+), 13 deletions(-) create mode 100644 yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/util/ImageDownloadUtil.java diff --git a/yxt-supervise-monitor-api/src/main/java/com/yxt/supervise/monitor/api/entity/CallPolice.java b/yxt-supervise-monitor-api/src/main/java/com/yxt/supervise/monitor/api/entity/CallPolice.java index a4069d7..b0406e1 100644 --- a/yxt-supervise-monitor-api/src/main/java/com/yxt/supervise/monitor/api/entity/CallPolice.java +++ b/yxt-supervise-monitor-api/src/main/java/com/yxt/supervise/monitor/api/entity/CallPolice.java @@ -26,7 +26,7 @@ public class CallPolice extends EntityWithId { private String state; @ApiModelProperty("是否删除") - private String isDelte; + private String isDelete; @ApiModelProperty("修改时间") private String modifyTime; diff --git a/yxt-supervise-monitor-api/src/main/java/com/yxt/supervise/monitor/api/entity/Device.java b/yxt-supervise-monitor-api/src/main/java/com/yxt/supervise/monitor/api/entity/Device.java index b09d8d7..6b644d1 100644 --- a/yxt-supervise-monitor-api/src/main/java/com/yxt/supervise/monitor/api/entity/Device.java +++ b/yxt-supervise-monitor-api/src/main/java/com/yxt/supervise/monitor/api/entity/Device.java @@ -54,7 +54,4 @@ public class Device extends EntityWithId { @ApiModelProperty("位置") private String position; - - @ApiModelProperty("序列号") - private String deviceSerial; } diff --git a/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/callpolice/CallRest.java b/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/callpolice/CallRest.java index 3cb6481..d6473fc 100644 --- a/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/callpolice/CallRest.java +++ b/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/callpolice/CallRest.java @@ -3,6 +3,7 @@ package com.yxt.supervise.monitor.biz.callpolice; import com.alibaba.fastjson.JSONObject; import com.yxt.common.core.result.ResultBean; import com.yxt.supervise.monitor.biz.demobaseentity.DemoBaseentityService; +import com.yxt.supervise.monitor.biz.scheduled.SyncService; import com.yxt.supervise.monitor.biz.util.HttpUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -34,7 +35,7 @@ public class CallRest { param.put("client_id", "e8e655dfcb154be6962f270fe375edc1"); // 客户端ID String param.put("client_secret", "3ca20239398c4b86b27c6a080d8345e1"); //访问密钥 String param.put("grant_type", "client_credentials"); //认证模式 String 目前仅支持client_credentials - String result = HttpUtils.sendPostMap(url, param,""); + String result = HttpUtils.sendPostMap(url, param, ""); return result; } @@ -49,7 +50,7 @@ public class CallRest { @ApiOperation("子系统布防") @GetMapping("/getCallArm") - public String getCallArm() { + public String getCallArm() { ResultBean rb = ResultBean.fireFail(); String url = "https://api2.hik-cloud.com/api/v1/device/isapi/alarmHost/subSystem/arm"; Map param = new HashMap<>(); @@ -63,7 +64,7 @@ public class CallRest { @ApiOperation("子系统撤防") @GetMapping("/getCallDisArm") - public String getCallDisArm(){ + public String getCallDisArm() { ResultBean rb = ResultBean.fireFail(); String url = "https://api2.hik-cloud.com/api/v1/device/isapi/alarmHost/subSystem/disarm"; Map param = new HashMap<>(); @@ -108,7 +109,7 @@ public class CallRest { @ApiOperation("提交消息偏移量") @GetMapping("/doCallMessageOffsets") - public String doMessageOffsets(String consumerId){ + public String doMessageOffsets(String consumerId) { /** * 1.该接口用于创建消费者ID,最多同时存在五个消费者ID。 * @@ -140,7 +141,7 @@ public class CallRest { param.put("deviceSerial", consumerId); // 设备序列号 string param.put("groupNo", consumerId); // 组编号 string param.put("validateCode", consumerId); // 验证码 string - String result = HttpUtils.sendPostMap(url,param, "35ad3e80-1de4-4477-827e-0473320cf644"); + String result = HttpUtils.sendPostMap(url, param, "35ad3e80-1de4-4477-827e-0473320cf644"); return result; } @@ -151,8 +152,17 @@ public class CallRest { Map param = new HashMap<>(); param.put("deviceName", consumerId); // 设备名称 string param.put("deviceSerial", consumerId); // 设备序列号 string - String result = HttpUtils.sendPostMap(url,param, "35ad3e80-1de4-4477-827e-0473320cf644"); + String result = HttpUtils.sendPostMap(url, param, "35ad3e80-1de4-4477-827e-0473320cf644"); return result; } + @ApiOperation("临时测试") + @GetMapping("/callTempFunc") + public void callTempFunc() throws NoSuchAlgorithmException, KeyStoreException, IOException, KeyManagementException { +// String url = "https://api2.hik-cloud.com/api/v1/open/basic/devices/list?groupNo=A1181&pageNo=1&pageSize=50"; + String url = "https://api2.hik-cloud.com/api/v1/ezviz/devices/queryDeviceStatus?deviceSerial=Q16362484"; + String result = HttpUtils.sendGet(url, SyncService.haiKangToken); + System.out.println(result); + } + } diff --git a/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/device/YDeviceRest.java b/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/device/YDeviceRest.java index a824f4b..28e79cf 100644 --- a/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/device/YDeviceRest.java +++ b/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/device/YDeviceRest.java @@ -64,4 +64,5 @@ public class YDeviceRest { public ResultBean removeDeviceByIds(String ids) { return yDeviceService.removeDeviceByIds(ids); } + } diff --git a/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/device/YDeviceService.java b/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/device/YDeviceService.java index f175b98..b29b591 100644 --- a/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/device/YDeviceService.java +++ b/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/device/YDeviceService.java @@ -15,6 +15,10 @@ import org.springframework.stereotype.Service; import springfox.documentation.spring.web.json.Json; import javax.annotation.Resource; +import java.io.IOException; +import java.security.KeyManagementException; +import java.security.KeyStoreException; +import java.security.NoSuchAlgorithmException; import java.util.HashMap; import java.util.Map; diff --git a/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/deviceImage/YDeviceImageService.java b/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/deviceImage/YDeviceImageService.java index 2ae9a1d..3868a90 100644 --- a/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/deviceImage/YDeviceImageService.java +++ b/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/deviceImage/YDeviceImageService.java @@ -1,5 +1,6 @@ package com.yxt.supervise.monitor.biz.deviceImage; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -12,9 +13,11 @@ import com.yxt.supervise.monitor.api.entity.DeviceImage; import com.yxt.supervise.monitor.api.vo.PageVo; import com.yxt.supervise.monitor.biz.scheduled.SyncService; import com.yxt.supervise.monitor.biz.util.HttpUtils; +import com.yxt.supervise.monitor.biz.util.ImageDownloadUtil; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.io.IOException; import java.util.HashMap; import java.util.Map; @@ -50,13 +53,24 @@ public class YDeviceImageService extends ServiceImpl param = new HashMap<>(); - param.put("deviceSerial", "Q16362484"); // 设备序列号 string - param.put("channelNo", "1"); // 组编号 string + param.put("deviceSerial", "L20560109"); // 设备序列号 string + param.put("channelNo", channelNo); // 组编号 string String paramJson = JSONObject.toJSONString(param); String result = HttpUtils.sendPostJson(url, paramJson, SyncService.haiKangToken); JSONObject jsonObject = JSONObject.parseObject(result); - System.out.println(jsonObject); + JSONObject dataJson = (JSONObject) jsonObject.get("data"); + String picUrl = dataJson.get("picUrl").toString(); + + String day = DateUtil.format(DateUtil.date(), "yyyyMMddHHmmss"); + picName = day + channelNo + ".png"; + try { + ImageDownloadUtil.download(picUrl,SyncService.imagePath,picName); + } catch (IOException e) { + e.printStackTrace(); + } } } diff --git a/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/messageInfo/YMessageInfoService.java b/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/messageInfo/YMessageInfoService.java index a2ead38..35d6da9 100644 --- a/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/messageInfo/YMessageInfoService.java +++ b/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/messageInfo/YMessageInfoService.java @@ -35,6 +35,13 @@ public class YMessageInfoService extends ServiceImpl param = new HashMap<>(); param.put("consumerId", SyncService.haiKangMessageConsumer); // 消费者id string String result = HttpUtils.sendPostMap(url, param, SyncService.haiKangToken); + + //提交消息偏移量 + String offsetsUrl = "https://api2.hik-cloud.com/api/v1/mq/consumer/offsets"; + Map offsetsParam = new HashMap<>(); + offsetsParam.put("consumerId", SyncService.haiKangMessageConsumer); // 消费者id string + HttpUtils.sendPostMap(offsetsUrl, offsetsParam, SyncService.haiKangToken); + JSONObject jsonObject = JSONObject.parseObject(result); if ("200".equals(jsonObject.get("code").toString())) { JSONArray jsonArray = (JSONArray) jsonObject.get("data"); diff --git a/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/scheduled/SyncService.java b/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/scheduled/SyncService.java index 7cf68bf..a617e8e 100644 --- a/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/scheduled/SyncService.java +++ b/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/scheduled/SyncService.java @@ -35,6 +35,7 @@ public class SyncService { YMessageInfoService yMessageInfoService; public static String haiKangToken = ""; + public static final String imagePath = "/root/supervise/images"; public static String haiKangMessageConsumer = ""; @PostConstruct diff --git a/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/util/ImageDownloadUtil.java b/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/util/ImageDownloadUtil.java new file mode 100644 index 0000000..823b8be --- /dev/null +++ b/yxt-supervise-monitor-biz/src/main/java/com/yxt/supervise/monitor/biz/util/ImageDownloadUtil.java @@ -0,0 +1,54 @@ +package com.yxt.supervise.monitor.biz.util; + +import java.io.*; +import java.net.URL; +import java.net.URLConnection; + +/** + * @author: Haiming Yu + * @createDate:2022/8/16 + * @description: + */ +public class ImageDownloadUtil { + + /** + * 文件下载到指定路径 + * + * @param urlString 链接 + * @param savePath 保存路径 + * @param filename 文件名 + * @throws Exception + */ + public static void download(String urlString, String savePath, String filename) throws IOException { + // 构造URL + URL url = new URL(urlString); + // 打开连接 + URLConnection con = url.openConnection(); + //设置请求超时为20s + con.setConnectTimeout(20 * 1000); + //文件路径不存在 则创建 + File sf = new File(savePath); + if (!sf.exists()) { + sf.mkdirs(); + } + //jdk 1.7 新特性自动关闭 + try (InputStream in = con.getInputStream(); + OutputStream out = new FileOutputStream(sf.getPath() + "\\" + filename)) { + //创建缓冲区 + byte[] buff = new byte[1024]; + int n; + // 开始读取 + while ((n = in.read(buff)) >= 0) { + out.write(buff, 0, n); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static void main(String[] args) throws Exception { + download("https://fastdfs-gateway.ys7.com/9cc5/1/capture/003jH5cfuOzAEjMmO0pESFUWhrXTwts.jpg?Expires=1686119490&OSSAccessKeyId=LTAIzI38nEHqg64n&Signature=x3IakXKnd5W1IrAdFAT7y5FCWyE%3D", + "D:\\resources\\download", + "sample.png"); + } +} \ No newline at end of file