package com.fzzy.igds.app.v1.service.impl; import com.alibaba.fastjson.JSONObject; import com.fzzy.common.constant.RespCodeEnum; import com.fzzy.igds.app.v1.constant.PhoneConstant; import com.fzzy.igds.app.v1.data.*; import com.fzzy.igds.app.v1.service.PhoneService; import com.fzzy.igds.app.v1.util.PhoneRespUtil; import com.fzzy.igds.camera.ApiCameraManager; import com.fzzy.igds.camera.data.ApiCameraData; import com.fzzy.igds.camera.data.ApiCameraResp; import com.fzzy.igds.domain.Camera; import com.fzzy.igds.service.SecCameraService; import com.fzzy.igds.utils.ContextUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; /** * @Author: YYC * @Description: 视频监管-监控播放 * @DateTime: 2026-1-12 14:43 **/ @Service public class ServiceImpl5104 implements PhoneService { @Autowired private SecCameraService secCameraService; @Resource private ApiCameraManager apiCameraManager; @Override public String getInterfaceId() { return PhoneConstant.API_PHONE_5104; } @Override public PhoneResponse execute(PhoneRequest req, AuthUser authUser) throws Exception { //转化对象 ParamVideo param = JSONObject.parseObject(req.getData().toString(), ParamVideo.class); if (null == param) { return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "参数有误,请重试!!"); } //参数验证 if (StringUtils.isEmpty(param.getId())) { return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "参数有误,请重试!!"); } if ("DEFAULT".equals(param.getPlayType())) { return PhoneRespUtil.error(RespCodeEnum.CODE_1007, "系统未配置当前摄像头播放方式,不执行预览"); } if (com.ruoyi.common.utils.StringUtils.isEmpty(param.getId()) || com.ruoyi.common.utils.StringUtils.isEmpty(param.getPlayType())) { return PhoneRespUtil.error(RespCodeEnum.CODE_1005, "没有获取到监控信息!"); } // 根据id获取设备信息 Camera camera = secCameraService.getCameraById(ContextUtil.getCompanyId(), param.getId()); if (null == camera) { return PhoneRespUtil.error(RespCodeEnum.CODE_1005, "缓存中没有获取到摄像头信息!"); } //通过统一入口获取播放地址 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(param.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(apiCameraData.getPlayType()).getPlayAddr(apiCameraData); return PhoneRespUtil.success(resp, req); } }