Merge remote-tracking branch 'origin/dev_shb' into develop

# Conflicts:
#	src/main/java/com/ai/da/service/impl/LibraryServiceImpl.java
This commit is contained in:
xupei
2023-09-20 16:04:12 +08:00
12 changed files with 97 additions and 55 deletions

View File

@@ -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

View File

@@ -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;
/**
* 最后使用的工作空间标识
*/

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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;

View File

@@ -10,4 +10,5 @@ import lombok.NoArgsConstructor;
public class ModelVO {
private Long id;
private String url;
private String presignedUrl;
}

View File

@@ -170,6 +170,9 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> 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<DesignMapper, Design> 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<DesignMapper, Design> 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);
}

View File

@@ -48,8 +48,6 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper,Generate> im
@Resource
private MinioUtil minioUtil;
@Value("${minio.bucketName4}")
private String bucketName4;
@Override
public GenerateCaptionVO generateCaption(Long sketchElementId) {

View File

@@ -148,7 +148,7 @@ public class LibraryServiceImpl extends ServiceImpl<LibraryMapper, Library> 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:
@@ -187,11 +187,10 @@ public class LibraryServiceImpl extends ServiceImpl<LibraryMapper, Library> 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

View File

@@ -28,10 +28,6 @@ import java.util.Objects;
@Service
public class TDesignPythonOutfitDetailServiceImpl extends ServiceImpl<TDesignPythonOutfitDetailMapper, TDesignPythonOutfitDetail> implements ITDesignPythonOutfitDetailService {
@Value("${minio.bucketName.clothing}")
private String bucketName2;
@Value("${minio.bucketName3}")
private String bucketName3;
@Resource
private MinioUtil minIoUtil;
@Override

View File

@@ -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<WorkspaceMapper, Workspace
@Resource
private SysFileMapper sysFileMapper;
@Resource
private MinioUtil minioUtil;
@Override
public IPage<WorkspaceVO> selectWorkspacePage(IPage<WorkspaceVO> page, WorkspaceVO workspace) {
return page.setRecords(baseMapper.selectWorkspacePage(page, workspace));
@@ -96,16 +97,25 @@ public class WorkspaceServiceImpl extends ServiceImpl<WorkspaceMapper, Workspace
workspace.setSystemDesignerPercentage(SYSTEM_DESIGNER_PERCENTAGE);
workspace.setPosition(Position.OVERALL.getValue());
workspace.setUserName(userName);
workspace.setMannequinId(null);
workspace.setMannequinUrl("aida-mannequins/model_1693218345.2714431.png");
workspace.setMannequinType(MannequinType.SYSTEM.getValue());
workspace.setIsLastIndex(1);
int insert = workspaceMapper.insert(workspace);
if (insert <= 0) {
throw new BusinessException("save workspace failed");
}
page = workspaceMapper.selectPage(new Page<>(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<Workspace> qwIsLastIndex = new QueryWrapper<>();
qwIsLastIndex.lambda().eq(Workspace::getUserName, userName);
@@ -159,10 +169,16 @@ public class WorkspaceServiceImpl extends ServiceImpl<WorkspaceMapper, Workspace
ModelVO modelVO = new ModelVO();
modelVO.setId(library.getId());
modelVO.setUrl(library.getUrl());
if (library.getUrl().contains("aida-")) {
modelVO.setPresignedUrl(minioUtil.getPresignedUrl(library.getUrl(), 10));
}else {
modelVO.setPresignedUrl(library.getUrl());
}
modelVOList.add(modelVO);
}
ModelsVO vo = new ModelsVO();
vo.setModelList(modelVOList);
vo.setType("Library");
vo.setType(MannequinType.LIBRARY.getValue());
result.add(vo);
}
QueryWrapper<SysFile> sysFileQueryWrapper = new QueryWrapper<>();
@@ -175,10 +191,16 @@ public class WorkspaceServiceImpl extends ServiceImpl<WorkspaceMapper, Workspace
ModelVO modelVO = new ModelVO();
modelVO.setId(sysFile.getId());
modelVO.setUrl(sysFile.getUrl());
if (sysFile.getUrl().contains("aida-")) {
modelVO.setPresignedUrl(minioUtil.getPresignedUrl(sysFile.getUrl(), 10));
}else {
modelVO.setPresignedUrl(sysFile.getUrl());
}
modelVOList.add(modelVO);
}
ModelsVO vo = new ModelsVO();
vo.setModelList(modelVOList);
vo.setType("System");
vo.setType(MannequinType.SYSTEM.getValue());
result.add(vo);
}
return result;