czt
昨天 bc3e9b68c66fdeeb7c49155ff46ed68d3650cc18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
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, "执行成功!!");
    }
}