New file |
| | |
| | | package com.dy.pipIrrRemote.video; |
| | | |
| | | import com.dy.common.aop.SsoAop; |
| | | import com.dy.common.webUtil.BaseResponse; |
| | | import com.dy.common.webUtil.BaseResponseUtils; |
| | | import com.dy.common.webUtil.QueryResultVo; |
| | | import com.dy.common.webUtil.ResultCodeMsg; |
| | | import com.dy.pipIrrGlobal.pojoVi.ViYsApp; |
| | | import com.dy.pipIrrGlobal.util.CameraTypeEnum; |
| | | import com.dy.pipIrrGlobal.voVi.VoCamera; |
| | | import io.swagger.v3.oas.annotations.Operation; |
| | | import io.swagger.v3.oas.annotations.media.Content; |
| | | import io.swagger.v3.oas.annotations.media.Schema; |
| | | import io.swagger.v3.oas.annotations.responses.ApiResponse; |
| | | import io.swagger.v3.oas.annotations.responses.ApiResponses; |
| | | import io.swagger.v3.oas.annotations.tags.Tag; |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.http.MediaType; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | | * @Date: 2025/6/9 10:34 |
| | | * @Description |
| | | */ |
| | | @Slf4j |
| | | @Tag(name = "视频监控", description = "视频监控") |
| | | @RestController |
| | | @RequestMapping(path = "video") |
| | | @RequiredArgsConstructor |
| | | public class VideoCtrl { |
| | | private VideoSv sv; |
| | | private YsAppSv ysSv; |
| | | |
| | | @Value("${video.screen.count: 4}") |
| | | private Integer pageSize;//每页显示条数 |
| | | |
| | | @Value("${video.ys.requestVideoCommonUrl: https://open.ys7.com/console/jssdk/pc.html}") |
| | | private String requestVideoCommonUrl;// |
| | | @Value("${video.ys.requestVideoCameraPreUrl: ezopen://open.ys7.com/}") |
| | | private String requestVideoCameraPreUrl;// |
| | | @Value("${video.ys.requestVideoCameraTailUrl: /1.live&themeId=}") |
| | | private String requestVideoCameraTailUrl;// |
| | | |
| | | @Autowired |
| | | private void setSv(VideoSv sv, YsAppSv ysSv){ |
| | | this.sv = sv ; |
| | | this.ysSv = ysSv ; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 客户端请求得到一些摄像机数据 |
| | | * @return 所有摄像机数据 |
| | | */ |
| | | @Operation(summary = "获得一页摄像机数据", description = "返回一页摄像机数据数据") |
| | | @ApiResponses(value = { |
| | | @ApiResponse( |
| | | responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, |
| | | description = "返回一页摄像机数据(BaseResponse.content:QueryResultVo[{}])", |
| | | content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, |
| | | schema = @Schema(implementation = VoCamera.class))} |
| | | ) |
| | | }) |
| | | @GetMapping(path = "some") |
| | | @SsoAop() |
| | | public BaseResponse<QueryResultVo<List<VoVideo>>> some(VideoQo queryQo){ |
| | | try { |
| | | ViYsApp ysApp = this.ysSv.selectSingleton() ; |
| | | if(ysApp == null){ |
| | | //remote模块的自动任务可能清空了,所以再查询一次 |
| | | ysApp = this.ysSv.selectSingleton() ; |
| | | } |
| | | List<VoVideo> list = new ArrayList<>() ; |
| | | QueryResultVo<List<VoCamera>> resTmp = this.sv.some(queryQo, pageSize) ; |
| | | if(resTmp != null && resTmp.obj != null){ |
| | | for(VoCamera vo : resTmp.obj){ |
| | | VoVideo vvo = new VoVideo() ; |
| | | vvo.id = vo.id ; |
| | | vvo.name = vo.name ; |
| | | if(ysApp != null && vo.type != null && vo.type.byteValue() == CameraTypeEnum.YINGSHI.getType().byteValue()){ |
| | | //萤石 |
| | | StringBuilder sb = new StringBuilder(); |
| | | sb.append(requestVideoCommonUrl); |
| | | sb.append("?accessToken="); |
| | | sb.append(ysApp.accessToken); |
| | | sb.append("&url="); |
| | | sb.append(requestVideoCameraPreUrl); |
| | | sb.append(vo.devNo); |
| | | sb.append(requestVideoCameraTailUrl); |
| | | vvo.videoUrl4Simple = sb.toString() + "simple"; |
| | | vvo.videoUrl4Standard = sb.toString() + "standard" ; |
| | | vvo.videoUrl4Security = sb.toString() + "security" ; |
| | | }else{ |
| | | vvo.videoUrl4Simple = "" ; |
| | | vvo.videoUrl4Standard = "" ; |
| | | vvo.videoUrl4Security = "" ; |
| | | } |
| | | list.add(vvo) ; |
| | | } |
| | | } |
| | | QueryResultVo<List<VoVideo>> res = new QueryResultVo<>() ; |
| | | resTmp.copyTo(res); |
| | | res.obj = list ; |
| | | return BaseResponseUtils.buildSuccess(res); |
| | | } catch (Exception e) { |
| | | log.error("查询摄像机异常", e); |
| | | return BaseResponseUtils.buildException(e.getMessage()) ; |
| | | } |
| | | } |
| | | } |