From 9775ffc356e1ed822f7367619ce7a9907cb49bc0 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期六, 13 一月 2024 14:08:12 +0800
Subject: [PATCH] 融云token获取改为异步 setptz改为大光电用高精度setptz其他用普通setptz

---
 ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java | 1290 ++++++++++++++++++++++++++++------------------------------
 1 files changed, 620 insertions(+), 670 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java b/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java
index 00fb04a..55f8e45 100644
--- a/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java
@@ -1,670 +1,620 @@
-package com.ruoyi.device.camera.service.impl;
-
-import com.ruoyi.common.annotation.SdkOperate;
-import com.ruoyi.common.constant.CacheConstants;
-import com.ruoyi.common.core.redis.RedisCache;
-import com.ruoyi.common.utils.file.FileUtils;
-import com.ruoyi.device.camera.domain.ArdCameras;
-import com.ruoyi.device.camera.domain.CameraCmd;
-import com.ruoyi.device.camera.service.IArdCamerasService;
-import com.ruoyi.device.camera.service.ICameraSdkService;
-import com.ruoyi.device.channel.domain.ArdChannel;
-import com.ruoyi.device.dhsdk.lib.NetSDKLib;
-import com.ruoyi.device.dhsdk.module.RealPlayModule;
-import com.ruoyi.device.dhsdk.service.IDhClientService;
-import com.ruoyi.device.hiksdk.common.GlobalVariable;
-import com.ruoyi.device.hiksdk.service.IHikClientService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-
-import javax.annotation.Resource;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import static com.ruoyi.device.dhsdk.lib.ToolKits.getErrorCodePrint;
-import static com.ruoyi.device.dhsdk.module.LoginModule.netsdk;
-import static com.ruoyi.device.hiksdk.sdk.HCNetSDK.NET_DVR_CHECK_USER_STATUS;
-
-
-/**
- * @Description: 鐩告満sdk涓氬姟
- * @ClassName: CameraSdkServiceImpl
- * @Author: 鍒樿嫃涔�
- * @Date: 2023骞�10鏈�16鏃�15:21:01
- **/
-@Service
-@Slf4j(topic = "SDK")
-public class CameraSdkServiceImpl implements ICameraSdkService {
-    @Resource
-    private IArdCamerasService ardCamerasService;
-    @Resource
-    IHikClientService hikClientService;
-    @Resource
-    IDhClientService dhClientService;
-    @Resource
-    RedisCache redisCache;
-    //鍒濆鍖朣DK
-    @Override
-    public void initSDK() {
-        //鍒濆鍖栧姞杞絪dk搴撴枃浠�
-        boolean initHIK = hikClientService.init();
-        if (initHIK) {
-            hikClientService.loginAll();//鐧诲綍鍏ㄩ儴娴峰悍鐩告満
-        }
-        Boolean initDH = dhClientService.init();
-        if (initDH) {
-            dhClientService.loginAll();//鐧诲綍鍏ㄩ儴澶у崕鐩告満
-        }
-    }
-    //鐧诲綍
-    @Override
-    public Boolean login(ArdCameras ardCamera) {
-        boolean result = false;
-        try {
-            if (ardCamera != null) {
-                String factory = ardCamera.getFactory();
-                if (factory.equals("1")) {
-                    hikClientService.syncLogin(ardCamera);
-                    result=true;
-                } else if (factory.equals("2")) {
-                    result = dhClientService.login(ardCamera);
-                }
-            }
-        } catch (Exception ex) {
-            log.error("鐧诲綍寮傚父锛�" + ex.getMessage());
-            return false;
-        }
-        return result;
-    }
-    //娉ㄩ攢
-    @Override
-    public boolean logout(String cameraId) {
-        boolean result = false;
-        try {
-            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
-            if (ardCamera != null) {
-                String factory = ardCamera.getFactory();
-                if (factory.equals("1")) {
-                    result = hikClientService.logout(cameraId);
-                } else if (factory.equals("2")) {
-                    result = dhClientService.logout(cameraId);
-                }
-            }
-        } catch (Exception ex) {
-            log.error("娉ㄩ攢寮傚父锛�" + ex.getMessage());
-            return false;
-        }
-        return result;
-    }
-
-    //鍦ㄧ嚎妫�娴�
-    @Override
-    public boolean isOnLine(CameraCmd cmd) {
-        try {
-            boolean onLine = false;
-            String cameraId = cmd.getCameraId();
-            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
-            if (ardCamera != null) {
-                String factory = ardCamera.getFactory();
-                if (factory.equals("1")) {
-                    onLine = hikClientService.isOnLine(cmd);
-                } else if (factory.equals("2")) {
-                    onLine = dhClientService.isOnLine(cmd);
-                }
-            }
-            return onLine;
-        } catch (Exception ex) {
-            log.error("妫�娴嬪湪绾垮紓甯革細" + ex.getMessage());
-            return false;
-        }
-    }
-    //浜戝彴鎺у埗
-    @SdkOperate
-    @Override
-    public boolean pTZControl(CameraCmd cmd) {
-        try {
-            boolean result = false;
-            String cameraId = cmd.getCameraId();
-            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
-            if (ardCamera != null) {
-                String factory = ardCamera.getFactory();
-                if (factory.equals("1")) {
-                    result = hikClientService.pTZControlWithSpeed(cmd);
-                } else if (factory.equals("2")) {
-                    result = dhClientService.pTZControl(cmd);
-                }
-            }
-            return result;
-        } catch (Exception ex) {
-            log.error("ptz鎺у埗寮傚父锛�" + ex.getMessage());
-            return false;
-        }
-    }
-    //璁剧疆鑱氱劍鍊�
-    @Override
-    public boolean setFocusPos(CameraCmd cmd) {
-        boolean result = false;
-        try {
-            String cameraId = cmd.getCameraId();
-            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
-            if (ardCamera != null) {
-                String factory = ardCamera.getFactory();
-                if (factory.equals("1")) {
-                    result = hikClientService.setFocusPos(cmd);
-                } else if (factory.equals("2")) {
-                    result = dhClientService.setFocusPos(cmd);
-                }
-            }
-        } catch (Exception ex) {
-            log.error("璁剧疆鑱氱劍鍊煎紓甯革細" + ex.getMessage());
-
-        }
-        return result;
-    }
-    //鑾峰彇鑱氱劍鍊�
-    @Override
-    public int getFocusPos(CameraCmd cmd) {
-        int result=0;
-        try {
-            String cameraId = cmd.getCameraId();
-            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
-            if (ardCamera != null) {
-                String factory = ardCamera.getFactory();
-                if (factory.equals("1")) {
-                    result = hikClientService.getFocusPos(cmd);
-                } else if (factory.equals("2")) {
-                    result = dhClientService.getFocusPos(cmd);
-                }
-            }
-        } catch (Exception ex) {
-            log.error("鑾峰彇鑱氱劍鍊煎紓甯革細" + ex.getMessage());
-        }
-        return result;
-    }
-    //璁剧疆棰勭疆浣�
-    @Override
-    public boolean setPreset(CameraCmd cmd) {
-        boolean result = false;
-        try {
-            String cameraId = cmd.getCameraId();
-            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
-            if (ardCamera != null) {
-                String factory = ardCamera.getFactory();
-                if (factory.equals("1")) {
-                    result = hikClientService.setPreset(cmd);
-                } else if (factory.equals("2")) {
-                    result = dhClientService.setPreset(cmd);
-                }
-            }
-        } catch (Exception ex) {
-            log.error("璁剧疆棰勭疆浣嶅紓甯革細" + ex.getMessage());
-        }
-        return result;
-    }
-    //璋冪敤棰勭疆浣�
-    @Override
-    public boolean gotoPreset(CameraCmd cmd) {
-        boolean result = false;
-        try {
-            String cameraId = cmd.getCameraId();
-            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
-            if (ardCamera != null) {
-                String factory = ardCamera.getFactory();
-                if (factory.equals("1")) {
-                    result = hikClientService.gotoPreset(cmd);
-                } else if (factory.equals("2")) {
-                    result = dhClientService.gotoPreset(cmd);
-                }
-            }
-        } catch (Exception ex) {
-            log.error("璋冪敤棰勭疆浣嶅紓甯革細" + ex.getMessage());
-        }
-        return result;
-    }
-    //鑾峰彇鐮佹祦鍘嬬缉鍙傛暟
-    @Override
-    public Map<String, Object> getVideoCompressionCfg(CameraCmd cmd) {
-        Map<String, Object> map = new HashMap<>();
-        try {
-            String cameraId = cmd.getCameraId();
-            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
-            if (ardCamera != null) {
-                String factory = ardCamera.getFactory();
-                if (factory.equals("1")) {
-                    map = hikClientService.getVideoCompressionCfg(cmd);
-                } else if (factory.equals("2")) {
-                    map = dhClientService.getVideoCompressionCfg(cmd);
-                }
-            }
-        } catch (Exception ex) {
-            log.error("鑾峰彇鐮佹祦鍘嬬缉鍙傛暟寮傚父锛�" + ex.getMessage());
-        }
-        return map;
-    }
-    //閫忛浘寮�鍏�
-    @Override
-    public boolean controlDefogcfg(CameraCmd cmd) {
-        boolean result = false;
-        try {
-            String cameraId = cmd.getCameraId();
-            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
-            if (ardCamera != null) {
-                String factory = ardCamera.getFactory();
-                if (factory.equals("1")) {
-                    result = hikClientService.controlDefogcfg(cmd);
-                } else if (factory.equals("2")) {
-                    //涓嶆敮鎸�
-                }
-            }
-        } catch (Exception ex) {
-            log.error("鎿嶆帶閫忛浘寮傚父锛�" + ex.getMessage());
-        }
-        return result;
-    }
-    //绾㈠寮�鍏�
-    @Override
-    public boolean controlInfrarecfg(CameraCmd cmd) {
-        boolean result = false;
-        try {
-            String cameraId = cmd.getCameraId();
-            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
-            if (ardCamera != null) {
-                String factory = ardCamera.getFactory();
-                if (factory.equals("1")) {
-                    result = hikClientService.controlInfrarecfg(cmd);
-                } else if (factory.equals("2")) {
-                    result = dhClientService.controlInfrarecfg(cmd);
-                }
-            }
-        } catch (Exception ex) {
-            log.error("鎿嶆帶绾㈠寮傚父锛�" + ex.getMessage());
-        }
-        return result;
-    }
-    //鎵嬪姩/鑷姩鑱氱劍
-    @Override
-    public boolean controlFocusMode(CameraCmd cmd) {
-        boolean result = false;
-        try {
-            String cameraId = cmd.getCameraId();
-            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
-            if (ardCamera != null) {
-                String factory = ardCamera.getFactory();
-                if (factory.equals("1")) {
-                    result = hikClientService.controlFocusMode(cmd);
-                } else if (factory.equals("2")) {
-                    result = dhClientService.controlFocusMode(cmd);
-                }
-            }
-        } catch (Exception ex) {
-            log.error("鎿嶆帶鑱氱劍妯″紡寮傚父锛�" + ex.getMessage());
-        }
-        return result;
-    }
-    //鑾峰彇鑱氱劍妯″紡
-    @Override
-    public String getFocusMode(CameraCmd cmd) {
-        String result = "";
-        try {
-            String cameraId = cmd.getCameraId();
-            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
-            if (ardCamera != null) {
-                String factory = ardCamera.getFactory();
-                if (factory.equals("1")) {
-                    result = hikClientService.getFocusMode(cmd);
-                } else if (factory.equals("2")) {
-
-                }
-            }
-        } catch (Exception ex) {
-            log.error("鑾峰彇鑱氱劍妯″紡寮傚父锛�" + ex.getMessage());
-        }
-        return result;
-    }
-    //浜戝彴鍔犵儹
-    @Override
-    public boolean controlPTHeateRpwron(CameraCmd cmd) {
-        boolean result = false;
-        try {
-            String cameraId = cmd.getCameraId();
-            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
-            if (ardCamera != null) {
-                String factory = ardCamera.getFactory();
-                if (factory.equals("1")) {
-                    result = hikClientService.controlPTHeateRpwron(cmd);
-                } else if (factory.equals("2")) {
-                    //涓嶆敮鎸�
-                }
-            }
-        } catch (Exception ex) {
-            log.error("鎿嶆帶浜戝彴鍔犵儹寮傚父锛�" + ex.getMessage());
-        }
-        return result;
-    }
-    //闀滃ご鍔犵儹
-    @Override
-    public boolean controlCameraDeicing(CameraCmd cmd) {
-        boolean result = false;
-        try {
-            String cameraId = cmd.getCameraId();
-            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
-            if (ardCamera != null) {
-                String factory = ardCamera.getFactory();
-                if (factory.equals("1")) {
-                    result = hikClientService.controlCameraDeicing(cmd);
-                } else if (factory.equals("2")) {
-                    //涓嶆敮鎸�
-                }
-            }
-        } catch (Exception ex) {
-            log.error("鎿嶆帶浜戝彴鍔犵儹寮傚父锛�" + ex.getMessage());
-        }
-        return result;
-    }
-
-    //鑾峰彇浜戝彴閿佸畾淇℃伅
-    @Override
-    public int getPTZLockInfo(CameraCmd cmd) {
-        int result = 99;
-        try {
-            String cameraId = cmd.getCameraId();
-            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
-            if (ardCamera != null) {
-                String factory = ardCamera.getFactory();
-                if (factory.equals("1")) {
-                    result = hikClientService.getPTZLockInfo(cmd);
-                } else if (factory.equals("2")) {
-
-                }
-            }
-        } catch (Exception ex) {
-            log.error("鑾峰彇浜戝彴閿佸畾淇℃伅寮傚父锛�" + ex.getMessage());
-        }
-        return result;
-    }
-
-    @Override
-    public String captureJPEGPicture(CameraCmd cmd) {
-        return null;
-    }
-    //鎶撳浘
-    @SdkOperate
-    @Override
-    public String picCutCate(CameraCmd cmd) {
-       String url = "";
-        try {
-            //鑾峰彇鎽勫儚澶碔D
-            String cameraId = cmd.getCameraId();
-            //浠巖edis涓幏鍙栨憚鍍忓ご淇℃伅
-            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
-            if (ardCamera != null) {
-                //鑾峰彇鎽勫儚澶村伐鍘�
-                String factory = ardCamera.getFactory();
-                if (factory.equals("1")) {
-                    //璋冪敤hikClientService鐨刾icCutCate鏂规硶
-                    url = hikClientService.picCutCate(cmd);
-                } else if (factory.equals("2")) {
-                    //璋冪敤dhClientService鐨刾icCutCate鏂规硶
-                    url = dhClientService.picCutCate(cmd);
-                }
-            }
-        } catch (Exception ex) {
-            log.error("鎶撳浘寮傚父锛�" + ex.getMessage());
-        }
-        return url;
-    }
-    //鑾峰彇ptz
-    @Override
-    public Map<String, Object> getPtz(CameraCmd cmd) {
-        Map<String, Object> map = new HashMap<>();
-        try {
-            String cameraId = cmd.getCameraId();
-            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
-            if (ardCamera != null) {
-                String factory = ardCamera.getFactory();
-                if (factory.equals("1")) {
-                    map = hikClientService.getPtz(cmd);
-                } else if (factory.equals("2")) {
-                    map = dhClientService.getPtz(cmd);
-                }
-            }
-        } catch (Exception ex) {
-            log.error("鑾峰彇ptz寮傚父锛�" + ex.getMessage());
-        }
-        return map;
-    }
-    //鑾峰彇ptz鑼冨洿
-    @Override
-    public Map<String, Object> getPtzScope(CameraCmd cmd) {
-        Map<String, Object> map = new HashMap<>();
-        try {
-            String cameraId = cmd.getCameraId();
-            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
-            if (ardCamera != null) {
-                String factory = ardCamera.getFactory();
-                if (factory.equals("1")) {
-                    map = hikClientService.getPtzScope(cmd);
-                } else if (factory.equals("2")) {
-
-                }
-            }
-        } catch (Exception ex) {
-            log.error("鑾峰彇ptz鑼冨洿寮傚父锛�" + ex.getMessage());
-        }
-        return map;
-    }
-    //璁剧疆ptz
-    @SdkOperate
-    @Override
-    public boolean setPtz(CameraCmd cmd) {
-        boolean result = false;
-        try {
-            String cameraId = cmd.getCameraId();
-            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
-            if (ardCamera != null) {
-                String factory = ardCamera.getFactory();
-                if (factory.equals("1")) {
-                    result = hikClientService.setPtz(cmd);
-                } else if (factory.equals("2")) {
-                    result = dhClientService.setPtz(cmd);
-                }
-            }
-        } catch (Exception ex) {
-            log.error("璁剧疆ptz寮傚父锛�" + ex.getMessage());
-        }
-        return result;
-    }
-    //璁剧疆闆舵柟浣嶈
-    @SdkOperate
-    @Override
-    public boolean setZeroPtz(CameraCmd cmd) {
-        boolean result = false;
-        try {
-            String cameraId = cmd.getCameraId();
-            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
-            if (ardCamera != null) {
-                String factory = ardCamera.getFactory();
-                if (factory.equals("1")) {
-                    result = hikClientService.setZeroPtz(cmd);
-                } else if (factory.equals("2")) {
-                    result = dhClientService.setZeroPtz(cmd);
-                }
-            }
-        } catch (Exception ex) {
-            log.error("璁剧疆闆舵柟浣嶈寮傚父锛�" + ex.getMessage());
-        }
-        return result;
-    }
-    //寮曞鎸囧悜鐩爣
-    @SdkOperate
-    @Override
-    public boolean guideTargetPosition(CameraCmd cmd) {
-        boolean result = false;
-        try {
-            String cameraId = cmd.getCameraId();
-            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
-            if (ardCamera != null) {
-                String factory = ardCamera.getFactory();
-                if (factory.equals("1")) {
-                    result = hikClientService.guideTargetPosition(cmd);
-                } else if (factory.equals("2")) {
-                    result = dhClientService.guideTargetPosition(cmd);
-                }
-            }
-        } catch (Exception ex) {
-            log.error("寮曞鎸囧悜鐩爣寮傚父锛�" + ex.getMessage());
-        }
-        return result;
-    }
-
-    /**
-     * @鎻忚堪 鎿嶆帶閿佸畾
-     * @鍙傛暟 [userId, channelNum]
-     * @杩斿洖鍊� boolean
-     * @鍒涘缓浜� 鍒樿嫃涔�
-     * @鍒涘缓鏃堕棿 2023/1/17 16:36
-     * @淇敼浜哄拰鍏跺畠淇℃伅 0-瑙i攣 1-閿佸畾
-     */
-    @Override
-    @SdkOperate
-    public boolean controlLock(CameraCmd cmd) {
-        String cameraId = cmd.getCameraId();//鐢宠閿佺殑鐩告満
-        ArdCameras ardCameras = ardCamerasService.selectArdCamerasById(cameraId);
-        Date now = new Date();
-        now.setTime(now.getTime() + cmd.getExpired() * 1000);
-        ardCameras.setOperatorExpired(now);//璁剧疆褰撳墠杩囨湡鏃堕棿
-        ardCamerasService.updateArdCameras(ardCameras);
-        return true;
-    }
-
-    /**
-     * @鎻忚堪 鎿嶆帶瑙i攣
-     * @鍙傛暟 [userId, channelNum]
-     * @杩斿洖鍊� boolean
-     * @鍒涘缓浜� 鍒樿嫃涔�
-     * @鍒涘缓鏃堕棿 2023/6/30 15:36
-     * @淇敼浜哄拰鍏跺畠淇℃伅
-     */
-    @Override
-    public boolean controlUnLock(CameraCmd cmd) {
-        String cameraId = cmd.getCameraId();//鐢宠瑙i攣鐨勭浉鏈�
-        String operator = cmd.getOperator();//鐢宠鑰�
-        ArdCameras ardCameras = ardCamerasService.selectArdCamerasById(cameraId);
-        if (ardCameras.getOperatorId().equals(operator)) {
-            //濡傛灉瑙i攣鐩告満鐨勫綋鍓嶇敤鎴锋槸鐢宠鑰咃紝鍒欐竻绌鸿鐩告満鐨勮繃鏈熸椂闂�
-            ardCameras.setOperatorExpired(null);
-            int i = ardCamerasService.updateArdCameras(ardCameras);
-            if (i > 0) {
-                log.debug(cameraId + "--瑙i攣鎴愬姛");
-            }
-        }
-        return true;
-    }
-
-
-    //褰曞儚
-    @SdkOperate
-    @Override
-    public String record(CameraCmd cmd) {
-        String url = "";
-        try {
-            String cameraId = cmd.getCameraId();
-            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
-            if (ardCamera != null) {
-                String factory = ardCamera.getFactory();
-                if (factory.equals("1")) {
-                    url = hikClientService.record(cmd);
-                } else if (factory.equals("2")) {
-                    url = dhClientService.record(cmd);
-                }
-            }
-        } catch (Exception ex) {
-            log.error("褰曞儚寮傚父锛�" + ex.getMessage());
-        }
-        return url;
-    }
-
-    //寮�濮嬪綍鍍�
-    @Override
-    public boolean recordStart(CameraCmd cmd) {
-        boolean result = false;
-        try {
-            String cameraId = cmd.getCameraId();
-            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
-            if (ardCamera != null) {
-                String factory = ardCamera.getFactory();
-                if (factory.equals("1")) {
-                    result = hikClientService.recordStart(cmd);
-                } else if (factory.equals("2")) {
-                    result = dhClientService.recordStart(cmd);
-                }
-            }
-        } catch (Exception ex) {
-            log.error("寮�濮嬪綍鍍忓紓甯革細" + ex.getMessage());
-        }
-        return result;
-    }
-    //鍋滄褰曞儚骞跺瓨鍏inio
-    @Override
-    public String recordStopToMinio(CameraCmd cmd) {
-        String url = "";
-        try {
-            String cameraId = cmd.getCameraId();
-            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
-            if (ardCamera != null) {
-                String factory = ardCamera.getFactory();
-                if (factory.equals("1")) {
-                    url = hikClientService.recordStopToMinio(cmd);
-                } else if (factory.equals("2")) {
-                    url = dhClientService.recordStopToMinio(cmd);
-                }
-            }
-        } catch (Exception ex) {
-            log.error("鍋滄褰曞儚寮傚父锛�" + ex.getMessage());
-        }
-        return url;
-    }
-    //鍋滄褰曞儚骞朵笉瀛樺叆minio
-    @Override
-    public boolean recordStopNotToMinio(CameraCmd cmd) {
-        boolean result = false;
-        try {
-            String cameraId = cmd.getCameraId();
-            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
-            if (ardCamera != null) {
-                String factory = ardCamera.getFactory();
-                if (factory.equals("1")) {
-                    result = hikClientService.recordStopNotToMinio(cmd);
-                } else if (factory.equals("2")) {
-                    result = dhClientService.recordStopNotToMinio(cmd);
-                }
-            }
-        } catch (Exception ex) {
-            log.error("鍋滄褰曞儚寮傚父锛�" + ex.getMessage());
-        }
-        return result;
-    }
-
-    //鑾峰彇鐩告満鏋惰鍙傛暟
-    @Override
-    public Map<String, Object> getGisInfo(CameraCmd cmd) {
-        Map<String, Object> map = new HashMap<>();
-        try {
-            String cameraId = cmd.getCameraId();
-            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
-            if (ardCamera != null) {
-                String factory = ardCamera.getFactory();
-                if (factory.equals("1")) {
-                    map = hikClientService.getGisInfo(cmd);
-                } else if (factory.equals("2")) {
-
-                }
-            }
-        } catch (Exception ex) {
-            log.error("鑾峰彇鐩告満鏋惰鍙傛暟寮傚父锛�" + ex.getMessage());
-        }
-        return map;
-    }
-}
+package com.ruoyi.device.camera.service.impl;
+
+import com.ruoyi.common.annotation.SdkOperate;
+import com.ruoyi.common.constant.CacheConstants;
+import com.ruoyi.common.core.redis.RedisCache;
+import com.ruoyi.device.camera.domain.ArdCameras;
+import com.ruoyi.device.camera.domain.CameraCmd;
+import com.ruoyi.device.camera.service.IArdCamerasService;
+import com.ruoyi.device.camera.service.ICameraSdkService;
+import com.ruoyi.device.camera.factory.CameraSDK;
+import com.ruoyi.device.camera.factory.CameraSDKFactory;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * @Description: 鐩告満sdk涓氬姟
+ * @ClassName: CameraSdkServiceImpl
+ * @Author: 鍒樿嫃涔�
+ * @Date: 2023骞�10鏈�16鏃�15:21:01
+ **/
+@Service
+@Slf4j(topic = "SDK")
+public class CameraSdkServiceImpl implements ICameraSdkService, ApplicationRunner {
+    @Resource
+    private IArdCamerasService ardCamerasService;
+    @Resource
+    private RedisCache redisCache;
+    @Resource
+    private CameraSDKFactory cameraSDKFactory;
+
+    /**
+     * 鍚姩绾跨▼鏂规硶锛岀敤浜庢墽琛屽垵濮嬪寲鐧诲綍鐩告満鐨勯�昏緫
+     *
+     * @param args 鍛戒护琛屽弬鏁�
+     */
+    @Override
+    public void run(ApplicationArguments args) {
+
+        try {
+            // 浠巃rdCamerasService涓幏鍙朅rdCameras鍒楄〃
+            List<ArdCameras> ardCameras = ardCamerasService.selectArdCamerasListNoDataScope(new ArdCameras());
+            for (ArdCameras camera : ardCameras) {
+                login(camera);
+            }
+        } catch (Exception ex) {
+            // 鍒濆鍖栫櫥褰曠浉鏈哄紓甯革紝璁板綍閿欒鏃ュ織
+            log.error("鍒濆鍖栫櫥褰曠浉鏈哄紓甯革細" + ex.getMessage());
+        }
+    }
+
+
+    //鐧诲綍
+    @Override
+    public Boolean login(ArdCameras ardCamera) {
+        boolean result = false;
+        try {
+            if (ardCamera != null) {
+                String factory = ardCamera.getFactory();
+                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
+                //sdkStrategy.login(ardCamera);//鍚屾鐧诲綍
+                cameraSDK.asyncLogin(ardCamera);//寮傛鐧诲綍
+                result=true;
+            }
+        } catch (Exception ex) {
+            log.error("鐧诲綍寮傚父锛�" + ex.getMessage());
+            return false;
+        }
+        return result;
+    }
+
+    //娉ㄩ攢
+    @Override
+    public boolean logout(String cameraId) {
+        boolean result = false;
+        try {
+            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
+            if (ardCamera != null) {
+                String factory = ardCamera.getFactory();
+                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
+                result = cameraSDK.logout(cameraId);
+            }
+        } catch (Exception ex) {
+            log.error("娉ㄩ攢寮傚父锛�" + ex.getMessage());
+            return false;
+        }
+        return result;
+    }
+
+    //鍦ㄧ嚎妫�娴�
+    @Override
+    public boolean isOnLine(CameraCmd cmd) {
+        try {
+            boolean onLine = false;
+            String cameraId = cmd.getCameraId();
+            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
+            if (ardCamera != null) {
+                String factory = ardCamera.getFactory();
+                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
+                onLine = cameraSDK.isOnLine(cmd);
+            }
+            return onLine;
+        } catch (Exception ex) {
+            log.error("妫�娴嬪湪绾垮紓甯革細" + ex.getMessage());
+            return false;
+        }
+    }
+
+    //浜戝彴鎺у埗
+    @SdkOperate
+    @Override
+    public boolean pTZControl(CameraCmd cmd) {
+        try {
+            boolean result = false;
+            String cameraId = cmd.getCameraId();
+            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
+            if (ardCamera != null) {
+                String factory = ardCamera.getFactory();
+                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
+                result = cameraSDK.pTZControl(cmd);
+            }
+            return result;
+        } catch (Exception ex) {
+            log.error("ptz鎺у埗寮傚父锛�" + ex.getMessage());
+            return false;
+        }
+    }
+
+    //璁剧疆鑱氱劍鍊�
+    @Override
+    public boolean setFocusPos(CameraCmd cmd) {
+        boolean result = false;
+        try {
+            String cameraId = cmd.getCameraId();
+            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
+            if (ardCamera != null) {
+                String factory = ardCamera.getFactory();
+                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
+                result = cameraSDK.setFocusPos(cmd);
+            }
+        } catch (Exception ex) {
+            log.error("璁剧疆鑱氱劍鍊煎紓甯革細" + ex.getMessage());
+
+        }
+        return result;
+    }
+
+    //鑾峰彇鑱氱劍鍊�
+    @Override
+    public int getFocusPos(CameraCmd cmd) {
+        int result = 0;
+        try {
+            String cameraId = cmd.getCameraId();
+            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
+            if (ardCamera != null) {
+                String factory = ardCamera.getFactory();
+                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
+                result = cameraSDK.getFocusPos(cmd);
+            }
+        } catch (Exception ex) {
+            log.error("鑾峰彇鑱氱劍鍊煎紓甯革細" + ex.getMessage());
+        }
+        return result;
+    }
+
+    //璁剧疆棰勭疆浣�
+    @Override
+    @SdkOperate
+    public boolean setPreset(CameraCmd cmd) {
+        boolean result = false;
+        try {
+            String cameraId = cmd.getCameraId();
+            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
+            if (ardCamera != null) {
+                String factory = ardCamera.getFactory();
+                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
+                result = cameraSDK.setPreset(cmd);
+            }
+        } catch (Exception ex) {
+            log.error("璁剧疆棰勭疆浣嶅紓甯革細" + ex.getMessage());
+        }
+        return result;
+    }
+
+    //璋冪敤棰勭疆浣�
+    @Override
+    @SdkOperate
+    public boolean gotoPreset(CameraCmd cmd) {
+        boolean result = false;
+        try {
+            String cameraId = cmd.getCameraId();
+            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
+            if (ardCamera != null) {
+                String factory = ardCamera.getFactory();
+                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
+                result = cameraSDK.gotoPreset(cmd);
+            }
+        } catch (Exception ex) {
+            log.error("璋冪敤棰勭疆浣嶅紓甯革細" + ex.getMessage());
+        }
+        return result;
+    }
+
+    //鑾峰彇鐮佹祦鍘嬬缉鍙傛暟
+    @Override
+    public Map<String, Object> getVideoCompressionCfg(CameraCmd cmd) {
+        Map<String, Object> map = new HashMap<>();
+        try {
+            String cameraId = cmd.getCameraId();
+            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
+            if (ardCamera != null) {
+                String factory = ardCamera.getFactory();
+                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
+                map = cameraSDK.getVideoCompressionCfg(cmd);
+            }
+        } catch (Exception ex) {
+            log.error("鑾峰彇鐮佹祦鍘嬬缉鍙傛暟寮傚父锛�" + ex.getMessage());
+        }
+        return map;
+    }
+
+    //閫忛浘寮�鍏�
+    @Override
+    public boolean controlDefogcfg(CameraCmd cmd) {
+        boolean result = false;
+        try {
+            String cameraId = cmd.getCameraId();
+            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
+            if (ardCamera != null) {
+                String factory = ardCamera.getFactory();
+                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
+                result = cameraSDK.controlDefogcfg(cmd);
+            }
+        } catch (Exception ex) {
+            log.error("鎿嶆帶閫忛浘寮傚父锛�" + ex.getMessage());
+        }
+        return result;
+    }
+
+    //绾㈠寮�鍏�
+    @Override
+    public boolean controlInfrarecfg(CameraCmd cmd) {
+        boolean result = false;
+        try {
+            String cameraId = cmd.getCameraId();
+            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
+            if (ardCamera != null) {
+                String factory = ardCamera.getFactory();
+                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
+                result = cameraSDK.controlInfrarecfg(cmd);
+            }
+        } catch (Exception ex) {
+            log.error("鎿嶆帶绾㈠寮傚父锛�" + ex.getMessage());
+        }
+        return result;
+    }
+
+    //鎵嬪姩/鑷姩鑱氱劍
+    @Override
+    public boolean controlFocusMode(CameraCmd cmd) {
+        boolean result = false;
+        try {
+            String cameraId = cmd.getCameraId();
+            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
+            if (ardCamera != null) {
+                String factory = ardCamera.getFactory();
+                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
+                result = cameraSDK.controlFocusMode(cmd);
+            }
+        } catch (Exception ex) {
+            log.error("鎿嶆帶鑱氱劍妯″紡寮傚父锛�" + ex.getMessage());
+        }
+        return result;
+    }
+
+    //鑾峰彇鑱氱劍妯″紡
+    @Override
+    public String getFocusMode(CameraCmd cmd) {
+        String result = "";
+        try {
+            String cameraId = cmd.getCameraId();
+            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
+            if (ardCamera != null) {
+                String factory = ardCamera.getFactory();
+                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
+                result = cameraSDK.getFocusMode(cmd);
+            }
+        } catch (Exception ex) {
+            log.error("鑾峰彇鑱氱劍妯″紡寮傚父锛�" + ex.getMessage());
+        }
+        return result;
+    }
+
+    //浜戝彴鍔犵儹
+    @Override
+    public boolean controlPTHeateRpwron(CameraCmd cmd) {
+        boolean result = false;
+        try {
+            String cameraId = cmd.getCameraId();
+            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
+            if (ardCamera != null) {
+                String factory = ardCamera.getFactory();
+                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
+                result = cameraSDK.controlPTHeateRpwron(cmd);
+            }
+        } catch (Exception ex) {
+            log.error("鎿嶆帶浜戝彴鍔犵儹寮傚父锛�" + ex.getMessage());
+        }
+        return result;
+    }
+
+    //闀滃ご鍔犵儹
+    @Override
+    public boolean controlCameraDeicing(CameraCmd cmd) {
+        boolean result = false;
+        try {
+            String cameraId = cmd.getCameraId();
+            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
+            if (ardCamera != null) {
+                String factory = ardCamera.getFactory();
+                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
+                result = cameraSDK.controlCameraDeicing(cmd);
+            }
+        } catch (Exception ex) {
+            log.error("鎿嶆帶浜戝彴鍔犵儹寮傚父锛�" + ex.getMessage());
+        }
+        return result;
+    }
+
+    //鑾峰彇浜戝彴閿佸畾淇℃伅
+    @Override
+    public int getPTZLockInfo(CameraCmd cmd) {
+        int result = 99;
+        try {
+            String cameraId = cmd.getCameraId();
+            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
+            if (ardCamera != null) {
+                String factory = ardCamera.getFactory();
+                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
+                result = cameraSDK.getPTZLockInfo(cmd);
+            }
+        } catch (Exception ex) {
+            log.error("鑾峰彇浜戝彴閿佸畾淇℃伅寮傚父锛�" + ex.getMessage());
+        }
+        return result;
+    }
+
+    @Override
+    public String captureJPEGPicture(CameraCmd cmd) {
+        return null;
+    }
+
+    //鎶撳浘
+    @SdkOperate
+    @Override
+    public String picCutCate(CameraCmd cmd) {
+        String url = "";
+        try {
+            //鑾峰彇鎽勫儚澶碔D
+            String cameraId = cmd.getCameraId();
+            //浠巖edis涓幏鍙栨憚鍍忓ご淇℃伅
+            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
+            if (ardCamera != null) {
+                //鑾峰彇鎽勫儚澶村伐鍘�
+                String factory = ardCamera.getFactory();
+                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
+                url = cameraSDK.picCutCate(cmd);
+            }
+        } catch (Exception ex) {
+            log.error("鎶撳浘寮傚父锛�" + ex.getMessage());
+        }
+        return url;
+    }
+
+    //鑾峰彇ptz
+    @Override
+    public Map<String, Object> getPtz(CameraCmd cmd) {
+        Map<String, Object> map = new HashMap<>();
+        try {
+            String cameraId = cmd.getCameraId();
+            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
+            if (ardCamera != null) {
+                String factory = ardCamera.getFactory();
+                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
+                map = cameraSDK.getPtz(cmd);
+            }
+        } catch (Exception ex) {
+            log.error("鑾峰彇ptz寮傚父锛�" + ex.getMessage());
+        }
+        return map;
+    }
+
+    //鑾峰彇ptz鑼冨洿
+    @Override
+    public Map<String, Object> getPtzScope(CameraCmd cmd) {
+        Map<String, Object> map = new HashMap<>();
+        try {
+            String cameraId = cmd.getCameraId();
+            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
+            if (ardCamera != null) {
+                String factory = ardCamera.getFactory();
+                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
+                map = cameraSDK.getPtzScope(cmd);
+            }
+        } catch (Exception ex) {
+            log.error("鑾峰彇ptz鑼冨洿寮傚父锛�" + ex.getMessage());
+        }
+        return map;
+    }
+
+    //璁剧疆ptz
+    @SdkOperate
+    @Override
+    public boolean setPtz(CameraCmd cmd) {
+        boolean result = false;
+        try {
+            String cameraId = cmd.getCameraId();
+            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
+            if (ardCamera != null) {
+                String factory = ardCamera.getFactory();
+                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
+                String gdtype = ardCamera.getGdtype();
+                if(gdtype.equals("1")) {
+                    //澶у厜鐢典娇鐢ㄩ珮绮惧害ptz璁剧疆
+                    result = cameraSDK.setPtz(cmd);
+                }else
+                {
+                    result = cameraSDK.setPtz1(cmd);
+                }
+
+            }
+        } catch (Exception ex) {
+            log.error("璁剧疆ptz寮傚父锛�" + ex.getMessage());
+        }
+        return result;
+    }
+
+    //璁剧疆闆舵柟浣嶈
+    @SdkOperate
+    @Override
+    public boolean setZeroPtz(CameraCmd cmd) {
+        boolean result = false;
+        try {
+            String cameraId = cmd.getCameraId();
+            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
+            if (ardCamera != null) {
+                String factory = ardCamera.getFactory();
+                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
+                result = cameraSDK.setZeroPtz(cmd);
+            }
+        } catch (Exception ex) {
+            log.error("璁剧疆闆舵柟浣嶈寮傚父锛�" + ex.getMessage());
+        }
+        return result;
+    }
+
+    //寮曞鎸囧悜鐩爣
+    @SdkOperate
+    @Override
+    public boolean guideTargetPosition(CameraCmd cmd) {
+        boolean result = false;
+        try {
+            String cameraId = cmd.getCameraId();
+            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
+            if (ardCamera != null) {
+                String factory = ardCamera.getFactory();
+                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
+                result = cameraSDK.guideTargetPosition(cmd);
+            }
+        } catch (Exception ex) {
+            log.error("寮曞鎸囧悜鐩爣寮傚父锛�" + ex.getMessage());
+        }
+        return result;
+    }
+
+    /**
+     * @鎻忚堪 鎿嶆帶閿佸畾
+     * @鍙傛暟 [userId, channelNum]
+     * @杩斿洖鍊� boolean
+     * @鍒涘缓浜� 鍒樿嫃涔�
+     * @鍒涘缓鏃堕棿 2023/1/17 16:36
+     * @淇敼浜哄拰鍏跺畠淇℃伅 0-瑙i攣 1-閿佸畾
+     */
+    @Override
+    @SdkOperate
+    public boolean controlLock(CameraCmd cmd) {
+        String cameraId = cmd.getCameraId();//鐢宠閿佺殑鐩告満
+        ArdCameras ardCameras = ardCamerasService.selectArdCamerasById(cameraId);
+        Date now = new Date();
+        now.setTime(now.getTime() + cmd.getExpired() * 1000);
+        ardCameras.setOperatorExpired(now);//璁剧疆褰撳墠杩囨湡鏃堕棿
+        ardCamerasService.updateArdCameras(ardCameras);
+        return true;
+    }
+
+    /**
+     * @鎻忚堪 鎿嶆帶瑙i攣
+     * @鍙傛暟 [userId, channelNum]
+     * @杩斿洖鍊� boolean
+     * @鍒涘缓浜� 鍒樿嫃涔�
+     * @鍒涘缓鏃堕棿 2023/6/30 15:36
+     * @淇敼浜哄拰鍏跺畠淇℃伅
+     */
+    @Override
+    public boolean controlUnLock(CameraCmd cmd) {
+        String cameraId = cmd.getCameraId();//鐢宠瑙i攣鐨勭浉鏈�
+        String operator = cmd.getOperator();//鐢宠鑰�
+        ArdCameras ardCameras = ardCamerasService.selectArdCamerasById(cameraId);
+        if (ardCameras.getOperatorId().equals(operator)) {
+            //濡傛灉瑙i攣鐩告満鐨勫綋鍓嶇敤鎴锋槸鐢宠鑰咃紝鍒欐竻绌鸿鐩告満鐨勮繃鏈熸椂闂�
+            ardCameras.setOperatorExpired(null);
+            int i = ardCamerasService.updateArdCameras(ardCameras);
+            if (i > 0) {
+                log.debug(cameraId + "--瑙i攣鎴愬姛");
+            }
+        }
+        return true;
+    }
+
+
+    //褰曞儚
+    @SdkOperate
+    @Override
+    public String record(CameraCmd cmd) {
+        String url = "";
+        try {
+            String cameraId = cmd.getCameraId();
+            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
+            if (ardCamera != null) {
+                String factory = ardCamera.getFactory();
+                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
+                url = cameraSDK.record(cmd);
+            }
+        } catch (Exception ex) {
+            log.error("褰曞儚寮傚父锛�" + ex.getMessage());
+        }
+        return url;
+    }
+
+    //寮�濮嬪綍鍍�
+    @Override
+    public boolean recordStart(CameraCmd cmd) {
+        boolean result = false;
+        try {
+            String cameraId = cmd.getCameraId();
+            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
+            if (ardCamera != null) {
+                String factory = ardCamera.getFactory();
+                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
+                result = cameraSDK.recordStart(cmd);
+            }
+        } catch (Exception ex) {
+            log.error("寮�濮嬪綍鍍忓紓甯革細" + ex.getMessage());
+        }
+        return result;
+    }
+
+    //鍋滄褰曞儚骞跺瓨鍏inio
+    @Override
+    public String recordStopToMinio(CameraCmd cmd) {
+        String url = "";
+        try {
+            String cameraId = cmd.getCameraId();
+            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
+            if (ardCamera != null) {
+                String factory = ardCamera.getFactory();
+                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
+                url = cameraSDK.recordStopToMinio(cmd);
+            }
+        } catch (Exception ex) {
+            log.error("鍋滄褰曞儚寮傚父锛�" + ex.getMessage());
+        }
+        return url;
+    }
+
+    //鍋滄褰曞儚骞朵笉瀛樺叆minio
+    @Override
+    public boolean recordStopNotToMinio(CameraCmd cmd) {
+        boolean result = false;
+        try {
+            String cameraId = cmd.getCameraId();
+            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
+            if (ardCamera != null) {
+                String factory = ardCamera.getFactory();
+                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
+                result = cameraSDK.recordStopNotToMinio(cmd);
+            }
+        } catch (Exception ex) {
+            log.error("鍋滄褰曞儚寮傚父锛�" + ex.getMessage());
+        }
+        return result;
+    }
+
+    //鑾峰彇鐩告満鏋惰鍙傛暟
+    @Override
+    public Map<String, Object> getGisInfo(CameraCmd cmd) {
+        Map<String, Object> map = new HashMap<>();
+        try {
+            String cameraId = cmd.getCameraId();
+            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
+            if (ardCamera != null) {
+                String factory = ardCamera.getFactory();
+                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
+                map = cameraSDK.getGisInfo(cmd);
+            }
+        } catch (Exception ex) {
+            log.error("鑾峰彇鐩告満鏋惰鍙傛暟寮傚父锛�" + ex.getMessage());
+        }
+        return map;
+    }
+
+
+}

--
Gitblit v1.9.3