feat: 火山素材组、素材管理
This commit is contained in:
parent
c04c1e572b
commit
afca767422
|
|
@ -1,5 +1,7 @@
|
|||
package com.ruoyi.common.core.request.asset;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
|
|
@ -20,9 +22,11 @@ public class CreateAssetGroupRequest {
|
|||
@ApiModelProperty(value = "Asset Group(素材资产组合)的描述,上限为 300 字符。")
|
||||
private String description;
|
||||
|
||||
@ApiModelProperty(value = "Asset Group(素材资产组合)的类型。可选值:AIGC:虚拟人像。当前仅支持 AIGC 类型。")
|
||||
private String groupType;
|
||||
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
|
||||
@ApiModelProperty(hidden = true, value = "Asset Group(素材资产组合)的类型。可选值:AIGC:虚拟人像。当前仅支持 AIGC 类型。")
|
||||
private String groupType = "AIGC";
|
||||
|
||||
@ApiModelProperty(value = "资源所属的项目名称,默认值为 default。若资源不在默认项目中,需填写正确的项目名称。")
|
||||
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
|
||||
@ApiModelProperty(hidden = true, value = "资源所属的项目名称,默认值为 default。若资源不在默认项目中,需填写正确的项目名称。")
|
||||
private String projectName;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ import lombok.NoArgsConstructor;
|
|||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@ApiModel(description = "CreateAsset 第三方接口请求体")
|
||||
public class CreateAssetOpenApiRequest {
|
||||
public class CreateAssetRequest {
|
||||
@ApiModelProperty(value = "Asset(素材资产)所属的 Asset Group(素材资产组合)的 Id。", required = true)
|
||||
private String groupId;
|
||||
|
||||
|
|
@ -25,9 +25,10 @@ public class CreateAssetOpenApiRequest {
|
|||
@ApiModelProperty(value = "Asset(素材资产)的名称,上限为 64 个字符。仅用于 ListAssets 模糊搜索,不参与模型推理。")
|
||||
private String name;
|
||||
|
||||
@ApiModelProperty(value = "Asset(素材资产)的类型。可选值:Image、Video、Audio。", required = true)
|
||||
@ApiModelProperty(allowableValues = "Image,Video,Audio", value = "Asset(素材资产)的类型。可选值:Image、Video、Audio。", required = true)
|
||||
private String assetType;
|
||||
|
||||
@ApiModelProperty(value = "资源所属的项目名称,默认 default。需与所属 Asset Group 的 ProjectName 一致。")
|
||||
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
|
||||
@ApiModelProperty(hidden = true, value = "资源所属的项目名称,默认 default。需与所属 Asset Group 的 ProjectName 一致。")
|
||||
private String projectName;
|
||||
}
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
package com.ruoyi.common.core.request.asset;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
|
|
@ -17,6 +18,7 @@ public class DeleteAssetRequest {
|
|||
@ApiModelProperty(value = "需要删除的 Asset(素材资产)的 Id。", required = true)
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "需要删除的 Asset(素材资产)所属的项目名称,默认 default。")
|
||||
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
|
||||
@ApiModelProperty(hidden = true, value = "需要删除的 Asset(素材资产)所属的项目名称,默认 default。")
|
||||
private String projectName;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.ruoyi.common.core.request.asset;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
|
|
@ -17,6 +18,7 @@ public class GetAssetGroupRequest {
|
|||
@ApiModelProperty(value = "Asset Group(素材资产组合)的 Id。", required = true)
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "需要查询的 Asset Group(素材资产组合)所属的项目名称,默认值为 default。若资源不在默认项目中,需填写正确的项目名称。")
|
||||
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
|
||||
@ApiModelProperty(hidden = true, value = "需要查询的 Asset Group(素材资产组合)所属的项目名称,默认值为 default。若资源不在默认项目中,需填写正确的项目名称。")
|
||||
private String projectName;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.ruoyi.common.core.request.asset;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
|
|
@ -17,6 +18,7 @@ public class GetAssetRequest {
|
|||
@ApiModelProperty(value = "Asset(素材资产)的 Id。", required = true)
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "需要查询的 Asset 所属的项目名称,默认 default。")
|
||||
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
|
||||
@ApiModelProperty(hidden = true, value = "需要查询的 Asset 所属的项目名称,默认 default。")
|
||||
private String projectName;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.ruoyi.common.core.request.asset;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.ruoyi.common.core.request.asset.dto.ListAssetsGroupFilter;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
|
|
@ -24,12 +25,13 @@ public class ListAssetsGroupRequest {
|
|||
@ApiModelProperty(value = "每页搜索结果的数量,上限为 100。", required = true)
|
||||
private int pageSize;
|
||||
|
||||
@ApiModelProperty(value = "用于排序的字段名称,默认值 createTime。支持:CreateTime(创建时间)、UpdateTime(更新时间)。")
|
||||
@ApiModelProperty(allowableValues = "CreateTime,UpdateTime", value = "用于排序的字段名称,默认值 createTime。支持:CreateTime(创建时间)、UpdateTime(更新时间)。")
|
||||
private String sortBy;
|
||||
|
||||
@ApiModelProperty(value = "排序顺序,默认值 Desc。可选值:Desc(降序)、Asc(升序)。")
|
||||
@ApiModelProperty(allowableValues = "Desc,Asc", value = "排序顺序,默认值 Desc。可选值:Desc(降序)、Asc(升序)。")
|
||||
private String sortOrder;
|
||||
|
||||
@ApiModelProperty(value = "资源所属的项目名称,默认值为 default。若资源不在默认项目中,需填写正确的项目名称。")
|
||||
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
|
||||
@ApiModelProperty(hidden = true, value = "资源所属的项目名称,默认值为 default。若资源不在默认项目中,需填写正确的项目名称。")
|
||||
private String projectName;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
package com.ruoyi.common.core.request.asset;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.ruoyi.common.core.request.asset.dto.ListAssetsFilter;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
|
|
@ -30,6 +32,7 @@ public class ListAssetsRequest {
|
|||
@ApiModelProperty(value = "排序顺序,默认 Desc。可选:Desc、Asc。")
|
||||
private String sortOrder;
|
||||
|
||||
@ApiModelProperty(value = "资源所属的项目名称,默认 default。")
|
||||
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
|
||||
@ApiModelProperty(hidden = true, value = "资源所属的项目名称,默认 default。")
|
||||
private String projectName;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.ruoyi.common.core.request.asset;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
|
|
@ -23,6 +24,7 @@ public class UpdateAssetGroupRequest {
|
|||
@ApiModelProperty(value = "需要更新的 Asset Group(素材资产组合)的新描述,上限为 300 字符。")
|
||||
private String description;
|
||||
|
||||
@ApiModelProperty(value = "需要更新的 Asset Group(素材资产组合)所属的项目名称,默认值为 default。若资源不在默认项目中,需填写正确的项目名称。")
|
||||
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
|
||||
@ApiModelProperty(hidden = true, value = "需要更新的 Asset Group(素材资产组合)所属的项目名称,默认值为 default。若资源不在默认项目中,需填写正确的项目名称。")
|
||||
private String projectName;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.ruoyi.common.core.request.asset;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
|
|
@ -20,6 +21,7 @@ public class UpdateAssetRequest {
|
|||
@ApiModelProperty(value = "需要更新的 Asset(素材资产)的新名称,上限为 64 个字符。")
|
||||
private String name;
|
||||
|
||||
@ApiModelProperty(value = "需要更新的 Asset(素材资产)所属的项目名称,默认 default。")
|
||||
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
|
||||
@ApiModelProperty(hidden = true, value = "需要更新的 Asset(素材资产)所属的项目名称,默认 default。")
|
||||
private String projectName;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.ruoyi.common.core.request.asset.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
|
|
@ -19,10 +20,11 @@ public class ListAssetsFilter {
|
|||
@ApiModelProperty(value = "Asset(素材资产)所属的 Asset Group(素材资产组合)的 Id 列表。")
|
||||
private List<String> groupIds;
|
||||
|
||||
@ApiModelProperty(value = "Asset Group(素材资产组合)的类型。可选值:AIGC:虚拟人像。", required = true)
|
||||
private String groupType;
|
||||
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
|
||||
@ApiModelProperty(hidden = true, value = "Asset Group(素材资产组合)的类型。可选值:AIGC:虚拟人像。", required = true)
|
||||
private String groupType = "AIGC";
|
||||
|
||||
@ApiModelProperty(value = "任务状态列表:Active(已处理完毕)、Processing(预处理中)、Failed(处理失败)。")
|
||||
@ApiModelProperty(allowableValues = "Active,Processing,Failed", value = "任务状态列表:Active(已处理完毕)、Processing(预处理中)、Failed(处理失败)。")
|
||||
private List<String> statuses;
|
||||
|
||||
@ApiModelProperty(value = "Asset(素材资产)的名称,上限为 64 个字符(模糊搜索)。")
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.ruoyi.common.core.request.asset.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
|
|
@ -22,6 +23,7 @@ public class ListAssetsGroupFilter {
|
|||
@ApiModelProperty(value = "Asset(素材资产)所属的 Asset Group(素材资产组合)的 Id 列表。")
|
||||
private List<String> groupIds;
|
||||
|
||||
@ApiModelProperty(value = "Asset Group(素材资产组合)的类型。可选值:AIGC:虚拟人像。", required = true)
|
||||
private String groupType;
|
||||
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
|
||||
@ApiModelProperty(hidden = true, value = "Asset Group(素材资产组合)的类型。可选值:AIGC:虚拟人像。", required = true)
|
||||
private String groupType = "AIGC";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -85,4 +85,13 @@ public class BaseByteApiService {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据用户找到对应的project
|
||||
*/
|
||||
protected String getUserProject() {
|
||||
// TODO
|
||||
return "default";
|
||||
}
|
||||
}
|
||||
|
|
@ -28,6 +28,9 @@ public class ByteAssetGroupService extends BaseByteApiService implements IByteAs
|
|||
|
||||
@Override
|
||||
public CreateAssetGroupResponse createAssetGroup(CreateAssetGroupRequest request) throws IOException {
|
||||
// 固定值
|
||||
request.setGroupType("AIGC");
|
||||
request.setProjectName(getUserProject());
|
||||
return httpExecute(CREATE_ASSET_GROUP_URL, request, CreateAssetGroupResponse.class);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package com.ruoyi.ai.service.impl;
|
||||
|
||||
import com.ruoyi.ai.service.IByteAssetService;
|
||||
import com.ruoyi.common.core.request.asset.CreateAssetOpenApiRequest;
|
||||
import com.ruoyi.common.core.request.asset.CreateAssetRequest;
|
||||
import com.ruoyi.common.core.request.asset.DeleteAssetRequest;
|
||||
import com.ruoyi.common.core.request.asset.GetAssetRequest;
|
||||
import com.ruoyi.common.core.request.asset.ListAssetsRequest;
|
||||
|
|
@ -10,8 +10,8 @@ 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 com.ruoyi.common.utils.AwsS3Util;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.common.utils.TencentCosUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
|
@ -22,7 +22,7 @@ import java.io.IOException;
|
|||
@RequiredArgsConstructor
|
||||
public class ByteAssetService extends BaseByteApiService implements IByteAssetService {
|
||||
|
||||
private final AwsS3Util awsS3Util;
|
||||
private final TencentCosUtil tencentCosUtil;
|
||||
|
||||
private static final String CREATE_ASSET_URL = "/open/CreateAsset";
|
||||
private static final String LIST_ASSETS_URL = "/open/ListAssets";
|
||||
|
|
@ -38,13 +38,13 @@ public class ByteAssetService extends BaseByteApiService implements IByteAssetSe
|
|||
if (StringUtils.isBlank(groupId) || StringUtils.isBlank(assetType)) {
|
||||
throw new IllegalArgumentException("groupId、assetType 不能为空");
|
||||
}
|
||||
String publicUrl = awsS3Util.uploadMultipartFile(file, true);
|
||||
CreateAssetOpenApiRequest body = new CreateAssetOpenApiRequest();
|
||||
String publicUrl = tencentCosUtil.uploadMultipartFile(file, true);
|
||||
CreateAssetRequest body = new CreateAssetRequest();
|
||||
body.setGroupId(groupId);
|
||||
body.setUrl(publicUrl);
|
||||
body.setName(name);
|
||||
body.setAssetType(assetType);
|
||||
body.setProjectName(projectName);
|
||||
body.setProjectName(getUserProject());
|
||||
return httpExecute(CREATE_ASSET_URL, body, CreateAssetResponse.class);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue