‘liusuyi’
2023-05-30 2809c11f8611aea88673c105945a8e093ff1efc7
ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/SdkOperateAspect.java
@@ -9,6 +9,7 @@
import com.ruoyi.device.camera.domain.CameraCmd;
import com.ruoyi.device.camera.service.IArdCamerasService;
import com.ruoyi.system.service.ISysUserService;
import org.apache.ibatis.jdbc.Null;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
@@ -63,17 +64,25 @@
        }
        Date currentExpired = ardCameras.getOperatorExpired();//当前相机的过期时间
        String currentOperator = ardCameras.getOperatorId();//当前相机的操作者
        if (StringUtils.isEmpty(currentOperator)) {
            /*当前相机控制者为空时,直接更新控制者,并允许*/
        /*先判断锁定时间*/
        if (currentExpired == null) {
            /*如果未配置锁定时间,任何人可控制*/
            ardCameras.setOperatorId(operator);
            ardCamerasService.updateArdCameras(ardCameras);//更新相机当前控制者
            return true;
        } else {
            if (operator.equals(currentOperator)) {
                /*判断申请者已经在控,直接允许*/
            /*锁定时间配置了,判断当前操作者*/
            if (StringUtils.isEmpty(currentOperator)) {
                /*当前相机控制者为空时,任何人可控*/
                ardCameras.setOperatorId(operator);
                ardCamerasService.updateArdCameras(ardCameras);//更新相机当前控制者
                return true;
            } else {
                /*判断是否本人继续控制*/
                if (currentOperator.equals(operator)) {
                    return true;
                } else {
                    /*当前相机有人控制并且配置了过期时间,先判断优先级,优先级高允许控制*/
                Integer currentLevel = 0;//当前相机的操作者的优先级
                if (sdkPriority.priorityMap.containsKey(currentOperator)) {
                    /*当前控制者为系统报警用户*/
@@ -97,6 +106,7 @@
                if (operatorLevel > currentLevel) {
                    /*如果申请者优先级高,允许控制*/
                    ardCameras.setOperatorId(operator);
                        ardCameras.setOperatorExpired(null);
                    ardCamerasService.updateArdCameras(ardCameras);//更新相机当前控制者
                    return true;
                } else {
@@ -105,10 +115,10 @@
                    if (currentExpired == null) {
                        /*当前相机未配置过期时间,可控*/
                        ardCameras.setOperatorId(operator);
                            ardCameras.setOperatorExpired(null);
                        ardCamerasService.updateArdCameras(ardCameras);//更新相机当前控制者
                        return true;
                    }
                    else {
                        } else {
                        if (now.before(currentExpired)) {
                            /*时间未过期,不可控*/
                            return false;
@@ -123,4 +133,6 @@
            }
        }
    }
    }
}