| | |
| | | * @修改人和其它信息 0-解锁 1-锁定 |
| | | */ |
| | | @Override |
| | | @SdkOperate |
| | | public boolean controlLock(CameraCmd cmd) { |
| | | String cameraId = cmd.getCameraId();//申请锁的相机 |
| | | ArdCameras ardCameras = ardCamerasMapper.selectArdCamerasById(cameraId); |
| | | if (StringUtils.isNull(ardCameras)) { |
| | | return false;//找不到相机拒绝操控 |
| | | } |
| | | Integer expired = cmd.getExpired();//申请控制时长 |
| | | String operator = cmd.getOperator();//申请者 |
| | | String currentOperator = ardCameras.getOperatorId();//相机当前控制者 |
| | | Date currentExpired = ardCameras.getOperatorExpired();//相机当前过期时间 |
| | | if (currentExpired == null) { |
| | | //设置当前操作用户ID |
| | | ardCameras.setOperatorId(operator); |
| | | //设置当前过期时间 |
| | | Date now = new Date(); |
| | | now.setTime(now.getTime() + expired * 1000); |
| | | ardCameras.setOperatorExpired(now); |
| | | ardCamerasMapper.updateArdCameras(ardCameras); |
| | | } else { |
| | | //如果过期时间有值 |
| | | //如果是本人直接修改 |
| | | if (currentOperator.equals(operator)) { |
| | | //设置当前过期时间 |
| | | Date now = new Date(); |
| | | now.setTime(now.getTime() + expired * 1000); |
| | | ardCameras.setOperatorExpired(now); |
| | | ardCamerasMapper.updateArdCameras(ardCameras); |
| | | } else { |
| | | //如果非本人比较优先级 |
| | | Integer currentLevel = 0;//当前操作者的优先级 |
| | | if (CamPriority.priorityMap.containsKey(currentOperator)) { |
| | | /*当前控制者为系统报警用户*/ |
| | | currentLevel = (Integer) CamPriority.priorityMap.get(currentOperator); |
| | | } else { |
| | | /*当前控制者为普通用户*/ |
| | | SysUser sysUser = sysUserMapper.selectUserById(currentOperator); |
| | | currentLevel = sysUser.getCameraPriority(); |
| | | } |
| | | Integer operatorLevel = 0;//获取申请者的优先级 |
| | | if (CamPriority.priorityMap.containsKey(operator)) { |
| | | /*包含说明当前申请控制者为系统报警用户*/ |
| | | operatorLevel = (Integer) CamPriority.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); |
| | | now.setTime(now.getTime() + cmd.getExpired() * 60); |
| | | ardCameras.setOperatorExpired(now);//设置当前过期时间 |
| | | ardCameras.setOperatorId(operator);//设置当前用户 |
| | | ardCamerasMapper.updateArdCameras(ardCameras); |
| | | } else { |
| | | return false;//优先级低无法上锁 |
| | | } |
| | | } |
| | | } |
| | | // String cameraId = cmd.getCameraId();//申请锁的相机 |
| | | // ArdCameras ardCameras = ardCamerasMapper.selectArdCamerasById(cameraId); |
| | | // if (StringUtils.isNull(ardCameras)) { |
| | | // return false;//找不到相机拒绝操控 |
| | | // } |
| | | // Integer expired = cmd.getExpired();//申请控制时长 |
| | | // String operator = cmd.getOperator();//申请者 |
| | | // String currentOperator = ardCameras.getOperatorId();//相机当前控制者 |
| | | // Date currentExpired = ardCameras.getOperatorExpired();//相机当前过期时间 |
| | | // if (currentExpired == null) { |
| | | // //设置当前操作用户ID |
| | | // ardCameras.setOperatorId(operator); |
| | | // //设置当前过期时间 |
| | | // Date now = new Date(); |
| | | // now.setTime(now.getTime() + expired * 1000); |
| | | // ardCameras.setOperatorExpired(now); |
| | | // ardCamerasMapper.updateArdCameras(ardCameras); |
| | | // } else { |
| | | // //如果过期时间有值 |
| | | // //如果是本人直接修改 |
| | | // if (currentOperator.equals(operator)) { |
| | | // //设置当前过期时间 |
| | | // Date now = new Date(); |
| | | // now.setTime(now.getTime() + expired * 1000); |
| | | // ardCameras.setOperatorExpired(now); |
| | | // ardCamerasMapper.updateArdCameras(ardCameras); |
| | | // } else { |
| | | // //如果非本人比较优先级 |
| | | // Integer currentLevel = 0;//当前操作者的优先级 |
| | | // if (CamPriority.priorityMap.containsKey(currentOperator)) { |
| | | // /*当前控制者为系统报警用户*/ |
| | | // currentLevel = (Integer) CamPriority.priorityMap.get(currentOperator); |
| | | // } else { |
| | | // /*当前控制者为普通用户*/ |
| | | // SysUser sysUser = sysUserMapper.selectUserById(currentOperator); |
| | | // currentLevel = sysUser.getCameraPriority(); |
| | | // } |
| | | // Integer operatorLevel = 0;//获取申请者的优先级 |
| | | // if (CamPriority.priorityMap.containsKey(operator)) { |
| | | // /*包含说明当前申请控制者为系统报警用户*/ |
| | | // operatorLevel = (Integer) CamPriority.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); |
| | | // ardCameras.setOperatorExpired(now);//设置当前过期时间 |
| | | // ardCameras.setOperatorId(operator);//设置当前用户 |
| | | // ardCamerasMapper.updateArdCameras(ardCameras); |
| | | // } else { |
| | | // return false;//优先级低无法上锁 |
| | | // } |
| | | // } |
| | | // } |
| | | return true; |
| | | } |
| | | /** |