From c6eb731b0a70946e5ba265d9e5d427b8bb4537a6 Mon Sep 17 00:00:00 2001 From: ‘liusuyi’ <1951119284@qq.com> Date: 星期四, 25 五月 2023 16:36:50 +0800 Subject: [PATCH] 修改云台可控优先级策略 --- ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/hikClientServiceImpl.java | 102 +++++++++++++++++++++++---------------------------- 1 files changed, 46 insertions(+), 56 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/hikClientServiceImpl.java b/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/hikClientServiceImpl.java index f1121bb..92e8124 100644 --- a/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/hikClientServiceImpl.java +++ b/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/hikClientServiceImpl.java @@ -5,6 +5,7 @@ import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.constant.sdkPriority; import com.ruoyi.device.camera.domain.CameraCmd; import com.ruoyi.device.camera.mapper.ArdCamerasMapper; import com.ruoyi.device.hiksdk.common.global.globalVariable; @@ -233,7 +234,7 @@ * @淇敼浜哄拰鍏跺畠淇℃伅 */ @Override - // @SdkOperate + @SdkOperate public boolean PTZControlWithSpeed(CameraCmd cmd) { String cameraId = cmd.getCameraId(); boolean enable = cmd.isEnable(); @@ -630,77 +631,66 @@ */ @Override public boolean controlLock(CameraCmd cmd) { - String cameraId = cmd.getCameraId(); - Integer expired = cmd.getExpired(); + String cameraId = cmd.getCameraId();//鐢宠閿佺殑鐩告満 ArdCameras ardCameras = ardCamerasMapper.selectArdCamerasById(cameraId); if (StringUtils.isNull(ardCameras)) { return false;//鎵句笉鍒扮浉鏈烘嫆缁濇搷鎺� } - String operatorId = ardCameras.getOperatorId(); - if (StringUtils.isEmpty(operatorId)) { - //濡傛灉璇ョ浉鏈烘棤浜洪攣瀹氾紝鐩存帴閿佸畾 - LoginUser loginUser = SecurityUtils.getLoginUser(); - if (StringUtils.isNull(loginUser)) { - return false;//褰撳墠鐧诲綍鐢ㄦ埛涓虹┖涓嶅彲浠ユ帶鍒� - } - SysUser user = loginUser.getUser(); - if (StringUtils.isNull(user.getCameraPriority())) { - return false;//鏈厤缃紭鍏堢骇鐨勭敤鎴蜂笉鍙互鎺у埗 - } + Integer expired = cmd.getExpired();//鐢宠鎺у埗鏃堕暱 + String operator=cmd.getOperator();//鐢宠鑰� + String currentOperator = ardCameras.getOperatorId();//鐩告満褰撳墠鎺у埗鑰� + Date currentExpired = ardCameras.getOperatorExpired();//鐩告満褰撳墠杩囨湡鏃堕棿 + if(currentExpired==null) + { //璁剧疆褰撳墠鎿嶄綔鐢ㄦ埛ID - ardCameras.setOperatorId(user.getUserId()); + ardCameras.setOperatorId(operator); //璁剧疆褰撳墠杩囨湡鏃堕棿 Date now = new Date(); - now.setTime(now.getTime() + expired * 1000); + now.setTime(now.getTime() + expired * 1000*60); ardCameras.setOperatorExpired(now); ardCamerasMapper.updateArdCameras(ardCameras); - } else { - //濡傛灉璇ョ浉鏈烘湁浜洪攣瀹氾紝鍒ゆ柇浼樺厛绾� - SysUser operatorUser = sysUserMapper.selectUserById(operatorId); - if (StringUtils.isNull(operatorUser)) { - return false; - } - if (StringUtils.isEmpty(operatorUser.getCameraPriority())) { - return false; - } - Integer operatorPriority = Integer.parseInt(operatorUser.getCameraPriority());//鐩告満宸叉搷浣滅敤鎴蜂紭鍏堢骇 - - LoginUser loginUser = SecurityUtils.getLoginUser(); - if (StringUtils.isNull(loginUser)) { - return false;//褰撳墠鐧诲綍鐢ㄦ埛涓虹┖涓嶅彲浠ユ帶鍒� - } - SysUser user = loginUser.getUser(); - if (StringUtils.isEmpty(user.getCameraPriority())) { - return false;//鏈厤缃紭鍏堢骇鐨勭敤鎴蜂笉鍙互鎺у埗 - } - Integer loginUserCameraPriority = Integer.parseInt(user.getCameraPriority());//褰撳墠鐧诲綍鐢ㄦ埛浼樺厛绾� - if (user.getUserId().equals(operatorUser.getUserId())) { - //濡傛灉褰撳墠鐢ㄦ埛宸茬粡鎿嶆帶锛岀洿鎺ユ洿鏂拌繃鏈熸椂闂� + } + else { + //濡傛灉杩囨湡鏃堕棿鏈夊�� + //濡傛灉鏄湰浜虹洿鎺ヤ慨鏀� + if(currentOperator.equals(operator)) + { + //璁剧疆褰撳墠杩囨湡鏃堕棿 Date now = new Date(); - now.setTime(now.getTime() + expired * 60 * 1000); - ardCameras.setOperatorExpired(now);//璁剧疆褰撳墠杩囨湡鏃堕棿 + now.setTime(now.getTime() + expired * 1000*60); + ardCameras.setOperatorExpired(now); ardCamerasMapper.updateArdCameras(ardCameras); - } else { - if (loginUserCameraPriority > operatorPriority) { - //濡傛灉鐧诲綍鐢ㄦ埛浼樺厛绾ч珮浜庡凡鎿嶄綔鐢ㄦ埛锛岃鐩栨洿鏂� - ardCameras.setOperatorId(user.getUserId());//璁剧疆褰撳墠鎿嶄綔鐢ㄦ埛ID + } + else { + //濡傛灉闈炴湰浜烘瘮杈冧紭鍏堢骇 + Integer currentLevel = 0;//褰撳墠鎿嶄綔鑰呯殑浼樺厛绾� + if (sdkPriority.priorityMap.containsKey(currentOperator)) { + /*褰撳墠鎺у埗鑰呬负绯荤粺鎶ヨ鐢ㄦ埛*/ + currentLevel = (Integer) sdkPriority.priorityMap.get(currentOperator); + } else { + /*褰撳墠鎺у埗鑰呬负鏅�氱敤鎴�*/ + SysUser sysUser = sysUserMapper.selectUserById(currentOperator); + currentLevel = sysUser.getCameraPriority(); + } + Integer operatorLevel = 0;//鑾峰彇鐢宠鑰呯殑浼樺厛绾� + if (sdkPriority.priorityMap.containsKey(operator)) { + /*鍖呭惈璇存槑褰撳墠鐢宠鎺у埗鑰呬负绯荤粺鎶ヨ鐢ㄦ埛*/ + operatorLevel = (Integer) sdkPriority.priorityMap.get(operator); + } else { + /*鍚﹀垯鐢宠鎺у埗鑰呬负褰撳墠鐧诲綍鐢ㄦ埛*/ + LoginUser loginUser = SecurityUtils.getLoginUser(); + SysUser user = loginUser.getUser();//鑾峰彇鐧诲綍鐢ㄦ埛鐨勪俊鎭� + operatorLevel = user.getCameraPriority(); + } + //鍒ゆ柇浼樺厛绾� + if (operatorLevel > currentLevel) { Date now = new Date(); now.setTime(now.getTime() + expired * 60 * 1000); ardCameras.setOperatorExpired(now);//璁剧疆褰撳墠杩囨湡鏃堕棿 + ardCameras.setOperatorId(operator);//璁剧疆褰撳墠鐢ㄦ埛 ardCamerasMapper.updateArdCameras(ardCameras); } else { - //濡傛灉鐧诲綍鐢ㄦ埛浼樺厛绾т綆浜庣瓑浜庡凡鎿嶄綔鐢ㄦ埛锛屽垽鏂槸鍚﹁繃鏈� - Date now = new Date(); - Date operatorExpired = ardCameras.getOperatorExpired(); - if (now.after(operatorExpired)) { - //宸茶繃鏈� - ardCameras.setOperatorId(user.getUserId());//璁剧疆褰撳墠鎿嶄綔鐢ㄦ埛ID - now.setTime(now.getTime() + expired * 60 * 1000); - ardCameras.setOperatorExpired(now);//璁剧疆褰撳墠杩囨湡鏃堕棿 - ardCamerasMapper.updateArdCameras(ardCameras); - } else { - return false;//鏈繃鏈熶笉鍙帶 - } + return false;//浼樺厛绾т綆鏃犳硶涓婇攣 } } } -- Gitblit v1.9.3