diff --git a/src/main/java/com/ai/da/common/enums/CreditsEventsEnum.java b/src/main/java/com/ai/da/common/enums/CreditsEventsEnum.java index 99f24b0f..64ada86f 100644 --- a/src/main/java/com/ai/da/common/enums/CreditsEventsEnum.java +++ b/src/main/java/com/ai/da/common/enums/CreditsEventsEnum.java @@ -17,7 +17,7 @@ public enum CreditsEventsEnum { INIT_YEARLY("init_yearly", "6000"), INIT_MONTHLY("init_monthly", "5000"), INIT_TRIAL("init_trial", "100"), - INIT_WEEKLY("init_weekly","10000"), + INIT_WEEKLY("init_weekly","6000"), // SUPER_RESOLUTION("Super Resolution","30"), SUPER_RESOLUTION("Super Resolution","10"), diff --git a/src/main/java/com/ai/da/common/task/AccountTask.java b/src/main/java/com/ai/da/common/task/AccountTask.java index fa866e9d..ca7edd6d 100644 --- a/src/main/java/com/ai/da/common/task/AccountTask.java +++ b/src/main/java/com/ai/da/common/task/AccountTask.java @@ -1,20 +1,24 @@ package com.ai.da.common.task; import com.ai.da.service.AccountService; +import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import javax.annotation.Resource; @Component +@Slf4j public class AccountTask { @Resource private AccountService accountService; /** 每周日晚上刷新 年付用户、月付用户的积分 */ -// @Scheduled(cron = "59 59 23 ? * SUN") + @Scheduled(cron = "59 59 23 ? * SUN") +// @Scheduled(cron = "59 59 23 * * ?") public void refreshCreditsMonthly(){ + log.info("每周日晚11:59:59刷新付费用户积分为 6000"); accountService.refreshCreditsWeekly(); } 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 6b6dc525..bf5bea69 100644 --- a/src/main/java/com/ai/da/common/utils/MinioUtil.java +++ b/src/main/java/com/ai/da/common/utils/MinioUtil.java @@ -373,7 +373,7 @@ public class MinioUtil { * @param expiry 过期时间(单位:分) * @return 文件的临时URL,如果出现异常则返回null */ - public String getPresignedUrl(String bucketName, String fileName, int expiry) { + public String getPreSignedUrl(String bucketName, String fileName, int expiry) { try { return minioClient.getPresignedObjectUrl( GetPresignedObjectUrlArgs.builder() @@ -389,7 +389,7 @@ public class MinioUtil { } } - public String getPresignedUrl(String path, int expiry) { + public String getPreSignedUrl(String path, int expiry) { if (LocalCacheUtils.getPresignedUrlCache(path) != null) { return LocalCacheUtils.getPresignedUrlCache(path); } else { @@ -399,13 +399,13 @@ public class MinioUtil { int index = path.indexOf("/"); String bucketName = path.substring(0, index); String fileName = path.substring(index + 1); - String presignedUrl = getPresignedUrl(bucketName, fileName, expiry); + String presignedUrl = getPreSignedUrl(bucketName, fileName, expiry); LocalCacheUtils.setPresignedUrlCache(path, presignedUrl); return presignedUrl; } } - public String getPresignedUrl(String path, int expiry, boolean resetCache) { + public String getPreSignedUrl(String path, int expiry, boolean resetCache) { if (resetCache || LocalCacheUtils.getPresignedUrlCache(path) == null) { if (!path.contains("/")) { throw new BusinessException("The path is error!"); @@ -413,7 +413,7 @@ public class MinioUtil { int index = path.indexOf("/"); String bucketName = path.substring(0, index); String fileName = path.substring(index + 1); - String presignedUrl = getPresignedUrl(bucketName, fileName, expiry); + String presignedUrl = getPreSignedUrl(bucketName, fileName, expiry); LocalCacheUtils.setPresignedUrlCache(path, presignedUrl); return presignedUrl; } else { @@ -438,7 +438,7 @@ public class MinioUtil { fileName.append("/"); } } - return getPresignedUrl(bucketName, String.valueOf(fileName), expiry); + return getPreSignedUrl(bucketName, String.valueOf(fileName), expiry); } public boolean doesObjectExist(String bucketName, String objectName) { diff --git a/src/main/java/com/ai/da/common/utils/S3Util.java b/src/main/java/com/ai/da/common/utils/S3Util.java index 1d4735cc..705aca7b 100644 --- a/src/main/java/com/ai/da/common/utils/S3Util.java +++ b/src/main/java/com/ai/da/common/utils/S3Util.java @@ -2,6 +2,7 @@ package com.ai.da.common.utils; import com.ai.da.common.config.exception.BusinessException; import com.ai.da.common.constant.CommonConstant; +import io.netty.util.internal.StringUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @@ -57,8 +58,8 @@ public class S3Util { private static S3Presigner s3Presigner; /** - * @description: 获取S3客户端对象 * @return software.amazon.awssdk.services.s3.S3Client + * @description: 获取S3客户端对象 */ public synchronized S3Client getS3Client() { if (null == s3Client) { @@ -74,8 +75,8 @@ public class S3Util { } /** - * @description: 获取预签名对象 * @return software.amazon.awssdk.services.s3.presigner.S3Presigner + * @description: 获取预签名对象 */ public synchronized S3Presigner getS3PreSigner() { if (null == s3Presigner) { @@ -92,6 +93,29 @@ public class S3Util { return s3Presigner; } + public String uploadImageFromBase64(String bucketName, String base64Image, String imageType) { + S3Client s3Client = getS3Client(); + byte[] imageBytes = Base64.getDecoder().decode(base64Image); + String fileName = UUID.randomUUID() + "." + imageType; // or any other image format + + try (InputStream in = new ByteArrayInputStream(imageBytes)) { + PutObjectRequest putObjectRequest = PutObjectRequest.builder() + .bucket(bucketName) + .contentType("image/png") + .contentLength((long) in.available()) + .key(fileName) + .acl(ObjectCannedACL.PUBLIC_READ) + .build(); + s3Client.putObject(putObjectRequest, RequestBody.fromInputStream(in, in.available())); + + log.info("uploadImageFromBase64 上传的位置:桶 - {},路径 - {}", bucketName, fileName); + return bucketName + "/" + fileName; + } catch (Exception e) { + e.printStackTrace(); + return null; // or throw an exception + } + } + public String upload(String bucketName, String path, MultipartFile file) { S3Client s3Client = getS3Client(); try { @@ -108,16 +132,111 @@ public class S3Util { .contentType(file.getContentType()) .contentLength(file.getSize()) .key(fileName) -// .acl(ObjectCannedACL.PUBLIC_READ) + .acl(ObjectCannedACL.PUBLIC_READ) .build(); s3Client.putObject(putObjectRequest, RequestBody.fromInputStream(file.getInputStream(), file.getSize())); - log.info("上传的位置:桶 - {},路径 - {}", bucketName, fileName); - return fileName; + log.info("upload 上传的位置:桶 - {},路径 - {}", bucketName, fileName); + return bucketName + "/" + fileName; } catch (Exception e) { log.error("上传文件到S3失败 异常:{}", e.getMessage()); + return null; + } + } + + // todo + public String upload(String bucketName, String path, MultipartFile file, String copy) { + S3Client s3Client = getS3Client(); + InputStream in = null; + try { + in = file.getInputStream(); + + PutObjectRequest putObjectRequest = PutObjectRequest.builder() + .bucket(bucketName) + .contentType(file.getContentType()) + .contentLength(file.getSize()) + .key(path) + .acl(ObjectCannedACL.PUBLIC_READ) + .build(); + s3Client.putObject(putObjectRequest, RequestBody.fromInputStream(file.getInputStream(), file.getSize())); + log.info("upload-copy 上传的位置:桶 - {},路径 - {}", bucketName, path); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (in != null) { + try { + in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + return bucketName + "/" + path; + } + + public InputStream download(String path) { + if (!path.contains("/")) { + throw new BusinessException("the.path.is.error"); + } + int index = path.indexOf("/"); + String bucketName = path.substring(0, index); + String objectName = path.substring(index + 1); + return download(bucketName, objectName); + } + + public InputStream download(String bucketName, String objectName) { + try { + S3Client s3Client = getS3Client(); + GetObjectRequest objectRequest = GetObjectRequest + .builder() + .key(objectName) + .bucket(bucketName) + .build(); + +// ResponseBytes objectBytes = s3.getObjectAsBytes(objectRequest); + ResponseBytes objectAsBytes = s3Client.getObjectAsBytes(objectRequest); + byte[] data = objectAsBytes.asByteArray(); + log.info("download 下载图片位置:桶 - {},路径 - {}", bucketName, objectName); + return new ByteArrayInputStream(data); + + /*// Write the data to a local file. + File myFile = new File("files/images.png"); + OutputStream os = new FileOutputStream(myFile); + os.write(data); + System.out.println("Successfully obtained bytes from an S3 object"); + os.close(); + return null;*/ +// return minioClient.getObject(GetObjectArgs.builder().bucket(bucketName).object(objectName).build()); + } catch (Exception e) { + log.error(""); + throw new BusinessException(""); + } + } + + public void deleteObject(String path) { + if (!path.contains("/")) { + throw new BusinessException("The path is error!"); + } + int index = path.indexOf("/"); + String bucketName = path.substring(0, index); + String objectName = path.substring(index + 1); + deleteObject(bucketName, objectName); + } + + public void deleteObject(String bucketName, String objectName) { + try { + S3Client s3Client = getS3Client(); + DeleteObjectRequest deleteObjectRequest = DeleteObjectRequest + .builder() + .key(objectName) + .bucket(bucketName) + .build(); + s3Client.deleteObject(deleteObjectRequest); + log.info("Object " + objectName + " successfully removed from bucket " + bucketName); + } catch (Exception e) { + e.printStackTrace(); + log.info("Error while removing object " + objectName + " from bucket " + bucketName + ": " + e.getMessage()); } - return null; } public String getPreSignedUrl(String path, int expiry) { @@ -137,20 +256,23 @@ public class S3Util { } /** - * @description: 生成预签名URL - * @param keyName key名称: test/2022/06/123.pdf + * @param keyName key名称: test/2022/06/123.pdf * @param signatureDurationTime 有效期 单位:秒 * @return java.lang.String + * @description: 生成预签名URL */ public String getPreSignatureUrl(String bucket, String keyName, Integer signatureDurationTime) { String preSignatureUrl = ""; try { S3Presigner s3PreSigner = getS3PreSigner(); - GetObjectRequest getObjectRequest = - GetObjectRequest.builder() - .bucket(bucket) - .key(keyName) - .build(); + S3Client s3Client = getS3Client(); + setObjectAcl(s3Client, bucket, keyName, ObjectCannedACL.PUBLIC_READ); + + GetObjectRequest getObjectRequest = GetObjectRequest.builder() + .bucket(bucket) + .key(keyName) + .build(); + //设置预签名URL可访问时间 signatureDurationTime = Optional.ofNullable(signatureDurationTime) .map(item -> { @@ -169,53 +291,70 @@ public class S3Util { s3PreSigner.presignGetObject(getObjectPresignRequest); preSignatureUrl = String.valueOf(presignedGetObjectRequest.url()); - } catch (Exception e) { log.error("生成预签名URL失败,异常:{}", e.getMessage()); } return preSignatureUrl; } - public InputStream download(String path) { - if (!path.contains("/")) { - throw new BusinessException("the.path.is.error"); - } - int index = path.indexOf("/"); - String bucketName = path.substring(0, index); - String objectName = path.substring(index + 1); - return download(bucketName, objectName); + public static void setObjectAcl(S3Client s3, String bucketName, String keyName, ObjectCannedACL acl) { + PutObjectAclRequest aclRequest = PutObjectAclRequest.builder() + .bucket(bucketName) + .key(keyName) + .acl(acl) + .build(); + s3.putObjectAcl(aclRequest); } - - public InputStream download(String bucketName, String objectName){ + public boolean doesObjectExist(String bucketName, String objectName) { try { S3Client s3Client = getS3Client(); - GetObjectRequest objectRequest = GetObjectRequest - .builder() - .key(objectName) + HeadObjectRequest headObjectRequest = HeadObjectRequest.builder() .bucket(bucketName) + .key(objectName) .build(); - -// ResponseBytes objectBytes = s3.getObjectAsBytes(objectRequest); - ResponseBytes objectAsBytes = s3Client.getObjectAsBytes(objectRequest); - byte[] data = objectAsBytes.asByteArray(); - return new ByteArrayInputStream(data); - - /*// Write the data to a local file. - File myFile = new File("files/images.png"); - OutputStream os = new FileOutputStream(myFile); - os.write(data); - System.out.println("Successfully obtained bytes from an S3 object"); - os.close(); - return null;*/ - -// return minioClient.getObject(GetObjectArgs.builder().bucket(bucketName).object(objectName).build()); - } catch (Exception e){ - log.error(""); - throw new BusinessException(""); + HeadObjectResponse headObjectResponse = s3Client.headObject(headObjectRequest); + return true; + } catch (Exception e) { + log.info("指定文件 {}/{} 不存在", bucketName, objectName); + // 如果发生异常,说明文件不存在或者出现了其他错误 + return false; } } - public List listAllBucket(){ + public String base64UploadToPath(String base64, String bucketName, String path) { + S3Client s3Client = getS3Client(); + String[] parts = base64.split(","); + String imageType = parts[0].split("/")[1].split(";")[0]; + String base64Data = parts[1]; + + byte[] imageBytes = Base64.getDecoder().decode(base64Data); + String fileName; + if (!StringUtil.isNullOrEmpty(path)) { + fileName = path + "." + imageType; // or any other image format + } else { + fileName = UUID.randomUUID() + "." + imageType; + } + + try (InputStream in = new ByteArrayInputStream(imageBytes)) { + PutObjectRequest putObjectRequest = PutObjectRequest.builder() + .bucket(bucketName) + .contentType("image/" + imageType) + .contentLength((long) in.available()) + .key(fileName) + .acl(ObjectCannedACL.PUBLIC_READ) + .build(); + s3Client.putObject(putObjectRequest, RequestBody.fromInputStream(in, in.available())); + + log.info("base64UploadToPath 上传的位置:桶 - {},路径 - {}", bucketName, fileName); + return bucketName + "/" + fileName; + } catch (Exception e) { + e.printStackTrace(); + return null; // or throw an exception + } + } + + + public List listAllBucket() { S3Client s3Client = getS3Client(); ListBucketsResponse listBucketsResponse = s3Client.listBuckets(); List buckets = listBucketsResponse.buckets(); diff --git a/src/main/java/com/ai/da/controller/LibraryController.java b/src/main/java/com/ai/da/controller/LibraryController.java index 9c3a6ebb..3330da02 100644 --- a/src/main/java/com/ai/da/controller/LibraryController.java +++ b/src/main/java/com/ai/da/controller/LibraryController.java @@ -163,7 +163,7 @@ public class LibraryController { Response response = new Response(); log.info("Models打点预览入参####{}", JSON.toJSONString(modelsDotDTO)); String url = libraryModelPointService.modelsDot(modelsDotDTO); - response.setData(minioUtil.getPresignedUrl(url, 24 * 60)); + response.setData(minioUtil.getPreSignedUrl(url, 24 * 60)); return response; } diff --git a/src/main/java/com/ai/da/controller/SavedCollectionController.java b/src/main/java/com/ai/da/controller/SavedCollectionController.java index b3f51429..f5147a7c 100644 --- a/src/main/java/com/ai/da/controller/SavedCollectionController.java +++ b/src/main/java/com/ai/da/controller/SavedCollectionController.java @@ -120,7 +120,7 @@ public class SavedCollectionController { List details = groupDetailMap.get(group.getId()); for (UserLikeVO detail : details) { TDesignPythonOutfit tDesignPythonOutfit = designPythonOutfitMapper.selectById(detail.getDesignOutfitId()); - detail.setUrl(minioUtil.getPresignedUrl(tDesignPythonOutfit.getDesignUrl(), 24 * 60)); + detail.setUrl(minioUtil.getPreSignedUrl(tDesignPythonOutfit.getDesignUrl(), 24 * 60)); } userLikeGroupVO.setGroupDetails(details); userLikeGroupVO.setSketchCount(CollectionUtils.isEmpty(details) ? 0 : details.size()); diff --git a/src/main/java/com/ai/da/mapper/primary/entity/BaseEntity.java b/src/main/java/com/ai/da/mapper/primary/entity/BaseEntity.java index f78fb748..cc960200 100644 --- a/src/main/java/com/ai/da/mapper/primary/entity/BaseEntity.java +++ b/src/main/java/com/ai/da/mapper/primary/entity/BaseEntity.java @@ -2,6 +2,7 @@ package com.ai.da.mapper.primary.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; @@ -24,11 +25,13 @@ public class BaseEntity implements Serializable { /** * 创建时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") private LocalDateTime createTime; /** * 更新时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") private LocalDateTime updateTime; /** diff --git a/src/main/java/com/ai/da/mapper/primary/entity/DesignItemDetail.java b/src/main/java/com/ai/da/mapper/primary/entity/DesignItemDetail.java index 969c306b..a2daa110 100644 --- a/src/main/java/com/ai/da/mapper/primary/entity/DesignItemDetail.java +++ b/src/main/java/com/ai/da/mapper/primary/entity/DesignItemDetail.java @@ -90,6 +90,10 @@ public class DesignItemDetail implements Serializable { * item的优先级 */ private Integer priority; + /** + * 未分割的只上了颜色或只有overall印花的图层 + */ + private String undividedLayer; /** * 创建时间 diff --git a/src/main/java/com/ai/da/model/dto/DesignSinglePrintDTO.java b/src/main/java/com/ai/da/model/dto/DesignSinglePrintDTO.java index 163e468b..db815161 100644 --- a/src/main/java/com/ai/da/model/dto/DesignSinglePrintDTO.java +++ b/src/main/java/com/ai/da/model/dto/DesignSinglePrintDTO.java @@ -15,17 +15,17 @@ public class DesignSinglePrintDTO implements Serializable { // @ApiModelProperty("印花url") // private String path; - @ApiModelProperty("single -> true,overall -> false") - private Boolean ifSingle; + /*@ApiModelProperty("single -> true,overall -> false") + private Boolean ifSingle;*/ @ApiModelProperty("印花详细") private List prints; public DesignSinglePrintDTO() { } - +/* public DesignSinglePrintDTO(Boolean ifSingle, List prints) { this.ifSingle = ifSingle; this.prints = prints; - } + }*/ } \ No newline at end of file diff --git a/src/main/java/com/ai/da/model/vo/DesignItemClothesDetailVO.java b/src/main/java/com/ai/da/model/vo/DesignItemClothesDetailVO.java index 52e0008d..10969e4e 100644 --- a/src/main/java/com/ai/da/model/vo/DesignItemClothesDetailVO.java +++ b/src/main/java/com/ai/da/model/vo/DesignItemClothesDetailVO.java @@ -58,6 +58,9 @@ public class DesignItemClothesDetailVO { @ApiModelProperty("渐变色信息") private Gradient gradient; + @ApiModelProperty("未分割的图层") + private String undividedLayer; + public DesignItemClothesDetailVO() { } diff --git a/src/main/java/com/ai/da/model/vo/DesignSinglePrint.java b/src/main/java/com/ai/da/model/vo/DesignSinglePrint.java index 0a79320a..88bb9475 100644 --- a/src/main/java/com/ai/da/model/vo/DesignSinglePrint.java +++ b/src/main/java/com/ai/da/model/vo/DesignSinglePrint.java @@ -13,6 +13,9 @@ import java.util.List; @ApiModel("design single 印花详情") public class DesignSinglePrint implements Serializable { + @ApiModelProperty("single -> true,overall -> false") + private Boolean ifSingle; + @ApiModelProperty("印花的类型 Slogan || Logo || Pattern") private String level2Type; @@ -48,7 +51,7 @@ public class DesignSinglePrint implements Serializable { this.scale = scale; } - public DesignSinglePrint(String level2Type, String path, String minIOPath, List location, Double scale, Double angle, Integer priority) { + public DesignSinglePrint(String level2Type, String path, String minIOPath, List location, Double scale, Double angle, Integer priority, Boolean ifSingle) { this.level2Type = level2Type; this.path = path; this.minIOPath = minIOPath; @@ -56,5 +59,6 @@ public class DesignSinglePrint implements Serializable { this.scale = scale; this.angle = angle; this.priority = priority; + this.ifSingle = ifSingle; } } diff --git a/src/main/java/com/ai/da/python/PythonService.java b/src/main/java/com/ai/da/python/PythonService.java index 173b4fdf..266f3dee 100644 --- a/src/main/java/com/ai/da/python/PythonService.java +++ b/src/main/java/com/ai/da/python/PythonService.java @@ -1928,14 +1928,14 @@ public class PythonService { if (!elementVO.getDesignPythonItemPrint().getPath().equals("none") && elementVO.getDesignPrintPictureTypeLayoutList().contains(type)) { DesignPythonItemPrint designPythonItemPrint = CopyUtil.copyObject(elementVO.getDesignPythonItemPrint(), DesignPythonItemPrint.class); - designPythonItemPrint.setIfSingle(false); +// designPythonItemPrint.setIfSingle(false); designPythonItemPrint.setPrint_path_list(Collections.singletonList(designPythonItemPrint.getPath())); - designPythonItemBlouse.setPrint(designPythonItemPrint); + designPythonItemBlouse.setPrint(new PrintToPython(designPythonItemPrint)); } else { DesignPythonItemPrint designPythonItemPrint = new DesignPythonItemPrint(); - designPythonItemPrint.setIfSingle(false); +// designPythonItemPrint.setIfSingle(false); designPythonItemPrint.setPrint_path_list(new ArrayList<>()); - designPythonItemBlouse.setPrint(designPythonItemPrint); + designPythonItemBlouse.setPrint(new PrintToPython(designPythonItemPrint)); } return designPythonItemBlouse; } @@ -1957,14 +1957,14 @@ public class PythonService { if (!elementVO.getDesignPythonItemPrint().getPath().equals("none") && elementVO.getDesignPrintPictureTypeLayoutList().contains(collectionElement.getLevel2Type())) { DesignPythonItemPrint designPythonItemPrint = CopyUtil.copyObject(elementVO.getDesignPythonItemPrint(), DesignPythonItemPrint.class); - designPythonItemPrint.setIfSingle(false); +// designPythonItemPrint.setIfSingle(false); designPythonItemPrint.setPrint_path_list(Collections.singletonList(designPythonItemPrint.getPath())); - designPythonItemBlouse.setPrint(designPythonItemPrint); + designPythonItemBlouse.setPrint(new PrintToPython(designPythonItemPrint)); } else { DesignPythonItemPrint designPythonItemPrint = new DesignPythonItemPrint(); - designPythonItemPrint.setIfSingle(false); +// designPythonItemPrint.setIfSingle(false); designPythonItemPrint.setPrint_path_list(new ArrayList<>()); - designPythonItemBlouse.setPrint(designPythonItemPrint); + designPythonItemBlouse.setPrint(new PrintToPython(designPythonItemPrint)); } return designPythonItemBlouse; } @@ -2587,7 +2587,7 @@ public class PythonService { List response = CopyUtil.copyList(designPythonItemDto, DesignPythonItem.class, (o, d) -> { d.setBusinessId(o.getId()); d.setIcon("none"); - d.setPrint(resolveDesignSinglePrint(o.getPrintObject(), o.getPath())); +// d.setPrint(resolveDesignSinglePrint(o.getPrintObject(), o.getPath())); }); DesignPythonItem body = new DesignPythonItem(); body.setType(SysFileLevel2TypeEnum.BODY.getRealName()); @@ -2636,12 +2636,13 @@ public class PythonService { // todo 当渐变色不为空时,是否需要将颜色置为 0 0 0 } + PrintToPython printToPython = resolveDesignSinglePrint(designSingleItem.getPrintObject().getPrints()); + resolveDesignElement(designSingleItem.getTrims(), printToPython); response.add(new DesignPythonItem( designSingleItem.getType(), designSingleItem.getPath(), designSingleItem.getColor(), - resolveDesignSinglePrint(designSingleItem.getPrintObject(), null), - resolveDesignElement(designSingleItem.getTrims()), + printToPython, // businessId designItemDetailId (python端确认没有作用,但是数据库需要存,作用:未知) // designSingleItem.getId(), businessId, @@ -2666,47 +2667,84 @@ public class PythonService { } - private DesignPythonItemPrint resolveDesignSinglePrint(DesignSinglePrintDTO printObject, String clothesPath) { - // 没有印花时的参数设置 - if (printObject.getIfSingle().equals(Boolean.FALSE) && CollectionUtil.isEmpty(printObject.getPrints())) { - return new DesignPythonItemPrint(new ArrayList<>(), false); + private PrintToPython resolveDesignSinglePrint(List printObject) { + PrintToPython printToPython = new PrintToPython(); + DesignPythonItemPrint printSingle = new DesignPythonItemPrint(); + DesignPythonItemPrint printOverall = new DesignPythonItemPrint(); + printToPython.setSingle(printSingle); + printToPython.setOverall(printOverall); + if (printObject.isEmpty()){ + return printToPython; } - DesignPythonItemPrint print = CopyUtil.copyObject(printObject, DesignPythonItemPrint.class); - int size = printObject.getPrints().size(); + // 没有印花时的参数设置 +// if (printObject.getIfSingle().equals(Boolean.FALSE) && CollectionUtil.isEmpty(printObject.getPrints())) { +// return new DesignPythonItemPrint(new ArrayList<>(), false); +// } +// DesignPythonItemPrint print = CopyUtil.copyObject(printObject, DesignPythonItemPrint.class); + + int size = printObject.size(); // 占位符填充数组 - List> location = new ArrayList<>(Collections.nCopies(size, null)); - List scale = new ArrayList<>(Collections.nCopies(size, null)); - List angle = new ArrayList<>(Collections.nCopies(size, null)); - ArrayList paths = new ArrayList<>(Collections.nCopies(size, null)); + List> locationS = new ArrayList<>(Collections.nCopies(size, null)); + List scaleS = new ArrayList<>(Collections.nCopies(size, null)); + List angleS = new ArrayList<>(Collections.nCopies(size, null)); + ArrayList pathsS = new ArrayList<>(Collections.nCopies(size, null)); + + List> locationO = new ArrayList<>(Collections.nCopies(size, null)); + List scaleO = new ArrayList<>(Collections.nCopies(size, null)); + List angleO = new ArrayList<>(Collections.nCopies(size, null)); + ArrayList pathsO = new ArrayList<>(Collections.nCopies(size, null)); // 设置印花的位置、大小、旋转角度 // 优先级越大,越靠近顶层,在传输给python的数组中,越靠前 - List prints = printObject.getPrints(); - prints.forEach(p -> { +// List prints = printObject.getPrints(); + printObject.forEach(p -> { p.getLocation().set(0, p.getLocation().get(0)); p.getLocation().set(1, p.getLocation().get(1)); Integer priority = p.getPriority(); - location.set(size - priority, p.getLocation()); - scale.set(size - priority, p.getScale()); - angle.set(size - priority, p.getAngle()); - paths.set(size - priority, p.getMinIOPath()); + // todo 下标越界问题 + if (p.getIfSingle()){ + locationS.set(priority - 1, p.getLocation()); + scaleS.set(priority - 1, p.getScale()); + angleS.set( priority - 1, p.getAngle()); + pathsS.set(priority - 1, p.getMinIOPath()); + }else { + locationO.set(priority - 1, p.getLocation()); + scaleO.set(priority - 1, p.getScale()); + angleO.set(priority - 1, p.getAngle()); + pathsO.set(priority - 1, p.getMinIOPath()); + } // log.info("本次print打点locations###{}###fileVO{}", p.getLocation(), JSON.toJSONString(fileVO)); }); - print.setLocation(location); - print.setPrint_scale_list(scale); - print.setPrint_angle_list(angle); - print.setPrint_path_list(paths); + locationS.removeAll(Collections.singleton(null)); + scaleS.removeAll(Collections.singleton(null)); + angleS.removeAll(Collections.singleton(null)); + pathsS.removeAll(Collections.singleton(null)); + printSingle.setLocation(locationS); + printSingle.setPrint_scale_list(scaleS); + printSingle.setPrint_angle_list(angleS); + printSingle.setPrint_path_list(pathsS); - return print; + locationO.removeAll(Collections.singleton(null)); + scaleO.removeAll(Collections.singleton(null)); + angleO.removeAll(Collections.singleton(null)); + pathsO.removeAll(Collections.singleton(null)); + printOverall.setLocation(locationO); + printOverall.setPrint_scale_list(scaleO); + printOverall.setPrint_angle_list(angleO); + printOverall.setPrint_path_list(pathsO); + + return printToPython; } - private DesignPythonItemElement resolveDesignElement(DesignSinglePrintDTO trims) { + private void resolveDesignElement(DesignSinglePrintDTO trims, PrintToPython printToPython) { // 没有design element 时的参数设置 - if (Objects.isNull(trims.getIfSingle()) && CollectionUtil.isEmpty(trims.getPrints())) { - return null; + DesignPythonItemElement element = new DesignPythonItemElement(); + if (CollectionUtil.isEmpty(trims.getPrints())) { + printToPython.setElement(element); + return; } - DesignPythonItemElement print = new DesignPythonItemElement(); + int size = trims.getPrints().size(); // 占位符填充数组 @@ -2722,18 +2760,17 @@ public class PythonService { p.getLocation().set(0, p.getLocation().get(0)); p.getLocation().set(1, p.getLocation().get(1)); Integer priority = p.getPriority(); - location.set(size - priority, p.getLocation()); - scale.set(size - priority, p.getScale()); - angle.set(size - priority, p.getAngle()); - paths.set(size - priority, p.getMinIOPath()); + location.set(priority - 1, p.getLocation()); + scale.set(priority - 1, p.getScale()); + angle.set(priority - 1, p.getAngle()); + paths.set(priority - 1, p.getMinIOPath()); // log.info("本次print打点locations###{}###fileVO{}", p.getLocation(), JSON.toJSONString(fileVO)); }); - print.setLocation(location); - print.setElement_scale_list(scale); - print.setElement_angle_list(angle); - print.setElement_path_list(paths); - - return print; + element.setLocation(location); + element.setElement_scale_list(scale); + element.setElement_angle_list(angle); + element.setElement_path_list(paths); + printToPython.setElement(element); } private DesignPythonBasic coverToSingleBasic(DesignPythonItem designPythonItem, String singleOverall, @@ -2806,9 +2843,9 @@ public class PythonService { dress.setColor("none"); dress.setIcon("none"); DesignPythonItemPrint designPythonItemPrint = new DesignPythonItemPrint(); - designPythonItemPrint.setIfSingle(false); +// designPythonItemPrint.setIfSingle(false); designPythonItemPrint.setPrint_path_list(new ArrayList<>()); - dress.setPrint(designPythonItemPrint); + dress.setPrint(new PrintToPython(designPythonItemPrint)); dress.setPath("aida-sys-image/images/female/blouse/0628001551.jpg"); response.add(dress); @@ -2817,9 +2854,9 @@ public class PythonService { skirt.setColor("none"); skirt.setIcon("none"); DesignPythonItemPrint designPythonItemPrint1 = new DesignPythonItemPrint(); - designPythonItemPrint1.setIfSingle(false); +// designPythonItemPrint1.setIfSingle(false); designPythonItemPrint1.setPrint_path_list(new ArrayList<>()); - skirt.setPrint(designPythonItemPrint1); + skirt.setPrint(new PrintToPython(designPythonItemPrint1)); skirt.setPath("aida-sys-image/images/female/skirt/0628000022.jpg"); // skirt.setPath("aida-sys-image/images/female/dress/0628000000.jpg"); response.add(skirt); @@ -2829,9 +2866,9 @@ public class PythonService { top.setColor("none"); top.setIcon("none"); DesignPythonItemPrint designPythonItemPrint = new DesignPythonItemPrint(); - designPythonItemPrint.setIfSingle(false); +// designPythonItemPrint.setIfSingle(false); designPythonItemPrint.setPrint_path_list(new ArrayList<>()); - top.setPrint(designPythonItemPrint); + top.setPrint(new PrintToPython(designPythonItemPrint)); top.setPath("aida-sys-image/images/male/tops/mens_test_10.png"); response.add(top); @@ -2840,9 +2877,9 @@ public class PythonService { bottom.setColor("none"); bottom.setIcon("none"); DesignPythonItemPrint designPythonItemPrint1 = new DesignPythonItemPrint(); - designPythonItemPrint1.setIfSingle(false); +// designPythonItemPrint1.setIfSingle(false); designPythonItemPrint1.setPrint_path_list(new ArrayList<>()); - bottom.setPrint(designPythonItemPrint1); + bottom.setPrint(new PrintToPython(designPythonItemPrint1)); bottom.setPath("aida-sys-image/images/male/bottoms/mens_test_6252.png"); response.add(bottom); } diff --git a/src/main/java/com/ai/da/python/vo/DesignPythonItem.java b/src/main/java/com/ai/da/python/vo/DesignPythonItem.java index 332fd8fa..aad33618 100644 --- a/src/main/java/com/ai/da/python/vo/DesignPythonItem.java +++ b/src/main/java/com/ai/da/python/vo/DesignPythonItem.java @@ -35,7 +35,7 @@ public class DesignPythonItem { /** * 对应的print图片的绝对路径 */ - private DesignPythonItemPrint print; + private PrintToPython print; /** * trims 衣服上的装饰 @@ -118,13 +118,12 @@ public class DesignPythonItem { this.image_id = image_id; } - public DesignPythonItem(String type, String path, String color, DesignPythonItemPrint print, DesignPythonItemElement element, Long businessId, + public DesignPythonItem(String type, String path, String color, PrintToPython print, Long businessId, Long image_id, List offset, Float[] resize_scale, Integer priority, String gradient, String gradientString) { this.type = type; this.path = path; this.color = color; this.print = print; - this.element = element; // this.icon = icon; this.businessId = businessId; this.image_id = image_id; @@ -135,7 +134,7 @@ public class DesignPythonItem { this.gradientString = gradientString; } - public DesignPythonItem(String type, String path, String color, DesignPythonItemPrint print, String icon, Long businessId, Long image_id) { + public DesignPythonItem(String type, String path, String color, PrintToPython print, String icon, Long businessId, Long image_id) { this.type = type; this.path = path; this.color = color; diff --git a/src/main/java/com/ai/da/python/vo/DesignPythonItemElement.java b/src/main/java/com/ai/da/python/vo/DesignPythonItemElement.java index f3a790dc..71560f2d 100644 --- a/src/main/java/com/ai/da/python/vo/DesignPythonItemElement.java +++ b/src/main/java/com/ai/da/python/vo/DesignPythonItemElement.java @@ -3,21 +3,22 @@ package com.ai.da.python.vo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.ArrayList; import java.util.List; @Data public class DesignPythonItemElement { @ApiModelProperty("print的位置 传 [[0.2, 0.2]]") - private List> location; + private List> location = new ArrayList<>(); - private List element_path_list; + private List element_path_list = new ArrayList<>(); @ApiModelProperty("print的缩放比例 传 [0.2, 0.2]") - private List element_scale_list; + private List element_scale_list = new ArrayList<>(); @ApiModelProperty("print的旋转角度 传 [0.2, 0.2]") - private List element_angle_list; + private List element_angle_list = new ArrayList<>(); public DesignPythonItemElement() { } diff --git a/src/main/java/com/ai/da/python/vo/DesignPythonItemPrint.java b/src/main/java/com/ai/da/python/vo/DesignPythonItemPrint.java index 7650429c..617c8e65 100644 --- a/src/main/java/com/ai/da/python/vo/DesignPythonItemPrint.java +++ b/src/main/java/com/ai/da/python/vo/DesignPythonItemPrint.java @@ -4,6 +4,9 @@ import com.alibaba.fastjson.annotation.JSONField; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; import java.util.List; @Data @@ -14,7 +17,7 @@ public class DesignPythonItemPrint { @ApiModelProperty("图片绝对路径") private String path; - private List print_path_list; + private List print_path_list = new ArrayList<>(); @ApiModelProperty("上传时候对应的类型,一级类型 Printboard ") private String level1Type; @@ -29,28 +32,38 @@ public class DesignPythonItemPrint { * 是否打点 */ @ApiModelProperty("是否打点 是传true 否则false") - private Boolean IfSingle; + private Boolean ifSingle; @ApiModelProperty("print的位置 传 [[0.2, 0.2]]") - private List> location; + private List> location = new ArrayList<>(); @ApiModelProperty("print的缩放比例 传 [0.2, 0.2]") - private List print_scale_list; + private List print_scale_list = new ArrayList<>(); @ApiModelProperty("print的旋转角度 传 [0.2, 0.2]") - private List print_angle_list; + private List print_angle_list = new ArrayList<>(); @JSONField(name = "IfSingle") public Boolean getIfSingle() { - return IfSingle; + return ifSingle; + } + + public DesignPythonItemPrint(List print_path_list, Boolean ifDesign) { + if (ifDesign){ + this.print_path_list = print_path_list; + this.location = Collections.singletonList(Arrays.asList(0.0, 0.0)); + this.print_scale_list = Arrays.asList(0.0, 0.0); + this.print_angle_list = Arrays.asList(0.0, 0.0); + } + } public DesignPythonItemPrint(String singlePath, String level1Type, Float scale, Boolean ifSingle) { this.path = singlePath; this.level1Type = level1Type; this.scale = scale; - IfSingle = ifSingle; + this.ifSingle = ifSingle; } public DesignPythonItemPrint() { @@ -60,8 +73,4 @@ public class DesignPythonItemPrint { this.path = path; } - public DesignPythonItemPrint(List print_path_list, Boolean ifSingle) { - this.print_path_list = print_path_list; - IfSingle = ifSingle; - } } diff --git a/src/main/java/com/ai/da/python/vo/PrintToPython.java b/src/main/java/com/ai/da/python/vo/PrintToPython.java new file mode 100644 index 00000000..1d2f79ca --- /dev/null +++ b/src/main/java/com/ai/da/python/vo/PrintToPython.java @@ -0,0 +1,20 @@ +package com.ai.da.python.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class PrintToPython { + private DesignPythonItemPrint single; + private DesignPythonItemPrint overall; + private DesignPythonItemElement element; + + public PrintToPython(DesignPythonItemPrint overall) { + this.overall = new DesignPythonItemPrint(overall.getPrint_path_list(),Boolean.TRUE); + single = new DesignPythonItemPrint(); + element = new DesignPythonItemElement(); + } +} diff --git a/src/main/java/com/ai/da/service/impl/ChatRobotServiceImpl.java b/src/main/java/com/ai/da/service/impl/ChatRobotServiceImpl.java index 79eb8b37..11f4126a 100644 --- a/src/main/java/com/ai/da/service/impl/ChatRobotServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/ChatRobotServiceImpl.java @@ -223,7 +223,7 @@ public class ChatRobotServiceImpl implements ChatRobotService { if (!CollectionUtils.isEmpty(libraryList)) { chatRobotLibraryVO.setId(libraryList.get(0).getId()); } - String aidaSysImage = minioUtil.getPresignedUrl(bucketName + "/" + path, 24 * 60); + String aidaSysImage = minioUtil.getPreSignedUrl(bucketName + "/" + path, 24 * 60); chatRobotLibraryVO.setUrl(bucketName + "/" + path); chatRobotLibraryVO.setPresignedUrl(aidaSysImage); chatRobotLibraryVOList.add(chatRobotLibraryVO); diff --git a/src/main/java/com/ai/da/service/impl/CollectionElementServiceImpl.java b/src/main/java/com/ai/da/service/impl/CollectionElementServiceImpl.java index b1f1156e..49d4cd64 100644 --- a/src/main/java/com/ai/da/service/impl/CollectionElementServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/CollectionElementServiceImpl.java @@ -24,7 +24,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.collect.Lists; -import io.minio.errors.MinioException; import io.netty.util.internal.StringUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; @@ -36,8 +35,6 @@ import org.springframework.util.StringUtils; import javax.annotation.Resource; import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; import java.math.BigDecimal; import java.time.LocalDateTime; import java.time.ZoneId; @@ -106,7 +103,7 @@ public class CollectionElementServiceImpl extends ServiceImpl> libraryIds = generateDetailMapper.getLibraryIdThroughMD5(md5, CollectionLevel1TypeEnum.PRINT_BOARD.getRealName()); if (libraryIds.isEmpty()){ diff --git a/src/main/java/com/ai/da/service/impl/CollectionServiceImpl.java b/src/main/java/com/ai/da/service/impl/CollectionServiceImpl.java index 1aad260c..871bb8f3 100644 --- a/src/main/java/com/ai/da/service/impl/CollectionServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/CollectionServiceImpl.java @@ -80,7 +80,7 @@ public class CollectionServiceImpl extends ServiceImpl> maps = collectionElements @@ -95,27 +95,27 @@ public class CollectionServiceImpl extends ServiceImpl { d.setDesignType(DesignTypeEnum.COLLECTION.getRealName()); - d.setUrl(minioUtil.getPresignedUrl(o.getUrl(), 24 * 60)); + d.setUrl(minioUtil.getPreSignedUrl(o.getUrl(), 24 * 60)); })); break; case PRINT_BOARD: response.setPrintBoards(CopyUtil.copyList(v, CollectionElementVO.class, (o, d) -> { d.setIsPin(o.getHasPin()); d.setDesignType(DesignTypeEnum.COLLECTION.getRealName()); - d.setUrl(minioUtil.getPresignedUrl(o.getUrl(), 24 * 60)); + d.setUrl(minioUtil.getPreSignedUrl(o.getUrl(), 24 * 60)); })); break; case SKETCH_BOARD: response.setSketchBoards(CopyUtil.copyList(v, CollectionElementVO.class, (o, d) -> { d.setIsPin(o.getHasPin()); d.setDesignType(DesignTypeEnum.COLLECTION.getRealName()); - d.setUrl(minioUtil.getPresignedUrl(o.getUrl(), 24 * 60)); + d.setUrl(minioUtil.getPreSignedUrl(o.getUrl(), 24 * 60)); String url = o.getUrl(); if (url.contains(".")) { String[] split = url.split("\\."); - d.setUrlWithWhiteSide(minioUtil.getPresignedUrl(split[0] + "-show." + split[1], 24 * 60)); + d.setUrlWithWhiteSide(minioUtil.getPreSignedUrl(split[0] + "-show." + split[1], 24 * 60)); }else { - d.setUrlWithWhiteSide(minioUtil.getPresignedUrl(url + "-show", 24 * 60)); + d.setUrlWithWhiteSide(minioUtil.getPreSignedUrl(url + "-show", 24 * 60)); } })); break; diff --git a/src/main/java/com/ai/da/service/impl/DesignItemServiceImpl.java b/src/main/java/com/ai/da/service/impl/DesignItemServiceImpl.java index 82ab7971..a0b5880b 100644 --- a/src/main/java/com/ai/da/service/impl/DesignItemServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/DesignItemServiceImpl.java @@ -8,10 +8,7 @@ import com.ai.da.common.context.UserContext; import com.ai.da.common.enums.CollectionLevel1TypeEnum; import com.ai.da.common.enums.SingleOverallEnum; import com.ai.da.common.enums.SysFileLevel2TypeEnum; -import com.ai.da.common.utils.CopyUtil; -import com.ai.da.common.utils.DateUtil; -import com.ai.da.common.utils.MD5Utils; -import com.ai.da.common.utils.MinioUtil; +import com.ai.da.common.utils.*; import com.ai.da.mapper.primary.DesignItemMapper; import com.ai.da.mapper.primary.entity.*; import com.ai.da.model.dto.*; @@ -264,7 +261,7 @@ public class DesignItemServiceImpl extends ServiceImpl saveDesignSingleItemDetailAndLayers(DesignPythonObjects pythonObjects , Long designId, Long designItemId, Long userId - , JSONObject outfit, String timeZone, List designSingleItemDTOList) { + , JSONObject outfit, String timeZone, List designSingleItemDTOList + , Map categoryAndUndividedLayer) { DesignItem designItem = new DesignItem(); // String url = pythonObjects.getObjects().get(0).getBasic().getSave_name(); @@ -346,8 +345,10 @@ public class DesignItemServiceImpl extends ServiceImpl categoryAndUndividedLayer = setTypeAndUndividedLayer(layers); if (!designSingleIncludeLayersDTO.getIsPreview()) { // 更新及保存图层信息 - tDesignPythonOutfitDetails = saveDesignSingleItemDetailAndLayers(objects, design.getId(), designSingleIncludeLayersDTO.getDesignItemId(), - userId, outfit, designSingleIncludeLayersDTO.getTimeZone(), designSingleIncludeLayersDTO.getDesignSingleItemDTOList()); + tDesignPythonOutfitDetails = saveDesignSingleItemDetailAndLayers(objects, design.getId(), designSingleIncludeLayersDTO.getDesignItemId() + , userId, outfit, designSingleIncludeLayersDTO.getTimeZone() + , designSingleIncludeLayersDTO.getDesignSingleItemDTOList() + , categoryAndUndividedLayer); saveCollectionElement(designSingleIncludeLayersDTO); } else { - JSONArray layers = outfit.getJSONArray("layers"); tDesignPythonOutfitDetails = setTDesignPythonOutfitDetailList(layers, designItem.getDesignId(), null, userId, priorityOffset); } @@ -536,11 +540,12 @@ public class DesignItemServiceImpl extends ServiceImpl setTypeAndUndividedLayer(JSONArray layers){ + HashMap categoryAndLayer = new HashMap<>(); + for (int i = 0; i < layers.size(); i++) { + JSONObject jsonObject = layers.getJSONObject(i); + String category = jsonObject.getString("image_category").split("_")[0]; + if (!category.equals("body") && !categoryAndLayer.containsKey(category)) categoryAndLayer.put(category, jsonObject.getString("pattern_image_url")); + } + return categoryAndLayer; + } + @Override @Transactional(rollbackFor = Exception.class) public ComposeLayersVO editLayersPositionAndScale(EditLayersPositionAndScaleVO positionAndScaleVO) throws IOException { @@ -591,7 +606,7 @@ public class DesignItemServiceImpl extends ServiceImpl designSingleItemDTOList, List layersObject, - String singleOrOverall) { + String singleOrOverall, + Map categoryAndUndividedLayer) { DesignSingleVO designSingleVO = new DesignSingleVO(); ArrayList clothes = new ArrayList<>(); @@ -662,7 +678,7 @@ public class DesignItemServiceImpl extends ServiceImpl layers.getImageCategory().equals("body")).collect(Collectors.toList())); clothes.add(designItemClothesDetailVO); @@ -718,20 +735,16 @@ public class DesignItemServiceImpl extends ServiceImpl designItemDetailTypeIdMap, String timeZone){ + + // todo 这边这样做对吗 DesignSinglePrintDTO printObject; if (printType.equals("print")){ printObject = designSingleItem.getPrintObject(); }else { printObject = designSingleItem.getTrims(); - if (Objects.isNull(printObject.getIfSingle())){ - printObject.setIfSingle(Boolean.FALSE); - } } - if (printObject.getIfSingle().equals(Boolean.FALSE) - && CollectionUtil.isEmpty(printObject.getPrints())) { - return; - } else { + if (!CollectionUtil.isEmpty(printObject.getPrints())) { // 2、有印花,添加到list printObject.getPrints().forEach(print -> { // 2.1 判断是否第一次添加印花,是:直接添加 @@ -746,7 +759,7 @@ public class DesignItemServiceImpl extends ServiceImpl { if (!StringUtil.isNullOrEmpty(designSingleItem.getDesignType()) && designSingleItem.getDesignType().equals("Collection")){ - String path = minioUtil.getPresignedUrl(designSingleItem.getPath(), CommonConstant.MINIO_IMAGE_EXPIRE_TIME); + String path = minioUtil.getPreSignedUrl(designSingleItem.getPath(), CommonConstant.MINIO_IMAGE_EXPIRE_TIME); try { String md5 = MD5Utils.encryptFile(path, false); // 先判断是否需要被加入到library @@ -814,7 +827,7 @@ public class DesignItemServiceImpl extends ServiceImpl { if (!StringUtil.isNullOrEmpty(print.getDesignType()) && print.getDesignType().equals("Collection")){ - String path = minioUtil.getPresignedUrl(print.getMinIOPath(), CommonConstant.MINIO_IMAGE_EXPIRE_TIME); + String path = minioUtil.getPreSignedUrl(print.getMinIOPath(), CommonConstant.MINIO_IMAGE_EXPIRE_TIME); try { String md5 = MD5Utils.encryptFile(path, false); // 先判断是否已被加入到library 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 0aa72910..d9ec239b 100644 --- a/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.exceptions.ExceptionUtil; import com.ai.da.common.config.FileProperties; import com.ai.da.common.config.exception.BusinessException; +import com.ai.da.common.constant.CommonConstant; import com.ai.da.common.context.UserContext; import com.ai.da.common.enums.*; import com.ai.da.common.utils.*; @@ -382,9 +383,9 @@ public class DesignServiceImpl extends ServiceImpl impleme String url = byId.getUrl(); if (url.contains(".")) { String[] split = url.split("\\."); - vo.setUrlWithWhiteSide(minioUtil.getPresignedUrl(split[0] + "-show." + split[1], 24 * 60)); + vo.setUrlWithWhiteSide(minioUtil.getPreSignedUrl(split[0] + "-show." + split[1], 24 * 60)); }else { - vo.setUrlWithWhiteSide(minioUtil.getPresignedUrl(url + "-show", 24 * 60)); + vo.setUrlWithWhiteSide(minioUtil.getPreSignedUrl(url + "-show", 24 * 60)); } result.add(vo); }else if (collectionSketchDTO.getDesignType().equals(DesignTypeEnum.GENERATE.getRealName())) { @@ -393,9 +394,9 @@ public class DesignServiceImpl extends ServiceImpl impleme String url = generateDetail.getUrl(); if (url.contains(".")) { String[] split = url.split("\\."); - vo.setUrlWithWhiteSide(minioUtil.getPresignedUrl(split[0] + "-show." + split[1], 24 * 60)); + vo.setUrlWithWhiteSide(minioUtil.getPreSignedUrl(split[0] + "-show." + split[1], 24 * 60)); }else { - vo.setUrlWithWhiteSide(minioUtil.getPresignedUrl(url + "-show", 24 * 60)); + vo.setUrlWithWhiteSide(minioUtil.getPreSignedUrl(url + "-show", 24 * 60)); } result.add(vo); } @@ -411,9 +412,9 @@ public class DesignServiceImpl extends ServiceImpl impleme String url = byId.getUrl(); if (url.contains(".")) { String[] split = url.split("\\."); - vo.setUrlWithWhiteSide(minioUtil.getPresignedUrl(split[0] + "-show." + split[1], 24 * 60)); + vo.setUrlWithWhiteSide(minioUtil.getPreSignedUrl(split[0] + "-show." + split[1], 24 * 60)); }else { - vo.setUrlWithWhiteSide(minioUtil.getPresignedUrl(url + "-show", 24 * 60)); + vo.setUrlWithWhiteSide(minioUtil.getPreSignedUrl(url + "-show", 24 * 60)); } result.add(vo); } @@ -597,7 +598,7 @@ public class DesignServiceImpl extends ServiceImpl impleme String designUrl = designPythonOutfit.getDesignUrl(); if (!StringUtils.isEmpty(designUrl) && designUrl.contains("/")) { int firstIndex = designUrl.indexOf("/"); - designCollectionItemVO.setDesignOutfitUrl(minioUtil.getPresignedUrl(designUrl.substring(0, firstIndex) + "/" + designUrl.substring(firstIndex + 1), 24 * 60)); + designCollectionItemVO.setDesignOutfitUrl(minioUtil.getPreSignedUrl(designUrl.substring(0, firstIndex) + "/" + designUrl.substring(firstIndex + 1), 24 * 60)); } //response designCollectionItems.add(designCollectionItemVO); @@ -623,10 +624,13 @@ public class DesignServiceImpl extends ServiceImpl impleme } designItemDetail.setIconPath(detail.getIcon()); designItemDetail.setPriority(typePriority.get(detail.getType().toLowerCase())); - DesignPythonItemPrint printObject = detail.getPrint(); - designItemDetail.setPrintPath(Objects.isNull(printObject) ? "" : printObject.getPath()); + if (!detail.getType().equals("Body")){ + DesignPythonItemPrint printObject = detail.getPrint().getOverall(); +// designItemDetail.setPrintPath(Objects.isNull(printObject) ? "" : printObject.getPath()); + designItemDetail.setPrintPath(CollectionUtils.isEmpty(printObject.getPrint_path_list()) ? "" : printObject.getPrint_path_list().get(0)); + } designItemDetailService.save(designItemDetail); - if (!SysFileLevel2TypeEnum.BODY.getRealName().equals(detail.getType()) && designItemDetail.getPrintPath() != null) { + if (!SysFileLevel2TypeEnum.BODY.getRealName().equals(detail.getType()) && !StringUtil.isNullOrEmpty(designItemDetail.getPrintPath())) { DesignItemDetailPrint print = new DesignItemDetailPrint(); print.setDesignItemDetailId(designItemDetail.getId()); print.setPrintType("print"); @@ -686,7 +690,7 @@ public class DesignServiceImpl extends ServiceImpl impleme designItemDetail.setBusinessId(0L); } designItemDetail.setIconPath(detail.getIcon()); - DesignPythonItemPrint printObject = detail.getPrint(); + DesignPythonItemPrint printObject = detail.getPrint().getOverall(); designItemDetail.setPrintPath(Objects.isNull(printObject) ? "" : printObject.getPath()); designItemDetails.add(designItemDetail); }); @@ -997,10 +1001,11 @@ public class DesignServiceImpl extends ServiceImpl impleme .collect(Collectors.toList()); response.setClothes(CopyUtil.copyList(filterDetail, DesignItemClothesDetailVO.class, (o, d) -> { d.setId(o.getId()); - d.setPath(minioUtil.getPresignedUrl(o.getPath(), 24 * 60, true)); + d.setPath(minioUtil.getPreSignedUrl(o.getPath(), 24 * 60, true)); d.setMinIOPath(o.getPath()); d.setLevel1Type(converTypeToLevel1(o.getType())); d.setGradient(JSONObject.parseObject(o.getGradientString(), Gradient.class)); + if (!StringUtil.isNullOrEmpty(o.getUndividedLayer())) d.setUndividedLayer(minioUtil.getPreSignedUrl(o.getUndividedLayer(), CommonConstant.MINIO_IMAGE_EXPIRE_TIME)); // 根据designItemDetailId获取印花 List prints = designItemDetailPrintService.getByDesignItemDetailId(o.getId(), "print"); // 判断有无印花 @@ -1025,12 +1030,12 @@ public class DesignServiceImpl extends ServiceImpl impleme // todo 不确定businessId的作用,暂时取消传递,查看影响 // d.setId(o.getBusinessId()); d.setId(0L); - d.setPath(minioUtil.getPresignedUrl(o.getPath(), 24 * 60)); + d.setPath(minioUtil.getPreSignedUrl(o.getPath(), 24 * 60)); d.setMinIOPath(o.getPath()); d.setPrintObject(new DesignPythonItemPrint()); })); return editDesignItemLayer(flag, designPythonOutfit, - minioUtil.getPresignedUrl(designPythonOutfit.getDesignUrl(), 24 * 60), + minioUtil.getPreSignedUrl(designPythonOutfit.getDesignUrl(), 24 * 60), editResponseColor(designItemDetails, response)); } @@ -1169,7 +1174,7 @@ public class DesignServiceImpl extends ServiceImpl impleme }); // 2、将查询出的图层信息填充到designItemDetailVO中 - designItemDetailVO.setDesignItemUrl(minioUtil.getPresignedUrl(designPythonOutfit.getDesignUrl(), 24 * 60)); + designItemDetailVO.setDesignItemUrl(minioUtil.getPreSignedUrl(designPythonOutfit.getDesignUrl(), 24 * 60)); // 2.1 填充clothes designItemDetailVO.getClothes().forEach(c -> { // String type = c.getType().toLowerCase(); @@ -1204,29 +1209,31 @@ public class DesignServiceImpl extends ServiceImpl impleme if (designItemDetailPrints.size() == 1) { DesignItemDetailPrint detailPrint = designItemDetailPrints.get(0); DesignSinglePrint designSinglePrint = new DesignSinglePrint(); - designSinglePrintDTO.setIfSingle(detailPrint.getSingleOrOverall().equals("single") ? Boolean.TRUE : Boolean.FALSE); +// designSinglePrintDTO.setIfSingle(detailPrint.getSingleOrOverall().equals("single") ? Boolean.TRUE : Boolean.FALSE); designSinglePrint.setLevel2Type(detailPrint.getLevel2Type()); designSinglePrint.setLocation(JSONArray.parseArray(detailPrint.getPosition(), Double.class)); designSinglePrint.setAngle(detailPrint.getAngle()); designSinglePrint.setPriority(detailPrint.getPriority()); - designSinglePrint.setPath(minioUtil.getPresignedUrl(detailPrint.getPath(), 24 * 60)); + designSinglePrint.setPath(minioUtil.getPreSignedUrl(detailPrint.getPath(), 24 * 60)); designSinglePrint.setMinIOPath(detailPrint.getPath()); designSinglePrint.setScale(detailPrint.getScale()); + designSinglePrint.setIfSingle(detailPrint.getSingleOrOverall().equals("single") ? Boolean.TRUE : Boolean.FALSE); prints.add(designSinglePrint); } else { // single模式下多个印花 - designSinglePrintDTO.setIfSingle(Boolean.TRUE); +// designSinglePrintDTO.setIfSingle(Boolean.TRUE); designItemDetailPrints.forEach(print -> { - if (print.getSingleOrOverall().equals("single")) { - prints.add(new DesignSinglePrint( - print.getLevel2Type(), - minioUtil.getPresignedUrl(print.getPath(), 24 * 60), - print.getPath(), - JSONArray.parseArray(print.getPosition(), Double.class), - print.getScale(), - print.getAngle(), - print.getPriority())); - } +// if (print.getSingleOrOverall().equals("single")) { + prints.add(new DesignSinglePrint( + print.getLevel2Type(), + minioUtil.getPreSignedUrl(print.getPath(), 24 * 60), + print.getPath(), + JSONArray.parseArray(print.getPosition(), Double.class), + print.getScale(), + print.getAngle(), + print.getPriority(), + print.getSingleOrOverall().equals("single") ? Boolean.TRUE : Boolean.FALSE)); +// } }); } designSinglePrintDTO.setPrints(prints); @@ -1250,13 +1257,13 @@ public class DesignServiceImpl extends ServiceImpl impleme List modelFromLibIds = designs.stream().filter(design -> design.getModelType().equals("Library")).map(Design::getTemplateId).collect(Collectors.toList()); if (!CollectionUtil.isEmpty(modelFromLibIds)){ models.addAll(libraryService.getByIds(modelFromLibIds).stream() - .map(d -> minioUtil.getPresignedUrl(d.getUrl(), 24 * 60)) + .map(d -> minioUtil.getPreSignedUrl(d.getUrl(), 24 * 60)) .collect(Collectors.toList())); } List modelFromSysIds = designs.stream().filter(design -> design.getModelType().equals("System")).map(Design::getTemplateId).collect(Collectors.toList()); if (!CollectionUtil.isEmpty(modelFromSysIds)){ models.addAll(sysFileService.getByIds(modelFromSysIds).stream() - .map(d -> minioUtil.getPresignedUrl(d.getUrl(), 24 * 60)) + .map(d -> minioUtil.getPreSignedUrl(d.getUrl(), 24 * 60)) .collect(Collectors.toList())); } 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 319cc393..528159bc 100644 --- a/src/main/java/com/ai/da/service/impl/GenerateServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/GenerateServiceImpl.java @@ -213,7 +213,7 @@ public class GenerateServiceImpl extends ServiceImpl i } } // Generate generate = selectByUniqueId(taskId); - String md5 = MD5Utils.encryptFile(minioUtil.getPresignedUrl(url, 24 * 60), Boolean.FALSE); + String md5 = MD5Utils.encryptFile(minioUtil.getPreSignedUrl(url, 24 * 60), Boolean.FALSE); // 通过MD5值和level1Type,判断不同level1Type下相同的图片是否被like过 List> libraryIdList = generateDetailMapper.getLibraryIdThroughMD5(md5, generate.getLevel1Type()); if (!libraryIdList.isEmpty()) { @@ -543,7 +543,7 @@ public class GenerateServiceImpl extends ServiceImpl i collectionElement.setName(name); collectionElement.setUrl(path); collectionElement.setHasPin((byte) 0); - collectionElement.setMd5(MD5Utils.encryptFile(minioUtil.getPresignedUrl(path, 24 * 60), Boolean.FALSE)); + collectionElement.setMd5(MD5Utils.encryptFile(minioUtil.getPreSignedUrl(path, 24 * 60), Boolean.FALSE)); collectionElement.setCreateDate(DateUtil.getByTimeZone(generateThroughImageTextDTO.getTimeZone())); collectionElementService.save(collectionElement); @@ -633,7 +633,7 @@ public class GenerateServiceImpl extends ServiceImpl i if (url.substring(url.lastIndexOf("/") + 1).equals("white_image.jpg")) { generateResultVO.setStatus("Invalid"); } else { - generateResultVO.setUrl(minioUtil.getPresignedUrl(url, CommonConstant.MINIO_IMAGE_EXPIRE_TIME)); + generateResultVO.setUrl(minioUtil.getPreSignedUrl(url, CommonConstant.MINIO_IMAGE_EXPIRE_TIME)); } } else if (Objects.isNull(generateResultVO)) { generateResultVO = new GenerateResultVO(); 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 54345eec..2c237cf9 100644 --- a/src/main/java/com/ai/da/service/impl/LibraryServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/LibraryServiceImpl.java @@ -8,10 +8,7 @@ import com.ai.da.common.context.UserContext; import com.ai.da.common.enums.*; import com.ai.da.common.response.PageBaseResponse; import com.ai.da.common.response.ResultEnum; -import com.ai.da.common.utils.CopyUtil; -import com.ai.da.common.utils.DateUtil; -import com.ai.da.common.utils.FileUtil; -import com.ai.da.common.utils.MinioUtil; +import com.ai.da.common.utils.*; import com.ai.da.mapper.primary.*; import com.ai.da.mapper.primary.entity.*; import com.ai.da.model.dto.*; @@ -209,7 +206,7 @@ public class LibraryServiceImpl extends ServiceImpl impl QueryLibraryPageVO libraryPageVO = CopyUtil.copyObject(library, QueryLibraryPageVO.class); libraryPageVO.setDesignType(DesignTypeEnum.LIBRARY.getRealName()); libraryPageVO.setMinIOPath(library.getUrl()); - libraryPageVO.setUrl(minioUtil.getPresignedUrl(library.getUrl(), 24 * 60)); + libraryPageVO.setUrl(minioUtil.getPreSignedUrl(library.getUrl(), 24 * 60)); if (finalMap != null && finalMap.containsKey(library.getId())) { libraryPageVO.setLibraryModelPoint(finalMap.get(library.getId())); } @@ -273,7 +270,7 @@ public class LibraryServiceImpl extends ServiceImpl impl Library library = resolveData(libraryUploadDTO, userInfo, newFilePath); LibraryUpdateVo libraryUpdateVo = CopyUtil.copyObject(library, LibraryUpdateVo.class); libraryUpdateVo.setMinIOPath(libraryUpdateVo.getUrl()); - libraryUpdateVo.setUrl(minioUtil.getPresignedUrl(newFilePath, 24 * 60)); + libraryUpdateVo.setUrl(minioUtil.getPreSignedUrl(newFilePath, 24 * 60)); libraryUpdateVo.setCheckMd5(Boolean.TRUE); return libraryUpdateVo; } else if (libraryUploadDTO.getModelType().equals(ModelType.SYSTEM.getValue())) { @@ -285,7 +282,7 @@ public class LibraryServiceImpl extends ServiceImpl impl Library library = resolveData(libraryUploadDTO, userInfo, newFilePath); LibraryUpdateVo libraryUpdateVo = CopyUtil.copyObject(library, LibraryUpdateVo.class); libraryUpdateVo.setMinIOPath(libraryUpdateVo.getUrl()); - libraryUpdateVo.setUrl(minioUtil.getPresignedUrl(newFilePath, 24 * 60)); + libraryUpdateVo.setUrl(minioUtil.getPreSignedUrl(newFilePath, 24 * 60)); libraryUpdateVo.setCheckMd5(Boolean.TRUE); return libraryUpdateVo; } else { @@ -300,7 +297,7 @@ public class LibraryServiceImpl extends ServiceImpl impl Library library = resolveData(libraryUploadDTO, userInfo, filePath); LibraryUpdateVo libraryUpdateVo = CopyUtil.copyObject(library, LibraryUpdateVo.class); libraryUpdateVo.setMinIOPath(libraryUpdateVo.getUrl()); - libraryUpdateVo.setUrl(minioUtil.getPresignedUrl(libraryUpdateVo.getUrl(), 24 * 60)); + libraryUpdateVo.setUrl(minioUtil.getPreSignedUrl(libraryUpdateVo.getUrl(), 24 * 60)); libraryUpdateVo.setCheckMd5(Boolean.TRUE); return libraryUpdateVo; } diff --git a/src/main/java/com/ai/da/service/impl/PortfolioServiceImpl.java b/src/main/java/com/ai/da/service/impl/PortfolioServiceImpl.java index 9ea7ba1e..cb24b9c1 100644 --- a/src/main/java/com/ai/da/service/impl/PortfolioServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/PortfolioServiceImpl.java @@ -3,7 +3,6 @@ package com.ai.da.service.impl; import com.ai.da.common.config.exception.BusinessException; import com.ai.da.common.context.UserContext; import com.ai.da.common.response.PageBaseResponse; -import com.ai.da.common.response.Response; import com.ai.da.common.utils.CopyUtil; import com.ai.da.common.utils.MinioUtil; import com.ai.da.common.utils.RedisUtil; @@ -35,7 +34,6 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Objects; -import java.util.stream.Collectors; @Service public class PortfolioServiceImpl extends ServiceImpl implements PortfolioService { @@ -438,7 +436,7 @@ public class PortfolioServiceImpl extends ServiceImpl qw = new QueryWrapper<>(); qw.lambda().eq(TDesignPythonOutfit::getCollectionId, portfolio.getCollectionId()); List designPythonOutfitList = designPythonOutfitMapper.selectList(qw); for (TDesignPythonOutfit tDesignPythonOutfit : designPythonOutfitList) { - tDesignPythonOutfit.setDesignUrl(minioUtil.getPresignedUrl(tDesignPythonOutfit.getDesignUrl(), 24 * 60)); + tDesignPythonOutfit.setDesignUrl(minioUtil.getPreSignedUrl(tDesignPythonOutfit.getDesignUrl(), 24 * 60)); } vo.setDesignPythonOutfitList(designPythonOutfitList); } Canvas canvas = canvasMapper.selectById(vo.getCanvasId()); - vo.setCanvasUrl(minioUtil.getPresignedUrl(canvas.getUrl(), 24 * 60)); + vo.setCanvasUrl(minioUtil.getPreSignedUrl(canvas.getUrl(), 24 * 60)); vo.setLikeNum(redisUtil.getLikeCount(vo.getId())); if (userHolder == null) { vo.setIsLike(0); 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 875ed0a5..8604dccf 100644 --- a/src/main/java/com/ai/da/service/impl/TDesignPythonOutfitDetailServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/TDesignPythonOutfitDetailServiceImpl.java @@ -33,7 +33,7 @@ import static com.ai.da.common.enums.LayersPriorityEnum.BODY; public class TDesignPythonOutfitDetailServiceImpl extends ServiceImpl implements ITDesignPythonOutfitDetailService { @Resource - private MinioUtil minIoUtil; + private MinioUtil minioUtil; @Override public IPage selectTDesignPythonOutfitDetailPage(IPage page, TDesignPythonOutfitDetailVO tDesignPythonOutfitDetail) { @@ -57,9 +57,9 @@ public class TDesignPythonOutfitDetailServiceImpl extends ServiceImpl) JSON.parse(detail.getPosition())); designPythonOutfitVO.setImageSize(StringUtil.isNullOrEmpty(detail.getImageSize()) ? null : (List) JSON.parse(detail.getImageSize())); - designPythonOutfitVO.setImageUrl(StringUtil.isNullOrEmpty(detail.getImageUrl()) ? null : minIoUtil.getPresignedUrl(detail.getImageUrl(), 24 * 60)); + designPythonOutfitVO.setImageUrl(StringUtil.isNullOrEmpty(detail.getImageUrl()) ? null : minioUtil.getPreSignedUrl(detail.getImageUrl(), 24 * 60)); designPythonOutfitVO.setImageMinioUrl(StringUtil.isNullOrEmpty(detail.getImageUrl()) ? null : detail.getImageUrl()); - designPythonOutfitVO.setMaskUrl(StringUtil.isNullOrEmpty(detail.getMaskUrl()) ? null : minIoUtil.getPresignedUrl(detail.getMaskUrl(), 24 * 60)); + designPythonOutfitVO.setMaskUrl(StringUtil.isNullOrEmpty(detail.getMaskUrl()) ? null : minioUtil.getPreSignedUrl(detail.getMaskUrl(), 24 * 60)); designPythonOutfitVO.setMaskMinioUrl(StringUtil.isNullOrEmpty(detail.getMaskUrl()) ? null : detail.getMaskUrl()); // designPythonOutfitVO.setScale(Float.parseFloat(detail.getScale())); designPythonOutfitVO.setScale(modifyScale(detail.getScale())); diff --git a/src/main/java/com/ai/da/service/impl/TaskListServiceImpl.java b/src/main/java/com/ai/da/service/impl/TaskListServiceImpl.java index c65c5fa5..9ea82c21 100644 --- a/src/main/java/com/ai/da/service/impl/TaskListServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/TaskListServiceImpl.java @@ -62,8 +62,8 @@ public class TaskListServiceImpl extends ServiceImpl i taskDTOS.add(new TaskDTO<>()); } else { SuperResolutionDTO inputParam = taskDTO.getInputParam(); - inputParam.setImages(minioUtil.getPresignedUrl(inputParam.getImages(), CommonConstant.MINIO_IMAGE_EXPIRE_TIME)); - taskDTO.setOutputImage(StringUtil.isNullOrEmpty(taskDTO.getOutputImage()) ? null : minioUtil.getPresignedUrl(taskDTO.getOutputImage(), CommonConstant.MINIO_IMAGE_EXPIRE_TIME)); + inputParam.setImages(minioUtil.getPreSignedUrl(inputParam.getImages(), CommonConstant.MINIO_IMAGE_EXPIRE_TIME)); + taskDTO.setOutputImage(StringUtil.isNullOrEmpty(taskDTO.getOutputImage()) ? null : minioUtil.getPreSignedUrl(taskDTO.getOutputImage(), CommonConstant.MINIO_IMAGE_EXPIRE_TIME)); taskDTOS.add(taskDTO); } }); @@ -105,8 +105,8 @@ public class TaskListServiceImpl extends ServiceImpl i // 成功失败的都返回 TaskVO task = new TaskVO(); task.setImageName(s.getInputUrl().substring(s.getInputUrl().lastIndexOf("/") + 1)); - task.setInputImage(minioUtil.getPresignedUrl(s.getInputUrl(), CommonConstant.MINIO_IMAGE_EXPIRE_TIME)); - task.setOutputImage(StringUtil.isNullOrEmpty(s.getOutputUrl()) ? null : minioUtil.getPresignedUrl(s.getOutputUrl(), CommonConstant.MINIO_IMAGE_EXPIRE_TIME)); + task.setInputImage(minioUtil.getPreSignedUrl(s.getInputUrl(), CommonConstant.MINIO_IMAGE_EXPIRE_TIME)); + task.setOutputImage(StringUtil.isNullOrEmpty(s.getOutputUrl()) ? null : minioUtil.getPreSignedUrl(s.getOutputUrl(), CommonConstant.MINIO_IMAGE_EXPIRE_TIME)); task.setStatus(s.getStatus()); task.setTaskId(s.getTaskId()); task.setCreateDate(s.getCreateTime().format(dateTimeFormatter)); diff --git a/src/main/java/com/ai/da/service/impl/UserLikeGroupServiceImpl.java b/src/main/java/com/ai/da/service/impl/UserLikeGroupServiceImpl.java index 2b4abd4c..3d8c05cb 100644 --- a/src/main/java/com/ai/da/service/impl/UserLikeGroupServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/UserLikeGroupServiceImpl.java @@ -5,10 +5,7 @@ import com.ai.da.common.config.exception.BusinessException; import com.ai.da.common.constant.CommonConstant; import com.ai.da.common.context.UserContext; import com.ai.da.common.enums.CreditsEventsEnum; -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.RedisUtil; +import com.ai.da.common.utils.*; import com.ai.da.mapper.primary.*; import com.ai.da.mapper.primary.entity.*; import com.ai.da.model.dto.ProductImageLikeDTO; @@ -143,7 +140,7 @@ public class UserLikeGroupServiceImpl extends ServiceImpl qw = new QueryWrapper<>(); qw.lambda().eq(TDesignPythonOutfit::getDesignItemId, o.getDesignItemId()); List tDesignPythonOutfits = designPythonOutfitMapper.selectList(qw); @@ -322,7 +319,7 @@ public class UserLikeGroupServiceImpl extends ServiceImpl qw = new QueryWrapper<>(); qw.lambda().eq(ToProductImageResult::getTaskId, taskId); ToProductImageResult toProductImageResult = toProductImageResultMapper.selectOne(qw); @@ -366,10 +363,10 @@ public class UserLikeGroupServiceImpl extends ServiceImpl toProductImageResults = toProductImageResultMapper.selectList(qw); for (ToProductImageResult toProductImageResult : toProductImageResults) { - toProductImageResult.setUrl(minioUtil.getPresignedUrl(toProductImageResult.getUrl(), 24 * 60)); + toProductImageResult.setUrl(minioUtil.getPreSignedUrl(toProductImageResult.getUrl(), 24 * 60)); } List toProductImageResultVOS = CopyUtil.copyList(toProductImageResults, ToProductImageResultVO.class); for (ToProductImageResultVO toProductImageResultVO : toProductImageResultVOS) { if (toProductImageResultVO.getElementType().equals("ProductElement")) { ToProductElement toProductElement = toProductElementMapper.selectById(toProductImageResultVO.getElementId()); - toProductImageResultVO.setSourceUrl(minioUtil.getPresignedUrl(toProductElement.getUrl(), 24 * 60)); + toProductImageResultVO.setSourceUrl(minioUtil.getPreSignedUrl(toProductElement.getUrl(), 24 * 60)); }else if ((toProductImageResultVO.getElementType().equals("DesignOutfit"))) { TDesignPythonOutfit tDesignPythonOutfit = designPythonOutfitMapper.selectById(toProductImageResultVO.getElementId()); - toProductImageResultVO.setSourceUrl(minioUtil.getPresignedUrl(tDesignPythonOutfit.getDesignUrl(), 24 * 60)); + toProductImageResultVO.setSourceUrl(minioUtil.getPreSignedUrl(tDesignPythonOutfit.getDesignUrl(), 24 * 60)); }else { ToProductImageResult toProductImageResult1 = toProductImageResultMapper.selectById(toProductImageResultVO.getElementId()); - toProductImageResultVO.setSourceUrl(minioUtil.getPresignedUrl(toProductImageResult1.getUrl(), 24 * 60)); + toProductImageResultVO.setSourceUrl(minioUtil.getPreSignedUrl(toProductImageResult1.getUrl(), 24 * 60)); } } return toProductImageResultVOS; @@ -552,7 +549,7 @@ public class UserLikeGroupServiceImpl extends ServiceImpl qw = new QueryWrapper<>(); qw.lambda().eq(ToProductImageResult::getTaskId, taskId); ToProductImageResult toProductImageResult = toProductImageResultMapper.selectOne(qw); @@ -564,10 +561,10 @@ public class UserLikeGroupServiceImpl extends ServiceImpl