package com.ycwl.basic.controller.vpt; import com.ycwl.basic.annotation.IgnoreLogReq; import com.ycwl.basic.annotation.IgnoreToken; import com.ycwl.basic.device.entity.common.FileObject; import com.ycwl.basic.device.operator.VptPassiveStorageOperator; import com.ycwl.basic.device.operator.VptPassiveStorageOperator; import com.ycwl.basic.model.wvp.WvpSyncReqVo; import com.ycwl.basic.storage.StorageFactory; import com.ycwl.basic.storage.adapters.IStorageAdapter; import com.ycwl.basic.utils.ApiResponse; import io.swagger.annotations.Api; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; @Slf4j @IgnoreToken @RestController @Api(tags = "自定义切片工具对接接口") @RequestMapping("/vpt/v1/") public class VptController { @IgnoreLogReq @PostMapping("/scenic/{scenicId}/sync") public ApiResponse> sync(@PathVariable("scenicId") Long scenicId, @RequestBody WvpSyncReqVo reqVo) { return ApiResponse.success(VptPassiveStorageOperator.getTaskListByScenicIdAndDeviceList(scenicId, reqVo.getDevices())); } @PostMapping("/scenic/{scenicId}/{taskId}/uploadUrl") public String uploadUrl(@PathVariable("scenicId") Long scenicId, @PathVariable("taskId") Long taskId) { IStorageAdapter adapter = StorageFactory.use("assets-ext"); return adapter.getUrlForUpload(VptPassiveStorageOperator.getUrlForTask(taskId)); } @PostMapping("/scenic/{scenicId}/{taskId}/success") public ApiResponse success(@PathVariable("scenicId") Long scenicId, @PathVariable("taskId") Long taskId, @RequestBody FileObject fileObject) { IStorageAdapter adapter = StorageFactory.use("assets-ext"); fileObject.setUrl(adapter.getUrl(VptPassiveStorageOperator.getUrlForTask(taskId))); VptPassiveStorageOperator.onReceiveResult(taskId, fileObject); return ApiResponse.success("success"); } @PostMapping("/scenic/{scenicId}/{taskId}/failure") public ApiResponse fail(@PathVariable("scenicId") Long scenicId, @PathVariable("taskId") Long taskId) { VptPassiveStorageOperator.onReceiveResult(taskId, null); return ApiResponse.success("success"); } }