支持vpt方式

This commit is contained in:
2025-02-07 23:00:23 +08:00
parent a016622cc9
commit ea3ce510d8
9 changed files with 191 additions and 15 deletions

View File

@ -0,0 +1,52 @@
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<List<VptPassiveStorageOperator.Task>> 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<String> 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<String> fail(@PathVariable("scenicId") Long scenicId, @PathVariable("taskId") Long taskId) {
VptPassiveStorageOperator.onReceiveResult(taskId, null);
return ApiResponse.success("success");
}
}

View File

@ -12,6 +12,7 @@ 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.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@ -28,11 +29,8 @@ import java.util.List;
@RequestMapping("/wvp/v1/")
public class WvpController {
private final DeviceService deviceService;
public WvpController(DeviceService deviceService) {
this.deviceService = deviceService;
}
@Autowired
private DeviceService deviceService;
@IgnoreLogReq
@PostMapping("/scenic/{scenicId}/sync")
@ -49,9 +47,7 @@ public class WvpController {
@PostMapping("/scenic/{scenicId}/{taskId}/success")
public ApiResponse<String> success(@PathVariable("scenicId") Long scenicId, @PathVariable("taskId") Long taskId, @RequestBody FileObject fileObject) {
IStorageAdapter adapter = StorageFactory.use("assets-ext");
if (StringUtils.isBlank(fileObject.getUrl())) {
fileObject.setUrl(adapter.getUrl(WvpPassiveStorageOperator.getUrlForTask(taskId)));
}
fileObject.setUrl(adapter.getUrl(WvpPassiveStorageOperator.getUrlForTask(taskId)));
WvpPassiveStorageOperator.onReceiveResult(taskId, fileObject);
return ApiResponse.success("success");
}