package com.fzzy.sys.manager.security;
|
|
import com.fzzy.igds.camera.ApiCameraManager;
|
import com.fzzy.igds.camera.data.ApiCameraData;
|
import com.fzzy.igds.camera.data.ApiCameraResp;
|
import com.fzzy.igds.constant.RespCodeEnum;
|
import com.fzzy.igds.data.PageResponse;
|
import com.fzzy.igds.domain.Camera;
|
import com.fzzy.igds.service.SecCameraService;
|
import com.fzzy.igds.utils.ContextUtil;
|
import com.ruoyi.common.utils.StringUtils;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.stereotype.Component;
|
|
import javax.annotation.Resource;
|
import java.util.List;
|
|
/**
|
* @Description
|
* @Author CZT
|
* @Date 2025/12/9 9:19
|
*/
|
@Slf4j
|
@Component
|
public class SecManager {
|
|
@Resource
|
private SecCameraService secCameraService;
|
@Resource
|
private ApiCameraManager apiCameraManager;
|
|
/**
|
*
|
* @param deptId
|
* @param companyId
|
* @return
|
*/
|
public List<Camera> listCamera(String deptId, String companyId) {
|
if (null == deptId){
|
return null;
|
}
|
|
List<Camera> list = secCameraService.getCameraByDeptId(companyId, deptId);
|
|
if (null == list || list.isEmpty()){
|
return null;
|
}
|
|
return list;
|
}
|
|
/**
|
* 根据监控ID获取监控信息
|
* @param companyId
|
* @param cameraId
|
* @return
|
*/
|
public Camera getCameraById(String companyId, String cameraId) {
|
if (StringUtils.isEmpty(companyId)) {
|
companyId = ContextUtil.getCompanyId();
|
}
|
if (StringUtils.isEmpty(cameraId)){
|
return null;
|
}
|
return secCameraService.getCameraById(companyId, cameraId);
|
}
|
|
/**
|
* 获取播放信息
|
* @param param
|
* @return
|
*/
|
public ApiCameraResp getPlayAddr(Camera param, String requireIp) {
|
|
if (StringUtils.isEmpty(param.getId())) {
|
log.error("没有获取到监控信息!");
|
return new ApiCameraResp("ERROR", "没有获取到监控信息!");
|
}
|
|
// 根据id获取设备信息
|
Camera camera = secCameraService.getCameraById(ContextUtil.getCompanyId(), param.getId());
|
if(null == camera){
|
log.error("缓存中没有获取到摄像头信息"+ param.toString());
|
return new ApiCameraResp("ERROR", "缓存中没有获取到摄像头信息!");
|
}
|
|
//通过统一入口获取播放地址
|
ApiCameraData apiCameraData = new ApiCameraData();
|
apiCameraData.setCompanyId(camera.getCompanyId());
|
apiCameraData.setDeptId(camera.getDeptId());
|
apiCameraData.setCameraId(camera.getId());
|
apiCameraData.setIp(camera.getIp());
|
apiCameraData.setCtrlPort(camera.getControlPort());
|
apiCameraData.setWebPort(camera.getWebPort());
|
apiCameraData.setPlayType(camera.getPlayType());
|
apiCameraData.setSnapType(camera.getSnapType());
|
apiCameraData.setSn(camera.getSn());
|
apiCameraData.setChannel(camera.getChanNum());
|
apiCameraData.setLoginId(camera.getLoginId());
|
apiCameraData.setPwd(camera.getPwd());
|
apiCameraData.setUrlIn(camera.getUrlIn());
|
apiCameraData.setUrlOut(camera.getUrlOut());
|
apiCameraData.setMediaAddr(camera.getMediaAddr());
|
|
//根据播放方式获取对应的播放地址
|
ApiCameraResp resp = apiCameraManager.getApiCameraService(camera.getPlayType()).getPlayAddr(apiCameraData);
|
return resp;
|
}
|
|
/**
|
* 云台控制
|
* @param param
|
* @return
|
*/
|
public ApiCameraResp ptzMedia(ApiCameraData param) {
|
|
if(StringUtils.isEmpty(param.getCompanyId())){
|
param.setCompanyId(ContextUtil.getCompanyId());
|
}
|
return apiCameraManager.getApiCameraService(param.getPtzType()).ptzMedia(param);
|
}
|
|
/**
|
* 预置位设置
|
* @param param
|
* @return
|
*/
|
public ApiCameraResp ptzPreset(ApiCameraData param) {
|
return apiCameraManager.getApiCameraService(param.getPlayType()).ptzPreset(param);
|
}
|
|
/**
|
*
|
* @param params
|
* @return
|
*/
|
public PageResponse<String> updatePos(List<Camera> params) {
|
|
if (null == params || params.isEmpty()) {
|
return new PageResponse<>(RespCodeEnum.CODE_2000.getCode(),
|
"当前没有需要执行的信息!");
|
}
|
|
for (Camera param : params) {
|
secCameraService.updatePos(param);
|
}
|
|
secCameraService.refreshCache(ContextUtil.getCompanyId());
|
return new PageResponse<>(RespCodeEnum.CODE_0000, "执行成功!!");
|
}
|
}
|