From 7ef4892f9f24f941aca37e6b3991b808a0aca619 Mon Sep 17 00:00:00 2001 From: zhanghua <314079846@qq.com> Date: 星期五, 08 九月 2023 11:16:35 +0800 Subject: [PATCH] 优化 --- ycl-platform/src/main/java/com/ycl/util/VideoUtil.java | 67 ++++++++++++++++++---- ycl-platform/src/main/java/com/ycl/timer/GetDingUserOrgTimer.java | 6 +- ycl-platform/src/main/resources/application-prod.yml | 10 +++ ycl-platform/src/main/java/com/ycl/controller/platformApi/AlarmController.java | 44 ++++++++++++-- ycl-platform/src/main/java/com/ycl/task/SynchronizeHKVideo.java | 27 +++++---- 5 files changed, 119 insertions(+), 35 deletions(-) diff --git a/ycl-platform/src/main/java/com/ycl/controller/platformApi/AlarmController.java b/ycl-platform/src/main/java/com/ycl/controller/platformApi/AlarmController.java index 257e41b..fda52c9 100644 --- a/ycl-platform/src/main/java/com/ycl/controller/platformApi/AlarmController.java +++ b/ycl-platform/src/main/java/com/ycl/controller/platformApi/AlarmController.java @@ -2,12 +2,15 @@ import cn.hutool.json.JSONConverter; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.ycl.annotation.LogSave; import com.ycl.api.CommonResult; import com.ycl.dto.video.AlarmParam; +import com.ycl.entity.video.VideoPoint; import com.ycl.enums.common.ResultCode; import com.ycl.service.video.IVideoAlarmReportService; +import com.ycl.service.video.impl.IVideoPointService; import com.ycl.util.VideoUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -27,6 +30,7 @@ import java.util.Base64; import java.util.Dictionary; import java.util.Hashtable; +import java.util.List; /** * @author admin @@ -35,6 +39,7 @@ @RestController @RequestMapping("/API") public class AlarmController { + private IVideoPointService videoPointService; private IVideoAlarmReportService videoAlarmReportService; private static Dictionary<String, Integer> sessionDic = new Hashtable<>(); @@ -45,6 +50,11 @@ @Autowired public void setVideoAlarmReportService(IVideoAlarmReportService videoAlarmReportService) { this.videoAlarmReportService = videoAlarmReportService; + } + + @Autowired + public void setVideoPointService(IVideoPointService videoPointService) { + this.videoPointService = videoPointService; } @ApiOperation("瑙嗛鎶ヨ鎺ㄩ�丄PI") @@ -62,13 +72,33 @@ public CommonResult getMonitorAddress(@PathVariable String code, @PathVariable Integer subType, @RequestParam(required = false) String scheme) { - if (subType == null) { - subType = 1; + LambdaQueryWrapper<VideoPoint> queryWrapper = new LambdaQueryWrapper<VideoPoint>() + .eq(VideoPoint::getPlatResourceId, code) + .or().eq(VideoPoint::getCode, code); + List<VideoPoint> pointList = videoPointService.list(queryWrapper); + if (pointList.size() > 0) { + VideoPoint videoPoint = pointList.get(0); + if (videoPoint.getType() == 1) { + return CommonResult.successApi(videoUtil.getKHVideo(code)); + } else { + if (subType == null) { + subType = 1; + } + if (!StringUtils.isNotBlank(scheme)) { + scheme = "RTSP"; + } + return CommonResult.successApi(videoUtil.getVideo(code, scheme, subType)); + } + } else { + + if (subType == null) { + subType = 1; + } + if (!StringUtils.isNotBlank(scheme)) { + scheme = "RTSP"; + } + return CommonResult.successApi(videoUtil.getVideo(code, scheme, subType)); } - if (!StringUtils.isNotBlank(scheme)) { - scheme = "RTSP"; - } - return CommonResult.successApi(videoUtil.getVideo(code, scheme, subType)); } @@ -90,7 +120,7 @@ try { if (sessionDic.get(sessionId) < 10) { sessionDic.remove(sessionId); - fileUrl = fileUrl.replace("Expires","v"); + fileUrl = fileUrl.replace("Expires", "v"); System.out.println("getImages鑾峰彇鍥剧墖鍦板潃锛�" + fileUrl + "&OSSAccessKeyId=" + OSSAccessKeyId + "&Signature=" + Signature); URL url = new URL(fileUrl + "&OSSAccessKeyId=" + OSSAccessKeyId + "&Signature=" + Signature); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); diff --git a/ycl-platform/src/main/java/com/ycl/task/SynchronizeHKVideo.java b/ycl-platform/src/main/java/com/ycl/task/SynchronizeHKVideo.java index 3a3b6c9..d06fefc 100644 --- a/ycl-platform/src/main/java/com/ycl/task/SynchronizeHKVideo.java +++ b/ycl-platform/src/main/java/com/ycl/task/SynchronizeHKVideo.java @@ -25,27 +25,30 @@ @Autowired private VideoUtil videoUtil; - @Scheduled(cron = "0/1 * * * * ?") // 姣忕鎵ц +// @Scheduled(cron = "0/9 * * * * ?") // 姣忕鎵ц // @Scheduled(cron = "0 0/1 * ?") @Transactional(rollbackFor = Exception.class) public void scheduledTask() { - try { - findVideoList(1, 20); - } catch (Exception ex) { + System.out.println("娴峰悍锛氬紑濮嬫墽琛�"); - } + findVideoList(1, 20); + } - private void findVideoList(Integer pageNo, Integer pageSize) throws Exception { - PageResult<Camera> pageResult = videoUtil.callPostCameras(pageNo, pageSize, "0"); - if (pageResult.getTotal() > 0) { - if (pageResult.getList().size() > 0) { - saveVideoFromCamera(pageResult.getList()); + private void findVideoList(Integer pageNo, Integer pageSize) { + try { + PageResult<Camera> pageResult = videoUtil.callPostCameras(pageNo, pageSize, "0"); + if (pageResult.getTotal() > 0) { + if (pageResult.getList().size() > 0) { + saveVideoFromCamera(pageResult.getList()); - if (pageResult.getList().size() >= pageSize) { - findVideoList(pageNo + 1, pageSize); + if (pageResult.getList().size() >= pageSize) { + findVideoList(pageNo + 1, pageSize); + } } } + } catch (Exception ex) { + System.out.println("娴峰悍锛�" + ex.getMessage()); } } diff --git a/ycl-platform/src/main/java/com/ycl/timer/GetDingUserOrgTimer.java b/ycl-platform/src/main/java/com/ycl/timer/GetDingUserOrgTimer.java index 86e4f07..28e3e36 100644 --- a/ycl-platform/src/main/java/com/ycl/timer/GetDingUserOrgTimer.java +++ b/ycl-platform/src/main/java/com/ycl/timer/GetDingUserOrgTimer.java @@ -105,7 +105,7 @@ umsDepartService.saveOrUpdate(dingOrg); }); - log.info(TAG + "update organization size " + dingOrgList.size()); +// log.info(TAG + "update organization size " + dingOrgList.size()); TimeInterval timer = DateUtil.timer(); /** // * 鏍规嵁缁勭粐code 鏌ヨ 閫氳褰曚汉鍛樹俊鎭� @@ -134,7 +134,7 @@ } } ArrayList<UmsAdminRoleRelation> relations = new ArrayList<>(); - log.info(TAG + " elapsed time:" + timer.interval()); +// log.info(TAG + " elapsed time:" + timer.interval()); for (DingUserInfo dingUserInfo : dingList) { //1.娣诲姞鐢ㄦ埛 UmsAdmin user = new UmsAdmin(); @@ -185,7 +185,7 @@ if (CollUtil.isNotEmpty(relations)) { umsAdminRoleRelationService.saveBatch(relations, IService.DEFAULT_BATCH_SIZE); } - log.info(TAG + "update user size " + dingList.size()); +// log.info(TAG + "update user size " + dingList.size()); // getEmployeeAvatar(); } diff --git a/ycl-platform/src/main/java/com/ycl/util/VideoUtil.java b/ycl-platform/src/main/java/com/ycl/util/VideoUtil.java index e99ce7b..cb8bc5d 100644 --- a/ycl-platform/src/main/java/com/ycl/util/VideoUtil.java +++ b/ycl-platform/src/main/java/com/ycl/util/VideoUtil.java @@ -123,7 +123,7 @@ return objectMapper.readTree(monitorReq.getBody()).get("url").textValue(); } catch (Exception ex) { - System.out.println("鑾峰彇瑙嗛寮傚父锛�" + ex); + System.out.println("鑾峰彇瑙嗛寮傚父锛�" + ex.getMessage()); return "鑾峰彇鍦板潃澶辫触锛岃妫�鏌ode鍊�"; } } @@ -135,11 +135,58 @@ private final String APP_SECRET = "LElVf9Ct3ykStZHCmFNZ"; public PageResult<Camera> callPostCameras(Integer pageNo, Integer pageSize, String treeCode) throws Exception { + System.out.println("娴峰悍瑙嗛-callPostCameras"); ArtemisConfig config = new ArtemisConfig(); config.setHost(HOST); // 浠g悊API缃戝叧nginx鏈嶅姟鍣╥p绔彛 config.setAppKey(APP_KEY); // 绉橀挜appkey config.setAppSecret(APP_SECRET);// 绉橀挜appSecret + System.out.println("娴峰悍瑙嗛-鍒濆鍖朿onfig"); final String getSecurityApi = ARTEMIS_PATH + "/api/resource/v1/cameras"; // 鎺ュ彛璺緞 + Map<String, String> path = new HashMap<String, String>(2) { + { + put("https://", getSecurityApi); + } + }; + Map<String, String> head = new HashMap<String, String>(2) { //get璇锋眰鐨刪ead鍙傛暟 + { + put("headpost", "sky-test"); + } + }; + JSONObject jsonBody = new JSONObject(); + jsonBody.put("pageNo", pageNo); + jsonBody.put("pageSize", pageSize); + jsonBody.put("treeCode", treeCode); + String body = jsonBody.toString(); + System.out.println("娴峰悍瑙嗛寮�濮嬭姹傦細"); + //鍙傛暟鏍规嵁鎺ュ彛瀹為檯鎯呭喌璁剧疆 + HttpResponse result = ArtemisHttpUtil.doPostStringImgArtemis(config, path, body, null, null, "application/json", head); + try { + String strResult = EntityUtils.toString(result.getEntity()); + HttpResponseResult responseResult = com.alibaba.fastjson.JSONObject.parseObject(strResult, HttpResponseResult.class); + System.out.println("娴峰悍瑙嗛缁撴灉锛�" + responseResult.toString()); + if ("0".equals(responseResult.getCode())) { + com.alibaba.fastjson.JSONObject jsonObject = responseResult.getData(); + String strList = jsonObject.getString("list"); + Integer total = Integer.parseInt(jsonObject.getString("total")); + Integer resultPageSize = Integer.parseInt(jsonObject.getString("pageSize")); + Integer resultPageNo = Integer.parseInt(jsonObject.getString("pageNo")); + List<Camera> ls = com.alibaba.fastjson.JSONObject.parseArray(strList, Camera.class); + PageResult<Camera> pageResult = new PageResult<>(total, resultPageSize, resultPageNo, ls); + return pageResult; + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + public String getKHVideo(String code) throws Exception { + + ArtemisConfig config = new ArtemisConfig(); + config.setHost(HOST); // 浠g悊API缃戝叧nginx鏈嶅姟鍣╥p绔彛 + config.setAppKey(APP_KEY); // 绉橀挜appkey + config.setAppSecret(APP_SECRET);// 绉橀挜appSecret + final String getSecurityApi = ARTEMIS_PATH + "/api/resource/v1/cameras/previewURLs"; // 鎺ュ彛璺緞 Map<String, String> path = new HashMap<String, String>(2) { { put("https://", getSecurityApi); @@ -156,9 +203,10 @@ } }; JSONObject jsonBody = new JSONObject(); - jsonBody.put("pageNo", pageNo); - jsonBody.put("pageSize", pageSize); - jsonBody.put("treeCode", treeCode); + jsonBody.put("cameraIndexCode", code); + jsonBody.put("streamType", 0); + jsonBody.put("protocol", "hls"); + jsonBody.put("transmode", 0); String body = jsonBody.toString(); //鍙傛暟鏍规嵁鎺ュ彛瀹為檯鎯呭喌璁剧疆 HttpResponse result = ArtemisHttpUtil.doPostStringImgArtemis(config, path, body, query, null, "application/json", head); @@ -167,17 +215,12 @@ HttpResponseResult responseResult = com.alibaba.fastjson.JSONObject.parseObject(strResult, HttpResponseResult.class); if ("0".equals(responseResult.getCode())) { com.alibaba.fastjson.JSONObject jsonObject = responseResult.getData(); - String strList = jsonObject.getString("list"); - Integer total = Integer.parseInt(jsonObject.getString("total")); - Integer resultPageSize = Integer.parseInt(jsonObject.getString("pageSize")); - Integer resultPageNo = Integer.parseInt(jsonObject.getString("pageNo")); - List<Camera> ls = com.alibaba.fastjson.JSONObject.parseArray(strList, Camera.class); - PageResult<Camera> pageResult = new PageResult<>(total, resultPageSize, resultPageNo, ls); - return pageResult; + String url = jsonObject.getString("url"); + return url; } } catch (Exception e) { e.printStackTrace(); } - return null; + return ""; } } diff --git a/ycl-platform/src/main/resources/application-prod.yml b/ycl-platform/src/main/resources/application-prod.yml index 6201f09..e1181ec 100644 --- a/ycl-platform/src/main/resources/application-prod.yml +++ b/ycl-platform/src/main/resources/application-prod.yml @@ -77,4 +77,12 @@ endpoint: http://oss-cn-zjls-lszwy-d01-a.ops.zjlscloud.com keyId: Tkf72Q1gdzETsZf6 keySecret: tRk39S6B1kSGARRdS4DF6jxr5nBYj5 - bucketName: zhzfptoss \ No newline at end of file + bucketName: zhzfptoss + +#涓撴湁閽夐拤鍙傛暟 +zzding : + app-key : SC_ZHZF-IC5g2YiRDW8tug1DfAfiui + app-secret : 39RIHFOKd8fUeeW9T7CdBcwEqA6dMKx5d3686B6P + domain-name : openplatform.dg-work.cn + protocal : https + tenant-id : 50645661 \ No newline at end of file -- Gitblit v1.8.0