‘liusuyi’
2023-06-15 4aa86f1386d20c9ad811e2d18b7e56f00b06e25c
ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/SdkOperateAspect.java
@@ -4,12 +4,11 @@
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.constant.CamPriority;
import com.ruoyi.device.camera.domain.ArdCameras;
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;
@@ -40,8 +39,8 @@
    @Around("dsPointCut()")
    public Object around(ProceedingJoinPoint point) throws Throwable {
        Boolean resultMap = dataScopeFilter(point);
        if (resultMap) {
        Boolean result = controlScopeFilter(point);
        if (result) {
            return point.proceed();
        } else {
            return false;//代替目标方法的返回值
@@ -53,7 +52,7 @@
     *
     * @param joinPoint 切点
     */
    public Boolean dataScopeFilter(ProceedingJoinPoint joinPoint) {
    public Boolean controlScopeFilter(ProceedingJoinPoint joinPoint) {
        //获取请求控制相机的命令信息
        CameraCmd cmd = (CameraCmd) joinPoint.getArgs()[0];
        String operator = cmd.getOperator();//申请者
@@ -84,18 +83,18 @@
                } else {
                    /*当前相机有人控制并且配置了过期时间,先判断优先级,优先级高允许控制*/
                    Integer currentLevel = 0;//当前相机的操作者的优先级
                    if (sdkPriority.priorityMap.containsKey(currentOperator)) {
                    if (CamPriority.priorityMap.containsKey(currentOperator)) {
                        /*当前控制者为系统报警用户*/
                        currentLevel = (Integer) sdkPriority.priorityMap.get(currentOperator);
                        currentLevel = (Integer) CamPriority.priorityMap.get(currentOperator);
                    } else {
                        /*当前控制者为普通用户*/
                        SysUser sysUser = sysUserService.selectUserById(currentOperator);
                        currentLevel = sysUser.getCameraPriority();
                    }
                    Integer operatorLevel = 0;//获取申请者的优先级
                    if (sdkPriority.priorityMap.containsKey(operator)) {
                    if (CamPriority.priorityMap.containsKey(operator)) {
                        /*包含说明当前申请控制者为系统报警用户*/
                        operatorLevel = (Integer) sdkPriority.priorityMap.get(operator);
                        operatorLevel = (Integer) CamPriority.priorityMap.get(operator);
                    } else {
                        /*否则申请控制者为当前登录用户*/
                        LoginUser loginUser = SecurityUtils.getLoginUser();
@@ -111,7 +110,6 @@
                        return true;
                    } else {
                        /*如果申请者优先级低,则判断过期时间*/
                        Date now = new Date();
                        if (currentExpired == null) {
                            /*当前相机未配置过期时间,可控*/
                            ardCameras.setOperatorId(operator);
@@ -119,7 +117,7 @@
                            ardCamerasService.updateArdCameras(ardCameras);//更新相机当前控制者
                            return true;
                        } else {
                            if (now.before(currentExpired)) {
                            if (new Date().before(currentExpired)) {
                                /*时间未过期,不可控*/
                                return false;
                            } else {