From 49b62d3733564c68b46489032bd1d91038fdf372 Mon Sep 17 00:00:00 2001 From: shahaibo <1023316923@qq.com> Date: Wed, 20 Sep 2023 16:02:57 +0800 Subject: [PATCH] =?UTF-8?q?TASK:workspace=E3=80=81design=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E4=BB=A3=E7=A0=81;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ai/da/common/utils/MinioUtil.java | 10 ++++ .../com/ai/da/mapper/entity/Workspace.java | 14 ++++- .../{Mannequin.java => MannequinType.java} | 9 ++- .../java/com/ai/da/model/enums/Position.java | 4 +- src/main/java/com/ai/da/model/enums/Sex.java | 6 +- src/main/java/com/ai/da/model/vo/ModelVO.java | 1 + .../ai/da/service/impl/DesignServiceImpl.java | 56 ++++++++++--------- .../da/service/impl/GenerateServiceImpl.java | 2 - .../da/service/impl/LibraryServiceImpl.java | 11 ++-- .../TDesignPythonOutfitDetailServiceImpl.java | 4 -- .../da/service/impl/WorkspaceServiceImpl.java | 34 +++++++++-- src/main/resources/mapper/WorkspaceMapper.xml | 4 +- 12 files changed, 97 insertions(+), 58 deletions(-) rename src/main/java/com/ai/da/model/enums/{Mannequin.java => MannequinType.java} (72%) diff --git a/src/main/java/com/ai/da/common/utils/MinioUtil.java b/src/main/java/com/ai/da/common/utils/MinioUtil.java index c96af691..17bc7b28 100644 --- a/src/main/java/com/ai/da/common/utils/MinioUtil.java +++ b/src/main/java/com/ai/da/common/utils/MinioUtil.java @@ -279,6 +279,16 @@ public class MinioUtil { } } + public String getPresignedUrl(String path, int expiry) { + if (!path.contains("/")) { + throw new BusinessException("The path is error!"); + } + int index = path.indexOf("/"); + String bucketName = path.substring(0, index); + String fileName = path.substring(index + 1); + return getPresignedUrl(bucketName, fileName, expiry); + } + /** * 将桶名、文件名从url中分离出来 * @param url 带桶名、文件名的url diff --git a/src/main/java/com/ai/da/mapper/entity/Workspace.java b/src/main/java/com/ai/da/mapper/entity/Workspace.java index 6ba8b8e1..50f68ef3 100644 --- a/src/main/java/com/ai/da/mapper/entity/Workspace.java +++ b/src/main/java/com/ai/da/mapper/entity/Workspace.java @@ -60,8 +60,18 @@ public class Workspace implements Serializable { /** * 人体模型 */ - @ApiModelProperty(value = "人体模型") - private String mannequin; + @ApiModelProperty(value = "人体模型ID") + private Long mannequinId; + /** + * 人体模型 + */ + @ApiModelProperty(value = "人体模型URL") + private String mannequinUrl; + /** + * 人体模型 + */ + @ApiModelProperty(value = "人体模型类型") + private String mannequinType; /** * 最后使用的工作空间标识 */ diff --git a/src/main/java/com/ai/da/model/enums/Mannequin.java b/src/main/java/com/ai/da/model/enums/MannequinType.java similarity index 72% rename from src/main/java/com/ai/da/model/enums/Mannequin.java rename to src/main/java/com/ai/da/model/enums/MannequinType.java index 31c91384..a0207657 100644 --- a/src/main/java/com/ai/da/model/enums/Mannequin.java +++ b/src/main/java/com/ai/da/model/enums/MannequinType.java @@ -7,16 +7,15 @@ import com.fasterxml.jackson.annotation.JsonValue; * @Date: 2023/08/01 17:21 * @Description: 服装性别分类 */ -public enum Mannequin implements IEnumDisplay { +public enum MannequinType implements IEnumDisplay { - A("A"), - B("B"), - C("C") + SYSTEM("System"), + LIBRARY("Library") ; private String value; - Mannequin(String value) { + MannequinType(String value) { this.value = value; } diff --git a/src/main/java/com/ai/da/model/enums/Position.java b/src/main/java/com/ai/da/model/enums/Position.java index c213912f..051121ab 100644 --- a/src/main/java/com/ai/da/model/enums/Position.java +++ b/src/main/java/com/ai/da/model/enums/Position.java @@ -9,8 +9,8 @@ import com.fasterxml.jackson.annotation.JsonValue; */ public enum Position implements IEnumDisplay { - OVERALL("overall"), - SINGLE("single") + OVERALL("Overall"), + SINGLE("Single") ; private String value; diff --git a/src/main/java/com/ai/da/model/enums/Sex.java b/src/main/java/com/ai/da/model/enums/Sex.java index 7de6cf41..c962c604 100644 --- a/src/main/java/com/ai/da/model/enums/Sex.java +++ b/src/main/java/com/ai/da/model/enums/Sex.java @@ -9,9 +9,9 @@ import com.fasterxml.jackson.annotation.JsonValue; */ public enum Sex implements IEnumDisplay { - MALE("male"), - FEMALE("female"), - CHILD("child") + MALE("Male"), + FEMALE("Female"), + CHILD("Child") ; private String value; diff --git a/src/main/java/com/ai/da/model/vo/ModelVO.java b/src/main/java/com/ai/da/model/vo/ModelVO.java index 40b67932..20512b37 100644 --- a/src/main/java/com/ai/da/model/vo/ModelVO.java +++ b/src/main/java/com/ai/da/model/vo/ModelVO.java @@ -10,4 +10,5 @@ import lombok.NoArgsConstructor; public class ModelVO { private Long id; private String url; + private String presignedUrl; } diff --git a/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java b/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java index 47be3aa2..cd711a84 100644 --- a/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java @@ -170,6 +170,9 @@ public class DesignServiceImpl extends ServiceImpl impleme .filter(f -> f.getLevel1Type().equals(CollectionLevel1TypeEnum.MOOD_BOARD.getRealName())) .collect(Collectors.toList()); if (!CollectionUtils.isEmpty(newMoodboard)) { + if (CollectionUtils.isEmpty(elementVO.getMoodBoardElements())) { + elementVO.setMoodBoardElements(new ArrayList<>()); + } elementVO.getMoodBoardElements().addAll(newMoodboard); } } @@ -444,30 +447,32 @@ public class DesignServiceImpl extends ServiceImpl impleme TDesignPythonOutfitDetail designPythonOutfitDetail = new TDesignPythonOutfitDetail(); designPythonOutfitDetail.setDesignId(designId); designPythonOutfitDetail.setDesignPythonOutfitId(designPythonOutfit.getId()); - JSONArray position = jsonObject.getJSONArray("position"); - if (position != null && !CollectionUtils.isEmpty(position)) { - StringBuilder builder = new StringBuilder(); - for (int i2 = 0; i2 < position.size(); i2++) { - if (i2 != position.size() - 1) { - builder.append(position.getInteger(i2)).append(","); - } else { - builder.append(position.getInteger(i2)); - } - } - designPythonOutfitDetail.setPosition(builder.toString()); - } - JSONArray imageSize = jsonObject.getJSONArray("image_size"); - if (imageSize != null && !CollectionUtils.isEmpty(position)) { - StringBuilder builder = new StringBuilder(); - for (int i2 = 0; i2 < imageSize.size(); i2++) { - if (i2 != imageSize.size() - 1) { - builder.append(imageSize.getInteger(i2)).append(","); - } else { - builder.append(imageSize.getInteger(i2)); - } - } - designPythonOutfitDetail.setImageSize(builder.toString()); - } +// JSONArray position = jsonObject.getJSONArray("position"); +// if (position != null && !CollectionUtils.isEmpty(position)) { +// StringBuilder builder = new StringBuilder(); +// for (int i2 = 0; i2 < position.size(); i2++) { +// if (i2 != position.size() - 1) { +// builder.append(position.getInteger(i2)).append(","); +// } else { +// builder.append(position.getInteger(i2)); +// } +// } +// designPythonOutfitDetail.setPosition(builder.toString()); +// } + designPythonOutfitDetail.setPosition(jsonObject.getString("position")); +// JSONArray imageSize = jsonObject.getJSONArray("image_size"); +// if (imageSize != null && !CollectionUtils.isEmpty(position)) { +// StringBuilder builder = new StringBuilder(); +// for (int i2 = 0; i2 < imageSize.size(); i2++) { +// if (i2 != imageSize.size() - 1) { +// builder.append(imageSize.getInteger(i2)).append(","); +// } else { +// builder.append(imageSize.getInteger(i2)); +// } +// } +// designPythonOutfitDetail.setImageSize(builder.toString()); +// } + designPythonOutfitDetail.setImageSize(jsonObject.getString("image_size")); designPythonOutfitDetail.setImageUrl(jsonObject.getString("image_url")); designPythonOutfitDetail.setImageCategory(jsonObject.getString("image_category")); designPythonOutfitDetail.setMaskUrl(jsonObject.getString("mask_url")); @@ -602,7 +607,7 @@ public class DesignServiceImpl extends ServiceImpl impleme designItemService.deleteByCollectionId(reDesignDTO.getCollectionId()); designItemDetailService.deleteByDesignId(oldDesign.getId()); //redesign - return designOrRedesignOperate(CopyUtil.copyObject( + return designOrRedesignOperateNew(CopyUtil.copyObject( reDesignDTO, DesignCollectionDTO.class), userInfo, reDesignDTO.getCollectionId(), elementVO); } @@ -826,7 +831,6 @@ public class DesignServiceImpl extends ServiceImpl impleme d.setId(o.getBusinessId()); d.setPrintObject(new DesignPythonItemPrint()); })); - return editDesignItemLayer(flag, designPythonOutfit, designItem.getDesignUrl(), editResponseColor(designItemDetails, response)); return editDesignItemLayer(flag,designPythonOutfit, minIoUtil.splitThenGetPreviewUrl(designItem.getDesignUrl(),480), editResponseColor(designItemDetails,response)); diff --git a/src/main/java/com/ai/da/service/impl/GenerateServiceImpl.java b/src/main/java/com/ai/da/service/impl/GenerateServiceImpl.java index 27f2dfb2..798bf53d 100644 --- a/src/main/java/com/ai/da/service/impl/GenerateServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/GenerateServiceImpl.java @@ -48,8 +48,6 @@ public class GenerateServiceImpl extends ServiceImpl im @Resource private MinioUtil minioUtil; - @Value("${minio.bucketName4}") - private String bucketName4; @Override public GenerateCaptionVO generateCaption(Long sketchElementId) { diff --git a/src/main/java/com/ai/da/service/impl/LibraryServiceImpl.java b/src/main/java/com/ai/da/service/impl/LibraryServiceImpl.java index 11b2f707..a2642d36 100644 --- a/src/main/java/com/ai/da/service/impl/LibraryServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/LibraryServiceImpl.java @@ -8,8 +8,6 @@ import com.ai.da.common.response.PageBaseResponse; import com.ai.da.common.utils.CopyUtil; import com.ai.da.common.utils.DateUtil; import com.ai.da.common.utils.MinioUtil; -import com.ai.da.common.utils.FileUtil; -import com.ai.da.common.utils.MinioUtil; import com.ai.da.mapper.LibraryMapper; import com.ai.da.mapper.entity.*; import com.ai.da.model.dto.*; @@ -149,7 +147,7 @@ public class LibraryServiceImpl extends ServiceImpl impl } Assert.isTrue(!( level1TypeEnum.equals(LibraryLevel1TypeEnum.SKETCH_BOARD) && StringUtils.isEmpty(libraryUploadDTO.getLevel2Type()) ),"level2Type cannot be empty!"); - String path = calculateFileUrl(level1TypeEnum, userInfo.getId()); + String path = calculateFileUrl(level1TypeEnum, libraryUploadDTO.getLevel2Type(), userInfo.getId()); String bucketName = null; switch (level1TypeEnum) { case MODELS: @@ -188,11 +186,10 @@ public class LibraryServiceImpl extends ServiceImpl impl return library; } - private String calculateFileUrl(LibraryLevel1TypeEnum level1TypeEnum, Long userId) { + private String calculateFileUrl(LibraryLevel1TypeEnum level1TypeEnum, String level2Type, Long userId) { // String rootPath = fileProperties.getSys().getPath(); - String day = DateUtil.dateToStr(new Date(), DateUtil.YYYYMM); - return day + File.separator + "userFile" + File.separator + "library" - + File.separator + level1TypeEnum.getRealName() + File.separator + userId; +// String day = DateUtil.dateToStr(new Date(), DateUtil.YYYYMM); + return StringUtils.isEmpty(level2Type) ? userId + File.separator + level1TypeEnum.getRealName() : userId + File.separator + level1TypeEnum.getRealName() + File.separator + level2Type; } @Override diff --git a/src/main/java/com/ai/da/service/impl/TDesignPythonOutfitDetailServiceImpl.java b/src/main/java/com/ai/da/service/impl/TDesignPythonOutfitDetailServiceImpl.java index aa91ed55..26a406d5 100644 --- a/src/main/java/com/ai/da/service/impl/TDesignPythonOutfitDetailServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/TDesignPythonOutfitDetailServiceImpl.java @@ -28,10 +28,6 @@ import java.util.Objects; @Service public class TDesignPythonOutfitDetailServiceImpl extends ServiceImpl implements ITDesignPythonOutfitDetailService { - @Value("${minio.bucketName.clothing}") - private String bucketName2; - @Value("${minio.bucketName3}") - private String bucketName3; @Resource private MinioUtil minIoUtil; @Override diff --git a/src/main/java/com/ai/da/service/impl/WorkspaceServiceImpl.java b/src/main/java/com/ai/da/service/impl/WorkspaceServiceImpl.java index beb75ae2..a5683671 100644 --- a/src/main/java/com/ai/da/service/impl/WorkspaceServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/WorkspaceServiceImpl.java @@ -6,6 +6,7 @@ import com.ai.da.common.enums.LibraryLevel1TypeEnum; import com.ai.da.common.enums.SysFileLevel1TypeEnum; import com.ai.da.common.enums.SysFileLevel2TypeEnum; import com.ai.da.common.response.PageBaseResponse; +import com.ai.da.common.utils.MinioUtil; import com.ai.da.mapper.LibraryMapper; import com.ai.da.mapper.SysFileMapper; import com.ai.da.mapper.WorkspaceMapper; @@ -13,10 +14,7 @@ import com.ai.da.mapper.entity.Library; import com.ai.da.mapper.entity.SysFile; import com.ai.da.mapper.entity.Workspace; import com.ai.da.model.dto.WorkspaceDTO; -import com.ai.da.model.enums.BizJson; -import com.ai.da.model.enums.IEnumDisplay; -import com.ai.da.model.enums.Position; -import com.ai.da.model.enums.Sex; +import com.ai.da.model.enums.*; import com.ai.da.model.vo.AuthPrincipalVo; import com.ai.da.model.vo.ModelVO; import com.ai.da.model.vo.ModelsVO; @@ -53,6 +51,9 @@ public class WorkspaceServiceImpl extends ServiceImpl selectWorkspacePage(IPage page, WorkspaceVO workspace) { return page.setRecords(baseMapper.selectWorkspacePage(page, workspace)); @@ -96,16 +97,25 @@ public class WorkspaceServiceImpl extends ServiceImpl(query.getPage(), query.getSize()), qw); + page.getRecords().forEach(o -> { + o.setMannequinUrl(minioUtil.getPresignedUrl(o.getMannequinUrl(), 10)); + }); vo.setPage(PageBaseResponse.success(page)); vo.setId(workspace.getId()); return vo; } + page.getRecords().forEach(o -> { + o.setMannequinUrl(minioUtil.getPresignedUrl(o.getMannequinUrl(), 10)); + }); vo.setPage(PageBaseResponse.success(page)); QueryWrapper qwIsLastIndex = new QueryWrapper<>(); qwIsLastIndex.lambda().eq(Workspace::getUserName, userName); @@ -159,10 +169,16 @@ public class WorkspaceServiceImpl extends ServiceImpl sysFileQueryWrapper = new QueryWrapper<>(); @@ -175,10 +191,16 @@ public class WorkspaceServiceImpl extends ServiceImpl - + + +