package com.ard.work.api; import com.ard.common.core.constant.SecurityConstants; import com.ard.common.core.constant.ServiceNameConstants; import com.ard.common.core.domain.R; import com.ard.common.core.web.domain.AjaxResult; import com.ard.work.api.domian.ArdCamera; import com.ard.work.api.domian.CameraCmd; import com.ard.work.api.factory.RemoteCameraFallbackFactory; import com.ard.work.api.factory.RemoteSDKFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.TreeMap; /** * 相机服务 * * @author ard */ @FeignClient(contextId = "remoteCameraService", value = ServiceNameConstants.WORK_SERVICE, fallbackFactory = RemoteCameraFallbackFactory.class) public interface RemoteCameraService { /** * 获取所有相机 * * @return 结果 */ @GetMapping(value = "/device/camera/list/all") public R> getAllCamera(@RequestHeader(SecurityConstants.FROM_SOURCE) String source); /** * 根据条件获取所有相机 * * @return 结果 */ @PostMapping(value = "/device/camera/list/rpc") public R> getAllCameraRpc(@RequestBody ArdCamera ardCamera,@RequestHeader(SecurityConstants.FROM_SOURCE) String source); /** * 根据id获取相机详情 * * @return 结果 */ @GetMapping(value = "/device/camera/{id}/rpc") public R getCameraInfoRpc(@PathVariable("id") String id, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); /** * 获取附近的相机 * * @return 结果 */ @PostMapping(value = "/device/camera/getNearbyCameras/rpc") public R> getNearbyCamerasRpc(@RequestBody CameraCmd cmd, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); /** * 设置锁定 * * @return 结果 */ @PostMapping(value = "/device/camera/setPTZLock/rpc") public R setPTZLockRpc(@RequestBody CameraCmd cmd, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); /** * 获取雷达所在塔上的大光电 * * @return 结果 */ @GetMapping(value = "/device/camera/{radarId}/getCameraByRadar/rpc") public R getCameraByRadar(@PathVariable("radarId") String radarId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); /** * 通过名称获取相机 * * @return 结果 */ @GetMapping(value = "/device/camera/getCameraByName/{name}") public R getCameraByName(@PathVariable("name") String name, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); // 新增:更新摄像机信息 @PutMapping("/device/camera/rpc") R updateCamera(@RequestBody ArdCamera camera, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); /** * 更新相机位置和基座偏航角 * * @return 结果 */ @PutMapping("/device/camera/rpc/updateCameraLocationAndYaw") R updateCameraLocationAndYaw( @RequestParam("cameraId") String cameraId, @RequestParam("longitude") Double longitude, @RequestParam("latitude") Double latitude, @RequestParam("altitude") Double altitude, @RequestParam("baseYaw") Float baseYaw, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); }