diff --git a/web-api/ruoyi-admin/src/main/java/com/ruoyi/api/ByteAssetApiController.java b/web-api/ruoyi-admin/src/main/java/com/ruoyi/api/ByteAssetApiController.java index 0b9d404..23ba139 100644 --- a/web-api/ruoyi-admin/src/main/java/com/ruoyi/api/ByteAssetApiController.java +++ b/web-api/ruoyi-admin/src/main/java/com/ruoyi/api/ByteAssetApiController.java @@ -3,28 +3,19 @@ package com.ruoyi.api; import com.ruoyi.ai.service.IByteAssetService; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.core.request.asset.DeleteAssetRequest; -import com.ruoyi.common.core.request.asset.GetAssetRequest; -import com.ruoyi.common.core.request.asset.ListAssetsRequest; -import com.ruoyi.common.core.request.asset.UpdateAssetRequest; -import com.ruoyi.common.core.response.asset.CreateAssetResponse; +import com.ruoyi.common.core.request.asset.*; import com.ruoyi.common.core.response.asset.GetAssetResponse; import com.ruoyi.common.core.response.asset.ListAssetsResponse; import com.ruoyi.common.core.response.asset.UpdateAssetResponse; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.MediaType; 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.RequestParam; -import org.springframework.web.bind.annotation.RequestPart; import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.multipart.MultipartFile; /** * 火山 - 素材管理(api.docx Assets API)。CreateAsset 先上传存储桶再调三方接口。 @@ -38,15 +29,11 @@ public class ByteAssetApiController extends BaseController { private final IByteAssetService byteAssetService; - @PostMapping(value = "/createAsset", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) - @ApiOperation("CreateAsset:先将文件上传至对象存储,再调用 CreateAsset") - public AjaxResult createAsset( - @ApiParam(value = "素材url", required = true) @RequestParam("url") String url, - @ApiParam(value = "所属素材组 id(GroupId)", required = true) @RequestParam("groupId") String groupId, - @ApiParam(value = "素材类型:Image / Video / Audio", required = true) @RequestParam("assetType") String assetType, - @ApiParam(value = "素材名称,可选") @RequestParam(value = "name", required = false) String name) { + @PostMapping("/createAsset") + @ApiOperation("CreateAsset:创建素材") + public AjaxResult createAsset(@RequestBody CreateAssetRequest request) { try { - return AjaxResult.success(byteAssetService.createAsset(url, groupId, assetType, name)); + return AjaxResult.success(byteAssetService.createAsset(request)); } catch (Exception e) { log.error("创建素材时发生异常", e); return AjaxResult.error(e.getMessage()); diff --git a/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/IByteAssetService.java b/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/IByteAssetService.java index 6d01074..993ad86 100644 --- a/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/IByteAssetService.java +++ b/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/IByteAssetService.java @@ -1,14 +1,10 @@ package com.ruoyi.ai.service; -import com.ruoyi.common.core.request.asset.DeleteAssetRequest; -import com.ruoyi.common.core.request.asset.GetAssetRequest; -import com.ruoyi.common.core.request.asset.ListAssetsRequest; -import com.ruoyi.common.core.request.asset.UpdateAssetRequest; +import com.ruoyi.common.core.request.asset.*; import com.ruoyi.common.core.response.asset.CreateAssetResponse; import com.ruoyi.common.core.response.asset.GetAssetResponse; import com.ruoyi.common.core.response.asset.ListAssetsResponse; import com.ruoyi.common.core.response.asset.UpdateAssetResponse; -import org.springframework.web.multipart.MultipartFile; import java.io.IOException; @@ -17,7 +13,7 @@ public interface IByteAssetService { /** * 先将文件上传至对象存储得到公网 URL,再调用 CreateAsset。 */ - CreateAssetResponse createAsset(String url, String groupId, String assetType, String name) throws Exception; + CreateAssetResponse createAsset(CreateAssetRequest request) throws Exception; ListAssetsResponse listAssets(ListAssetsRequest request) throws IOException; diff --git a/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/impl/ByteAssetService.java b/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/impl/ByteAssetService.java index 6c4019c..1f39f3a 100644 --- a/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/impl/ByteAssetService.java +++ b/web-api/ruoyi-system/src/main/java/com/ruoyi/ai/service/impl/ByteAssetService.java @@ -32,15 +32,7 @@ public class ByteAssetService extends BaseByteApiService implements IByteAssetSe private static final String ACTION_DELETE_ASSET = "DeleteAsset"; @Override - public CreateAssetResponse createAsset(String url, String groupId, String assetType, String name) throws Exception { - if (StringUtils.isBlank(groupId) || StringUtils.isBlank(groupId) || StringUtils.isBlank(assetType)) { - throw new IllegalArgumentException("url、groupId、assetType 不能为空"); - } - CreateAssetRequest request = new CreateAssetRequest(); - request.setGroupId(groupId); - request.setUrl(url); - request.setName(name); - request.setAssetType(assetType); + public CreateAssetResponse createAsset(CreateAssetRequest request) throws Exception { request.setProjectName(getUserProject()); return callApi(ACTION_CREATE_ASSET, request, CreateAssetResponse.class); }