rain
2024-08-02 dfae9043b11e788fa4d442e4576d73571e976cea
src/main/java/com/dji/sample/manage/controller/DeviceController.java
@@ -74,16 +74,54 @@
    }
    /**
     * 手动在线
     * @param workspaceId
     * @param receiver
     * @return
     */
    @PostMapping("/{workspace_id}/deviceOnline")
    public ResponseResult<List<DeviceDTO>> deviceOnline(@PathVariable("workspace_id") String workspaceId,
                                                        @RequestBody CommonTopicReceiver<StatusGatewayReceiver> receiver) {
        boolean offline = deviceService.deviceOnline(receiver.getData());
        if (offline) {
            // Notify pilot that the device is offline successfully.
            deviceService.publishStatusReply(receiver.getData().getSn(),
                    CommonTopicResponse.builder()
                            .tid(receiver.getTid())
                            .bid(receiver.getBid())
                            .timestamp(System.currentTimeMillis())
                            .method(receiver.getMethod())
                            .build());
        }
        return ResponseResult.success();
    }
    /**
     * Get the topology list of all online devices in one workspace.
     * @param workspaceId
     * @return
     */
    @GetMapping("/{workspace_id}/devices")
    public ResponseResult<List<DeviceDTO>> getDevices(@PathVariable("workspace_id") String workspaceId) {
        List<DeviceDTO> devicesList = deviceService.getDevicesTopoForWeb(workspaceId);
    public ResponseResult<List<DeviceDTO>> getDevices(@PathVariable("workspace_id") String workspaceId,String reserveId) {
        List<DeviceDTO> devicesList = deviceService.getDevicesTopoForWeb(workspaceId,reserveId);
        return ResponseResult.success(devicesList);
    }
//    @GetMapping("/{device_sn}/subscribeTopic2")
//    public ResponseResult<List<DeviceDTO>> testBinding(@PathVariable("device_sn") String deviceSn) {
//        deviceService.subscribeTopicOnline(deviceSn);
//
//        return ResponseResult.success();
//    }
//
//    @GetMapping("/{device_sn}/unsubscribeTopic2")
//    public ResponseResult<List<DeviceDTO>> testUnBinding(@PathVariable("device_sn") String deviceSn) {
//        deviceService.unsubscribeTopicOffline(deviceSn);
//
//        return ResponseResult.success();
//    }
    /**
     * After binding the device to the workspace, the device data can only be seen on the web.
@@ -108,7 +146,7 @@
    public ResponseResult getDevice(@PathVariable("workspace_id") String workspaceId,
                                               @PathVariable("device_sn") String deviceSn) {
        Optional<DeviceDTO> deviceOpt = deviceService.getDeviceBySn(deviceSn);
        return deviceOpt.isEmpty() ? ResponseResult.error("device not found.") : ResponseResult.success(deviceOpt.get());
        return deviceOpt.isEmpty() ? ResponseResult.error("设备未找到") : ResponseResult.success(deviceOpt.get());
    }
    /**
@@ -189,4 +227,4 @@
        deviceService.devicePropertySet(workspaceId, dockSn, propertyEnumOpt.get(), param.get(property));
        return ResponseResult.success();
    }
}
}