diff --git a/pom.xml b/pom.xml
index 2847442d..82d7353b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -138,6 +138,13 @@
tencentcloud-sdk-java-ses
3.1.572
+
+
+
+ io.minio
+ minio
+ 8.0.3
+
diff --git a/src/main/java/com/ai/da/common/config/MinIoClientConfig.java b/src/main/java/com/ai/da/common/config/MinIoClientConfig.java
new file mode 100644
index 00000000..b3370372
--- /dev/null
+++ b/src/main/java/com/ai/da/common/config/MinIoClientConfig.java
@@ -0,0 +1,33 @@
+package com.ai.da.common.config;
+
+import io.minio.MinioClient;
+import lombok.Data;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.stereotype.Component;
+
+@Data
+@Component
+public class MinIoClientConfig {
+ @Value("${minio.endpoint}")
+ private String endpoint;
+ @Value("${minio.accessKey}")
+ private String accessKey;
+ @Value("${minio.secretKey}")
+ private String secretKey;
+
+ /**
+ * 注入minio 客户端
+ * @return
+ */
+ @Bean
+ public MinioClient minioClient(){
+
+ return MinioClient.builder()
+ .endpoint(endpoint)
+ .credentials(accessKey, secretKey)
+ .build();
+ }
+
+}
+
diff --git a/src/main/java/com/ai/da/common/utils/MinioUtil.java b/src/main/java/com/ai/da/common/utils/MinioUtil.java
new file mode 100644
index 00000000..eefe2434
--- /dev/null
+++ b/src/main/java/com/ai/da/common/utils/MinioUtil.java
@@ -0,0 +1,216 @@
+package com.ai.da.common.utils;
+
+import com.ai.da.mapper.entity.ObjectItem;
+import io.minio.*;
+import io.minio.messages.DeleteError;
+import io.minio.messages.DeleteObject;
+import io.minio.messages.Item;
+import org.apache.tomcat.util.http.fileupload.IOUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @description: minio工具类
+ * @version:3.0
+ */
+@Component
+public class MinioUtil {
+ @Autowired
+ private MinioClient minioClient;
+
+ @Value("${minio.bucketName}")
+ private String bucketName;
+ /**
+ * description: 判断bucket是否存在,不存在则创建
+ *
+ * @return: void
+ */
+ public void existBucket(String name) {
+ try {
+ boolean exists = minioClient.bucketExists(BucketExistsArgs.builder().bucket(name).build());
+ if (!exists) {
+ minioClient.makeBucket(MakeBucketArgs.builder().bucket(name).build());
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 创建存储bucket
+ * @param bucketName 存储bucket名称
+ * @return Boolean
+ */
+ public Boolean makeBucket(String bucketName) {
+ try {
+ minioClient.makeBucket(MakeBucketArgs.builder()
+ .bucket(bucketName)
+ .build());
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * 删除存储bucket
+ * @param bucketName 存储bucket名称
+ * @return Boolean
+ */
+ public Boolean removeBucket(String bucketName) {
+ try {
+ minioClient.removeBucket(RemoveBucketArgs.builder()
+ .bucket(bucketName)
+ .build());
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ return true;
+ }
+ /**
+ * description: 上传文件
+ *
+ * @param multipartFile
+ * @return: java.lang.String
+
+ */
+ public List upload(MultipartFile[] multipartFile) {
+ List names = new ArrayList<>(multipartFile.length);
+ for (MultipartFile file : multipartFile) {
+ String fileName = file.getOriginalFilename();
+ String[] split = fileName.split("\\.");
+ if (split.length > 1) {
+ fileName = split[0] + "_" + System.currentTimeMillis() + "." + split[1];
+ } else {
+ fileName = fileName + System.currentTimeMillis();
+ }
+ InputStream in = null;
+ try {
+ in = file.getInputStream();
+ minioClient.putObject(PutObjectArgs.builder()
+ .bucket(bucketName)
+ .object(fileName)
+ .stream(in, in.available(), -1)
+ .contentType(file.getContentType())
+ .build()
+ );
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ if (in != null) {
+ try {
+ in.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ names.add(fileName);
+ }
+ return names;
+ }
+
+ /**
+ * description: 下载文件
+ *
+ * @param fileName
+ * @return: org.springframework.http.ResponseEntity
+ */
+ public ResponseEntity download(String fileName) {
+ ResponseEntity responseEntity = null;
+ InputStream in = null;
+ ByteArrayOutputStream out = null;
+ try {
+ in = minioClient.getObject(GetObjectArgs.builder().bucket(bucketName).object(fileName).build());
+ out = new ByteArrayOutputStream();
+ IOUtils.copy(in, out);
+ //封装返回值
+ byte[] bytes = out.toByteArray();
+ HttpHeaders headers = new HttpHeaders();
+ try {
+ headers.add("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ headers.setContentLength(bytes.length);
+ headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
+ headers.setAccessControlExposeHeaders(Arrays.asList("*"));
+ responseEntity = new ResponseEntity(bytes, headers, HttpStatus.OK);
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ if (in != null) {
+ try {
+ in.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ if (out != null) {
+ out.close();
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ return responseEntity;
+ }
+
+ /**
+ * 查看文件对象
+ * @param bucketName 存储bucket名称
+ * @return 存储bucket内文件对象信息
+ */
+ public List listObjects(String bucketName) {
+ Iterable> results = minioClient.listObjects(
+ ListObjectsArgs.builder().bucket(bucketName).build());
+ List objectItems = new ArrayList<>();
+ try {
+ for (Result- result : results) {
+ Item item = result.get();
+ ObjectItem objectItem = new ObjectItem();
+ objectItem.setObjectName(item.objectName());
+ objectItem.setSize(item.size());
+ objectItems.add(objectItem);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ return null;
+ }
+ return objectItems;
+ }
+
+ /**
+ * 批量删除文件对象
+ * @param bucketName 存储bucket名称
+ * @param objects 对象名称集合
+ */
+ public Iterable> removeObjects(String bucketName, List objects) {
+ List dos = objects.stream().map(e -> new DeleteObject(e)).collect(Collectors.toList());
+ Iterable> results = minioClient.removeObjects(RemoveObjectsArgs.builder().bucket(bucketName).objects(dos).build());
+ return results;
+ }
+
+
+}
+
+
diff --git a/src/main/java/com/ai/da/controller/DesignController.java b/src/main/java/com/ai/da/controller/DesignController.java
index 67353b64..ac1d25bd 100644
--- a/src/main/java/com/ai/da/controller/DesignController.java
+++ b/src/main/java/com/ai/da/controller/DesignController.java
@@ -27,7 +27,7 @@ public class DesignController {
@ApiOperation(value = "设计 Conllection")
@PostMapping("/designCollection")
- public Response designCollection(@Valid @RequestBody DesignCollectionDTO designDTO) {
+ public Response designCollection(@Valid @RequestBody DesignCollectionDTO designDTO) {
return Response.success(designService.designCollection(designDTO));
}
diff --git a/src/main/java/com/ai/da/controller/WorkspaceController.java b/src/main/java/com/ai/da/controller/WorkspaceController.java
index 006e0baf..5094fa8d 100644
--- a/src/main/java/com/ai/da/controller/WorkspaceController.java
+++ b/src/main/java/com/ai/da/controller/WorkspaceController.java
@@ -1,25 +1,12 @@
package com.ai.da.controller;
-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.mapper.entity.Account;
-import com.ai.da.mapper.entity.UserLikeGroup;
+import com.ai.da.common.utils.MinioUtil;
import com.ai.da.mapper.entity.Workspace;
-import com.ai.da.model.dto.QueryHistoryPageDTO;
import com.ai.da.model.dto.WorkspaceDTO;
import com.ai.da.model.enums.BizJson;
-import com.ai.da.model.vo.AuthPrincipalVo;
-import com.ai.da.model.vo.UserLikeGroupVO;
-import com.ai.da.model.vo.UserLikeVO;
import com.ai.da.model.vo.WorkspaceVO;
import com.ai.da.service.WorkspaceService;
-import com.baomidou.mybatisplus.core.conditions.query.Query;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.google.common.base.Function;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
@@ -27,19 +14,12 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import lombok.AllArgsConstructor;
import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
-import org.springframework.util.Assert;
-import org.springframework.util.CollectionUtils;
-import org.springframework.util.StringUtils;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
-
-import java.util.Date;
+import org.springframework.web.multipart.MultipartFile;
import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.stream.Collectors;
/**
* 控制器
@@ -56,6 +36,23 @@ public class WorkspaceController {
@Resource
private WorkspaceService workspaceService;
+ @Resource
+ private MinioUtil minIoUtil;
+
+ @Value("${minio.endpoint}")
+ private static String address;
+
+ @Value("${minio.bucketName}")
+ private static String bucketName;
+
+ @PostMapping("/upload")
+ public Object upload(MultipartFile file) {
+
+ List upload = minIoUtil.upload(new MultipartFile[]{file});
+
+ return address+"/"+bucketName+"/"+upload.get(0);
+ }
+
/**
* 详情
*/
@@ -63,19 +60,19 @@ public class WorkspaceController {
@ApiOperationSupport(order = 1)
@ApiOperation(value = "详情", notes = "传入workspace")
public Response detail(@ApiParam(value = "主键集合", required = true) @RequestParam Long id) {
- Workspace detail = workspaceService.getById(id);
+ Workspace detail = workspaceService.getByIdNew(id);
return Response.success(detail);
}
/**
* 分页
*/
- @GetMapping("/list")
+ @PostMapping("/list")
@ApiOperationSupport(order = 2)
@ApiOperation(value = "分页", notes = "传入workspace")
- public Response> list(@Valid @RequestBody WorkspaceDTO query) {
- IPage convert = workspaceService.getPage(query);
- return Response.success(PageBaseResponse.success(convert));
+ public Response list(@Valid @RequestBody WorkspaceDTO query) {
+ WorkspaceVO response = workspaceService.getPage(query);
+ return Response.success(response);
}
/**
diff --git a/src/main/java/com/ai/da/mapper/PythonTAllInfoMapper.java b/src/main/java/com/ai/da/mapper/PythonTAllInfoMapper.java
new file mode 100644
index 00000000..9b4bbd14
--- /dev/null
+++ b/src/main/java/com/ai/da/mapper/PythonTAllInfoMapper.java
@@ -0,0 +1,19 @@
+package com.ai.da.mapper;
+
+import com.ai.da.common.config.mybatis.plus.CommonMapper;
+import com.ai.da.mapper.entity.PythonTAllInfo;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.data.domain.Pageable;
+
+import java.util.List;
+
+/**
+ * (PythonTAllInfo)表数据库访问层
+ *
+ * @author SHAHAIBO
+ * @since 2023-09-08 17:05:24
+ */
+public interface PythonTAllInfoMapper extends CommonMapper {
+
+}
+
diff --git a/src/main/java/com/ai/da/mapper/entity/ObjectItem.java b/src/main/java/com/ai/da/mapper/entity/ObjectItem.java
new file mode 100644
index 00000000..80d33e2d
--- /dev/null
+++ b/src/main/java/com/ai/da/mapper/entity/ObjectItem.java
@@ -0,0 +1,10 @@
+package com.ai.da.mapper.entity;
+
+import lombok.Data;
+
+@Data
+public class ObjectItem {
+ private String objectName;
+ private Long size;
+}
+
diff --git a/src/main/java/com/ai/da/mapper/entity/PythonTAllInfo.java b/src/main/java/com/ai/da/mapper/entity/PythonTAllInfo.java
new file mode 100644
index 00000000..ae16fdd8
--- /dev/null
+++ b/src/main/java/com/ai/da/mapper/entity/PythonTAllInfo.java
@@ -0,0 +1,86 @@
+package com.ai.da.mapper.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * (PythonTAllInfo)实体类
+ *
+ * @author SHAHAIBO
+ * @since 2023-09-08 17:05:25
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("python_t_all_info")
+public class PythonTAllInfo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ private String imagePath;
+
+ private String imageCategory;
+
+ private String necklineLeft;
+
+ private String necklineRight;
+
+ private String centerFront;
+
+ private String shoulderLeft;
+
+ private String shoulderRight;
+
+ private String armpitLeft;
+
+ private String armpitRight;
+
+ private String waistlineLeft;
+
+ private String waistlineRight;
+
+ private String cuffLeftIn;
+
+ private String cuffLeftOut;
+
+ private String cuffRightIn;
+
+ private String cuffRightOut;
+
+ private String topHemLeft;
+
+ private String topHemRight;
+
+ private String waistbandLeft;
+
+ private String waistbandRight;
+
+ private String hemlineLeft;
+
+ private String hemlineRight;
+
+ private String crotch;
+
+ private String bottomLeftIn;
+
+ private String bottomLeftOut;
+
+ private String bottomRightIn;
+
+ private String bottomRightOut;
+
+ private String md5;
+
+ private String maskPath;
+
+ private String segResultPath;
+}
+
diff --git a/src/main/java/com/ai/da/mapper/entity/TDesignPythonOutfit.java b/src/main/java/com/ai/da/mapper/entity/TDesignPythonOutfit.java
index a03655a4..9338d903 100644
--- a/src/main/java/com/ai/da/mapper/entity/TDesignPythonOutfit.java
+++ b/src/main/java/com/ai/da/mapper/entity/TDesignPythonOutfit.java
@@ -31,6 +31,11 @@ public class TDesignPythonOutfit implements Serializable {
@TableId(value = "id", type = IdType.AUTO)
private Long id;
+ private Long designItemId;
+ /**
+ * designItemId
+ */
+ @ApiModelProperty(value = "designItemId")
private Long designItemId;
/**
* 关联的design ID
diff --git a/src/main/java/com/ai/da/mapper/entity/TDesignPythonOutfitDetail.java b/src/main/java/com/ai/da/mapper/entity/TDesignPythonOutfitDetail.java
index d822292f..8c9bbc42 100644
--- a/src/main/java/com/ai/da/mapper/entity/TDesignPythonOutfitDetail.java
+++ b/src/main/java/com/ai/da/mapper/entity/TDesignPythonOutfitDetail.java
@@ -53,6 +53,11 @@ public class TDesignPythonOutfitDetail implements Serializable {
@ApiModelProperty(value = "图层大小")
private String imageSize;
+ /**
+ * imageSize
+ */
+ @ApiModelProperty(value = "imageSize")
+ private String imageSize;
/**
* 对应的图片的绝对路径
*/
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 27a75cda..6ba8b8e1 100644
--- a/src/main/java/com/ai/da/mapper/entity/Workspace.java
+++ b/src/main/java/com/ai/da/mapper/entity/Workspace.java
@@ -62,6 +62,11 @@ public class Workspace implements Serializable {
*/
@ApiModelProperty(value = "人体模型")
private String mannequin;
+ /**
+ * 最后使用的工作空间标识
+ */
+ @ApiModelProperty(value = "最后使用的工作空间标识")
+ private Integer isLastIndex;
/**
* 创建时间
*/
diff --git a/src/main/java/com/ai/da/model/dto/WorkspaceDTO.java b/src/main/java/com/ai/da/model/dto/WorkspaceDTO.java
index ba44148d..1e5a15cf 100644
--- a/src/main/java/com/ai/da/model/dto/WorkspaceDTO.java
+++ b/src/main/java/com/ai/da/model/dto/WorkspaceDTO.java
@@ -9,7 +9,7 @@ import lombok.EqualsAndHashCode;
/**
* 数据传输对象实体类
*
- * @author Arcana
+ * @author SHAHAIBO
* @since 2023-08-01
*/
@Data
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 f84bff17..c213912f 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("整体"),
- 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 05ae46ed..7de6cf41 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("男装"),
- FEMALE("女装"),
- CHILD("童装")
+ MALE("male"),
+ FEMALE("female"),
+ CHILD("child")
;
private String value;
diff --git a/src/main/java/com/ai/da/model/vo/DesignCollectionItemVO.java b/src/main/java/com/ai/da/model/vo/DesignCollectionItemVO.java
index d5f3f8af..dc15cd14 100644
--- a/src/main/java/com/ai/da/model/vo/DesignCollectionItemVO.java
+++ b/src/main/java/com/ai/da/model/vo/DesignCollectionItemVO.java
@@ -16,6 +16,13 @@ public class DesignCollectionItemVO {
@ApiModelProperty("design生成的图片地址 绝对路径")
private String designItemUrl;
+ @ApiModelProperty("t_design_python_outfit id")
+ private Long designOutfitId;
+
+ @ApiModelProperty("t_design_python_outfit id")
+ private String designOutfitUrl;
+
public DesignCollectionItemVO() {
+
}
}
diff --git a/src/main/java/com/ai/da/model/vo/TDesignPythonOutfitDetailVO.java b/src/main/java/com/ai/da/model/vo/TDesignPythonOutfitDetailVO.java
index ffb2600a..9737218e 100644
--- a/src/main/java/com/ai/da/model/vo/TDesignPythonOutfitDetailVO.java
+++ b/src/main/java/com/ai/da/model/vo/TDesignPythonOutfitDetailVO.java
@@ -9,7 +9,7 @@ import io.swagger.annotations.ApiModel;
/**
* design item详情表视图实体类
*
- * @author Arcana
+ * @author SHAHAIBO
* @since 2023-09-04
*/
@Data
diff --git a/src/main/java/com/ai/da/model/vo/TDesignPythonOutfitVO.java b/src/main/java/com/ai/da/model/vo/TDesignPythonOutfitVO.java
index 4d390af6..b391c9d6 100644
--- a/src/main/java/com/ai/da/model/vo/TDesignPythonOutfitVO.java
+++ b/src/main/java/com/ai/da/model/vo/TDesignPythonOutfitVO.java
@@ -10,7 +10,7 @@ import io.swagger.annotations.ApiModel;
/**
* design item表 存对应design的8张图片视图实体类
*
- * @author Arcana
+ * @author SHAHAIBO
* @since 2023-09-04
*/
@Data
diff --git a/src/main/java/com/ai/da/model/vo/WorkspaceVO.java b/src/main/java/com/ai/da/model/vo/WorkspaceVO.java
index 910a1033..0aac9c37 100644
--- a/src/main/java/com/ai/da/model/vo/WorkspaceVO.java
+++ b/src/main/java/com/ai/da/model/vo/WorkspaceVO.java
@@ -1,6 +1,7 @@
package com.ai.da.model.vo;
+import com.ai.da.common.response.PageBaseResponse;
import com.ai.da.mapper.entity.Workspace;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -9,13 +10,18 @@ import io.swagger.annotations.ApiModel;
/**
* 视图实体类
*
- * @author Arcana
+ * @author SHAHAIBO
* @since 2023-08-01
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "WorkspaceVO对象", description = "WorkspaceVO对象")
public class WorkspaceVO extends Workspace {
+
private static final long serialVersionUID = 1L;
+ private Long currentId;
+
+ private PageBaseResponse page;
+
}
diff --git a/src/main/java/com/ai/da/python/PythonService.java b/src/main/java/com/ai/da/python/PythonService.java
index 2b083c7e..12fc6d15 100644
--- a/src/main/java/com/ai/da/python/PythonService.java
+++ b/src/main/java/com/ai/da/python/PythonService.java
@@ -794,7 +794,7 @@ public class PythonService {
//所有的icon都是none
designPythonItemBlouse.setIcon("none");
designPythonItemBlouse.setColor(getRandomColor(elementVO.getColorBoards()));
- if (!elementVO.getDesignPythonItemPrint().getSinglePath().equals("none")
+ if (!elementVO.getDesignPythonItemPrint().getPath().equals("none")
&& elementVO.getDesignPrintPictureTypeLayoutList().contains(type)) {
designPythonItemBlouse.setPrint(CopyUtil.copyObject(elementVO.getDesignPythonItemPrint(), DesignPythonItemPrint.class));
} else {
@@ -997,20 +997,20 @@ public class PythonService {
//print 不取library的 只取element的
DesignPythonItemPrint print = new DesignPythonItemPrint();
if (CollectionUtil.isEmpty(elementVO.getPrintBoardElements())) {
- print.setSinglePath("none");
+ print.setPath("none");
return print;
}
List printBoardElements = elementVO.getPrintBoardElements()
.stream()
.filter(f -> !elementVO.getHasUseMd5List().contains(f.getMd5())).collect(Collectors.toList());
if (CollectionUtil.isEmpty(printBoardElements)) {
- print.setSinglePath("none");
+ print.setPath("none");
return print;
}
switch (designPrintPictureType) {
case NO:
//print 已用完
- print.setSinglePath("none");
+ print.setPath("none");
return print;
case NO_PIN:
printBoardElements = printBoardElements.stream().filter(f -> f.getHasPin() == 0).collect(Collectors.toList());
@@ -1022,14 +1022,14 @@ public class PythonService {
}
if (printBoardElements.size() == 1) {
- print.setSinglePath(printBoardElements.get(0).getUrl());
+ print.setPath(printBoardElements.get(0).getUrl());
elementVO.getHasUseMd5List().add(printBoardElements.get(0).getMd5());
return print;
}
long maxPrint = printBoardElements.size();
long minPrint = 0;
Long randomIndex = RandomsUtil.randomSysFile(minPrint, maxPrint);
- print.setSinglePath(printBoardElements.get(randomIndex.intValue()).getUrl());
+ print.setPath(printBoardElements.get(randomIndex.intValue()).getUrl());
elementVO.getHasUseMd5List().add(printBoardElements.get(randomIndex.intValue()).getMd5());
return print;
}
@@ -1522,13 +1522,13 @@ public class PythonService {
.build();
MediaType mediaType = MediaType.parse("application/json");
//关闭FastJson的引用检测 防止出现$ref 现象
- String param = JSON.toJSONString(designPythonObjects, SerializerFeature.DisableCircularReferenceDetect);
+// String param = JSON.toJSONString(designPythonObjects, SerializerFeature.DisableCircularReferenceDetect);
// String param = "{\"objects\":[{\"basic\":{\"body_point_test\":{\"shoulder_left\":[755,519],\"toe_right\":[850,1355],\"ear_point_left\":[802,439],\"shoulder_right\":[912,519],\"waistband_right\":[891,725],\"hand_point_right\":[915,886],\"waistband_left\":[777,725],\"hand_point_left\":[754,886],\"head_point_left\":[804,424],\"head_point_right\":[864,424],\"ear_point_right\":[865,438],\"toe_left\":[817,1355],\"foot_length\":[784,1336,825,1336],\"head_point_up\":[834,390]},\"scale_bag\":0.7,\"scale_earrings\":0.16,\"self_template\":false,\"single_overall\":\"overall\",\"switch_category\":\"\"},\"items\":[{\"color\":\"50 187 147\",\"icon\":\"none\",\"path\":\"https://www.aida.com.hk/download/202308/userFile/collection/Sketchboard/42/048419db-38c4-4aee-85a7-33f0666b18d2.jpg\",\"print\":{\"path\":\"https://www.aida.com.hk/download/202304/pythonFile/generatePrint/generatePrint-d7a67a96-83f9-429f-9028-3e1697501088.jpg\"},\"type\":\"Outwear\",\"image_id\":53547},{\"color\":\"137 50 50\",\"icon\":\"none\",\"path\":\"https://www.aida.com.hk/download/sys/images/skirt/0628001153.jpg\",\"print\":{\"path\":\"none\"},\"type\":\"Skirt\",\"image_id\":53548},{\"path\":\"https://www.aida.com.hk/download/sys/accessories/hairstyle/hairstyle_242.jpg\",\"type\":\"Hairstyle\",\"image_id\":411},{\"color\":\"31 76 171\",\"path\":\"https://www.aida.com.hk/download/sys/accessories/shoes/shoes_11.jpg\",\"type\":\"Shoes\",\"image_id\":167},{\"path\":\"https://www.aida.com.hk/download/sys/accessories/earring/earrings_12.png\",\"type\":\"Earring\",\"image_id\":93},{\"body_path\":\"model_1693218345.2714431.png\",\"type\":\"Body\",\"image_id\":0}]},{\"basic\":{\"body_point_test\":{\"shoulder_left\":[755,519],\"toe_right\":[850,1355],\"ear_point_left\":[802,439],\"shoulder_right\":[912,519],\"waistband_right\":[891,725],\"hand_point_right\":[915,886],\"waistband_left\":[777,725],\"hand_point_left\":[754,886],\"head_point_left\":[804,424],\"head_point_right\":[864,424],\"ear_point_right\":[865,438],\"toe_left\":[817,1355],\"foot_length\":[784,1336,825,1336],\"head_point_up\":[834,390]},\"scale_bag\":0.7,\"scale_earrings\":0.16,\"self_template\":false,\"single_overall\":\"overall\",\"switch_category\":\"\"},\"items\":[{\"color\":\"103 74 74\",\"icon\":\"none\",\"path\":\"https://www.aida.com.hk/download/sys/images/dress/0902005000.jpg\",\"print\":{\"path\":\"https://www.aida.com.hk/download/202304/userFile/library/Printboard/42/4ba535c2-a08b-4114-826b-a87885fd3623Fabric-03.png\"},\"type\":\"Dress\",\"image_id\":53549},{\"color\":\"204 182 182\",\"icon\":\"none\",\"path\":\"https://www.aida.com.hk/download/sys/images/skirt/0825000582.jpg\",\"print\":{\"path\":\"https://www.aida.com.hk/download/202304/userFile/library/Printboard/42/4ba535c2-a08b-4114-826b-a87885fd3623Fabric-03.png\"},\"type\":\"Skirt\",\"image_id\":53550},{\"path\":\"https://www.aida.com.hk/download/sys/accessories/hairstyle/hairstyle_p2529.jpg\",\"type\":\"Hairstyle\",\"image_id\":898},{\"color\":\"137 50 50\",\"path\":\"https://www.aida.com.hk/download/sys/accessories/shoes/shoes_15.png\",\"type\":\"Shoes\",\"image_id\":171},{\"path\":\"https://www.aida.com.hk/download/sys/accessories/earring/earrings_15.png\",\"type\":\"Earring\",\"image_id\":96},{\"body_path\":\"model_1693218345.2714431.png\",\"type\":\"Body\",\"image_id\":0}]},{\"basic\":{\"body_point_test\":{\"shoulder_left\":[755,519],\"toe_right\":[850,1355],\"ear_point_left\":[802,439],\"shoulder_right\":[912,519],\"waistband_right\":[891,725],\"hand_point_right\":[915,886],\"waistband_left\":[777,725],\"hand_point_left\":[754,886],\"head_point_left\":[804,424],\"head_point_right\":[864,424],\"ear_point_right\":[865,438],\"toe_left\":[817,1355],\"foot_length\":[784,1336,825,1336],\"head_point_up\":[834,390]},\"scale_bag\":0.7,\"scale_earrings\":0.16,\"self_template\":false,\"single_overall\":\"overall\",\"switch_category\":\"\"},\"items\":[{\"color\":\"49 127 162\",\"icon\":\"none\",\"path\":\"https://www.aida.com.hk/download/sys/images/outwear/0628001185.jpg\",\"print\":{\"path\":\"https://www.aida.com.hk/download/202308/pythonFile/generatePrint/generatePrint-487e93e6-1e21-46b8-b821-3188251dbdbc.jpg\"},\"type\":\"Outwear\",\"image_id\":53551},{\"color\":\"103 74 74\",\"icon\":\"none\",\"path\":\"https://www.aida.com.hk/download/sys/images/trousers/0628000635.jpg\",\"print\":{\"path\":\"https://www.aida.com.hk/download/202308/pythonFile/generatePrint/generatePrint-487e93e6-1e21-46b8-b821-3188251dbdbc.jpg\"},\"type\":\"Trousers\",\"image_id\":53552},{\"path\":\"https://www.aida.com.hk/download/sys/accessories/hairstyle/hairstyle_p2102.jpg\",\"type\":\"Hairstyle\",\"image_id\":471},{\"color\":\"137 50 50\",\"path\":\"https://www.aida.com.hk/download/sys/accessories/shoes/shoes_41.jpg\",\"type\":\"Shoes\",\"image_id\":344},{\"path\":\"https://www.aida.com.hk/download/sys/accessories/earring/earrings_5.png\",\"type\":\"Earring\",\"image_id\":87},{\"body_path\":\"model_1693218345.2714431.png\",\"type\":\"Body\",\"image_id\":0}]},{\"basic\":{\"body_point_test\":{\"shoulder_left\":[755,519],\"toe_right\":[850,1355],\"ear_point_left\":[802,439],\"shoulder_right\":[912,519],\"waistband_right\":[891,725],\"hand_point_right\":[915,886],\"waistband_left\":[777,725],\"hand_point_left\":[754,886],\"head_point_left\":[804,424],\"head_point_right\":[864,424],\"ear_point_right\":[865,438],\"toe_left\":[817,1355],\"foot_length\":[784,1336,825,1336],\"head_point_up\":[834,390]},\"scale_bag\":0.7,\"scale_earrings\":0.16,\"self_template\":false,\"single_overall\":\"overall\",\"switch_category\":\"\"},\"items\":[{\"color\":\"31 76 171\",\"icon\":\"none\",\"path\":\"https://www.aida.com.hk/download/sys/images/outwear/0902002198.jpg\",\"print\":{\"path\":\"none\"},\"type\":\"Outwear\",\"image_id\":53553},{\"color\":\"50 187 147\",\"icon\":\"none\",\"path\":\"https://www.aida.com.hk/download/sys/images/skirt/0916000791.jpg\",\"print\":{\"path\":\"none\"},\"type\":\"Skirt\",\"image_id\":53554},{\"path\":\"https://www.aida.com.hk/download/sys/accessories/hairstyle/hairstyle_p2518.jpg\",\"type\":\"Hairstyle\",\"image_id\":887},{\"color\":\"137 50 50\",\"path\":\"https://www.aida.com.hk/download/sys/accessories/shoes/shoes_15.png\",\"type\":\"Shoes\",\"image_id\":171},{\"path\":\"https://www.aida.com.hk/download/sys/accessories/earring/earrings_11.png\",\"type\":\"Earring\",\"image_id\":92},{\"body_path\":\"model_1693218345.2714431.png\",\"type\":\"Body\",\"image_id\":0}]},{\"basic\":{\"body_point_test\":{\"shoulder_left\":[755,519],\"toe_right\":[850,1355],\"ear_point_left\":[802,439],\"shoulder_right\":[912,519],\"waistband_right\":[891,725],\"hand_point_right\":[915,886],\"waistband_left\":[777,725],\"hand_point_left\":[754,886],\"head_point_left\":[804,424],\"head_point_right\":[864,424],\"ear_point_right\":[865,438],\"toe_left\":[817,1355],\"foot_length\":[784,1336,825,1336],\"head_point_up\":[834,390]},\"scale_bag\":0.7,\"scale_earrings\":0.16,\"self_template\":false,\"single_overall\":\"overall\",\"switch_category\":\"\"},\"items\":[{\"color\":\"204 182 182\",\"icon\":\"none\",\"path\":\"https://www.aida.com.hk/download/sys/images/outwear/0902000892.jpg\",\"print\":{\"path\":\"none\"},\"type\":\"Outwear\",\"image_id\":53555},{\"color\":\"204 182 182\",\"icon\":\"none\",\"path\":\"https://www.aida.com.hk/download/sys/images/trousers/0916000460.jpg\",\"print\":{\"path\":\"none\"},\"type\":\"Trousers\",\"image_id\":53556},{\"path\":\"https://www.aida.com.hk/download/sys/accessories/hairstyle/hairstyle_204.jpg\",\"type\":\"Hairstyle\",\"image_id\":294},{\"color\":\"49 127 162\",\"path\":\"https://www.aida.com.hk/download/sys/accessories/shoes/shoes_15.png\",\"type\":\"Shoes\",\"image_id\":171},{\"path\":\"https://www.aida.com.hk/download/sys/accessories/earring/earrings_5.png\",\"type\":\"Earring\",\"image_id\":87},{\"body_path\":\"model_1693218345.2714431.png\",\"type\":\"Body\",\"image_id\":0}]},{\"basic\":{\"body_point_test\":{\"shoulder_left\":[755,519],\"toe_right\":[850,1355],\"ear_point_left\":[802,439],\"shoulder_right\":[912,519],\"waistband_right\":[891,725],\"hand_point_right\":[915,886],\"waistband_left\":[777,725],\"hand_point_left\":[754,886],\"head_point_left\":[804,424],\"head_point_right\":[864,424],\"ear_point_right\":[865,438],\"toe_left\":[817,1355],\"foot_length\":[784,1336,825,1336],\"head_point_up\":[834,390]},\"scale_bag\":0.7,\"scale_earrings\":0.16,\"self_template\":false,\"single_overall\":\"overall\",\"switch_category\":\"\"},\"items\":[{\"color\":\"204 182 182\",\"icon\":\"none\",\"path\":\"https://www.aida.com.hk/download/sys/images/blouse/0902002193.jpg\",\"print\":{\"path\":\"none\"},\"type\":\"Blouse\",\"image_id\":53557},{\"color\":\"50 187 147\",\"icon\":\"none\",\"path\":\"https://www.aida.com.hk/download/sys/images/skirt/0902002112.jpg\",\"print\":{\"path\":\"none\"},\"type\":\"Skirt\",\"image_id\":53558},{\"path\":\"https://www.aida.com.hk/download/sys/accessories/hairstyle/hairstyle_p2186.jpg\",\"type\":\"Hairstyle\",\"image_id\":555},{\"color\":\"204 182 182\",\"path\":\"https://www.aida.com.hk/download/sys/accessories/shoes/shoes_11.jpg\",\"type\":\"Shoes\",\"image_id\":167},{\"path\":\"https://www.aida.com.hk/download/sys/accessories/earring/earrings_12.png\",\"type\":\"Earring\",\"image_id\":93},{\"body_path\":\"model_1693218345.2714431.png\",\"type\":\"Body\",\"image_id\":0}]},{\"basic\":{\"body_point_test\":{\"shoulder_left\":[755,519],\"toe_right\":[850,1355],\"ear_point_left\":[802,439],\"shoulder_right\":[912,519],\"waistband_right\":[891,725],\"hand_point_right\":[915,886],\"waistband_left\":[777,725],\"hand_point_left\":[754,886],\"head_point_left\":[804,424],\"head_point_right\":[864,424],\"ear_point_right\":[865,438],\"toe_left\":[817,1355],\"foot_length\":[784,1336,825,1336],\"head_point_up\":[834,390]},\"scale_bag\":0.7,\"scale_earrings\":0.16,\"self_template\":false,\"single_overall\":\"overall\",\"switch_category\":\"\"},\"items\":[{\"color\":\"204 182 182\",\"icon\":\"none\",\"path\":\"https://www.aida.com.hk/download/sys/images/blouse/0902002193.jpg\",\"print\":{\"path\":\"none\"},\"type\":\"Blouse\",\"image_id\":53557},{\"color\":\"137 50 50\",\"icon\":\"none\",\"path\":\"https://www.aida.com.hk/download/sys/images/skirt/0902002861.jpg\",\"print\":{\"path\":\"none\"},\"type\":\"Skirt\",\"image_id\":53560},{\"path\":\"https://www.aida.com.hk/download/sys/accessories/hairstyle/hairstyle_p2128.jpg\",\"type\":\"Hairstyle\",\"image_id\":497},{\"color\":\"49 127 162\",\"path\":\"https://www.aida.com.hk/download/sys/accessories/shoes/shoes_39.jpg\",\"type\":\"Shoes\",\"image_id\":192},{\"path\":\"https://www.aida.com.hk/download/sys/accessories/earring/earrings_4.png\",\"type\":\"Earring\",\"image_id\":86},{\"body_path\":\"model_1693218345.2714431.png\",\"type\":\"Body\",\"image_id\":0}]},{\"basic\":{\"body_point_test\":{\"shoulder_left\":[755,519],\"toe_right\":[850,1355],\"ear_point_left\":[802,439],\"shoulder_right\":[912,519],\"waistband_right\":[891,725],\"hand_point_right\":[915,886],\"waistband_left\":[777,725],\"hand_point_left\":[754,886],\"head_point_left\":[804,424],\"head_point_right\":[864,424],\"ear_point_right\":[865,438],\"toe_left\":[817,1355],\"foot_length\":[784,1336,825,1336],\"head_point_up\":[834,390]},\"scale_bag\":0.7,\"scale_earrings\":0.16,\"self_template\":false,\"single_overall\":\"overall\",\"switch_category\":\"\"},\"items\":[{\"color\":\"204 182 182\",\"icon\":\"none\",\"path\":\"https://www.aida.com.hk/download/sys/images/blouse/0902002193.jpg\",\"print\":{\"path\":\"none\"},\"type\":\"Blouse\",\"image_id\":53557},{\"color\":\"49 127 162\",\"icon\":\"none\",\"path\":\"https://www.aida.com.hk/download/sys/images/skirt/0902000567.jpg\",\"print\":{\"path\":\"none\"},\"type\":\"Skirt\",\"image_id\":53562},{\"path\":\"https://www.aida.com.hk/download/sys/accessories/hairstyle/hairstyle_p2357.jpg\",\"type\":\"Hairstyle\",\"image_id\":726},{\"color\":\"137 50 50\",\"path\":\"https://www.aida.com.hk/download/sys/accessories/shoes/shoes_6.jpg\",\"type\":\"Shoes\",\"image_id\":163},{\"path\":\"https://www.aida.com.hk/download/sys/accessories/earring/earrings_15.png\",\"type\":\"Earring\",\"image_id\":96},{\"body_path\":\"model_1693218345.2714431.png\",\"type\":\"Body\",\"image_id\":0}]}]}";
+ String param = "{\"objects\":[{\"basic\":{\"body_point_test\":{\"shoulder_left\":[755,519],\"toe_right\":[850,1355],\"ear_point_left\":[802,439],\"shoulder_right\":[912,519],\"waistband_right\":[891,725],\"hand_point_right\":[915,886],\"waistband_left\":[777,725],\"hand_point_left\":[754,886],\"head_point_left\":[804,424],\"head_point_right\":[864,424],\"ear_point_right\":[865,438],\"toe_left\":[817,1355],\"foot_length\":[784,1336,825,1336],\"head_point_up\":[834,390]},\"scale_bag\":0.7,\"scale_earrings\":0.16,\"self_template\":false,\"single_overall\":\"overall\",\"switch_category\":\"\"},\"items\":[{\"color\":\"50 187 147\",\"icon\":\"none\",\"path\":\"https://www.aida.com.hk/download/202308/userFile/collection/Sketchboard/42/048419db-38c4-4aee-85a7-33f0666b18d2.jpg\",\"print\":{\"IfSingle\":false,\"level1Type\":\"Printboard\",\"location\":[],\"path\":\"https://www.aida.com.hk/download/202308/pythonFile/generatePrint/generatePrint-14459173-d338-4425-8fcb-8755ceb254bc.jpg\",\"scale\":0.1},\"type\":\"Outwear\",\"image_id\":53547},{\"color\":\"137 50 50\",\"icon\":\"none\",\"path\":\"https://www.aida.com.hk/download/sys/images/skirt/0628001153.jpg\",\"print\":{\"path\":\"none\",\"IfSingle\":false},\"type\":\"Skirt\",\"image_id\":53548},{\"path\":\"https://www.aida.com.hk/download/sys/accessories/hairstyle/hairstyle_242.jpg\",\"type\":\"Hairstyle\",\"image_id\":411},{\"color\":\"31 76 171\",\"path\":\"https://www.aida.com.hk/download/sys/accessories/shoes/shoes_11.jpg\",\"type\":\"Shoes\",\"image_id\":167},{\"path\":\"https://www.aida.com.hk/download/sys/accessories/earring/earrings_12.png\",\"type\":\"Earring\",\"image_id\":93},{\"body_path\":\"model_1693218345.2714431.png\",\"type\":\"Body\",\"image_id\":0}]},{\"basic\":{\"body_point_test\":{\"shoulder_left\":[755,519],\"toe_right\":[850,1355],\"ear_point_left\":[802,439],\"shoulder_right\":[912,519],\"waistband_right\":[891,725],\"hand_point_right\":[915,886],\"waistband_left\":[777,725],\"hand_point_left\":[754,886],\"head_point_left\":[804,424],\"head_point_right\":[864,424],\"ear_point_right\":[865,438],\"toe_left\":[817,1355],\"foot_length\":[784,1336,825,1336],\"head_point_up\":[834,390]},\"scale_bag\":0.7,\"scale_earrings\":0.16,\"self_template\":false,\"single_overall\":\"overall\",\"switch_category\":\"\"},\"items\":[{\"color\":\"103 74 74\",\"icon\":\"none\",\"path\":\"https://www.aida.com.hk/download/sys/images/dress/0902005000.jpg\",\"print\":{\"path\":\"https://www.aida.com.hk/download/202304/userFile/library/Printboard/42/4ba535c2-a08b-4114-826b-a87885fd3623Fabric-03.png\",\"IfSingle\":false},\"type\":\"Dress\",\"image_id\":53549},{\"color\":\"204 182 182\",\"icon\":\"none\",\"path\":\"https://www.aida.com.hk/download/sys/images/skirt/0825000582.jpg\",\"print\":{\"path\":\"https://www.aida.com.hk/download/202304/userFile/library/Printboard/42/4ba535c2-a08b-4114-826b-a87885fd3623Fabric-03.png\",\"IfSingle\":false},\"type\":\"Skirt\",\"image_id\":53550},{\"path\":\"https://www.aida.com.hk/download/sys/accessories/hairstyle/hairstyle_p2529.jpg\",\"type\":\"Hairstyle\",\"image_id\":898},{\"color\":\"137 50 50\",\"path\":\"https://www.aida.com.hk/download/sys/accessories/shoes/shoes_15.png\",\"type\":\"Shoes\",\"image_id\":171},{\"path\":\"https://www.aida.com.hk/download/sys/accessories/earring/earrings_15.png\",\"type\":\"Earring\",\"image_id\":96},{\"body_path\":\"model_1693218345.2714431.png\",\"type\":\"Body\",\"image_id\":0}]},{\"basic\":{\"body_point_test\":{\"shoulder_left\":[755,519],\"toe_right\":[850,1355],\"ear_point_left\":[802,439],\"shoulder_right\":[912,519],\"waistband_right\":[891,725],\"hand_point_right\":[915,886],\"waistband_left\":[777,725],\"hand_point_left\":[754,886],\"head_point_left\":[804,424],\"head_point_right\":[864,424],\"ear_point_right\":[865,438],\"toe_left\":[817,1355],\"foot_length\":[784,1336,825,1336],\"head_point_up\":[834,390]},\"scale_bag\":0.7,\"scale_earrings\":0.16,\"self_template\":false,\"single_overall\":\"overall\",\"switch_category\":\"\"},\"items\":[{\"color\":\"49 127 162\",\"icon\":\"none\",\"path\":\"https://www.aida.com.hk/download/sys/images/outwear/0628001185.jpg\",\"print\":{\"path\":\"https://www.aida.com.hk/download/202308/pythonFile/generatePrint/generatePrint-487e93e6-1e21-46b8-b821-3188251dbdbc.jpg\"},\"type\":\"Outwear\",\"image_id\":53551},{\"color\":\"103 74 74\",\"icon\":\"none\",\"path\":\"https://www.aida.com.hk/download/sys/images/trousers/0628000635.jpg\",\"print\":{\"path\":\"https://www.aida.com.hk/download/202308/pythonFile/generatePrint/generatePrint-487e93e6-1e21-46b8-b821-3188251dbdbc.jpg\"},\"type\":\"Trousers\",\"image_id\":53552},{\"path\":\"https://www.aida.com.hk/download/sys/accessories/hairstyle/hairstyle_p2102.jpg\",\"type\":\"Hairstyle\",\"image_id\":471},{\"color\":\"137 50 50\",\"path\":\"https://www.aida.com.hk/download/sys/accessories/shoes/shoes_41.jpg\",\"type\":\"Shoes\",\"image_id\":344},{\"path\":\"https://www.aida.com.hk/download/sys/accessories/earring/earrings_5.png\",\"type\":\"Earring\",\"image_id\":87},{\"body_path\":\"model_1693218345.2714431.png\",\"type\":\"Body\",\"image_id\":0}]},{\"basic\":{\"body_point_test\":{\"shoulder_left\":[755,519],\"toe_right\":[850,1355],\"ear_point_left\":[802,439],\"shoulder_right\":[912,519],\"waistband_right\":[891,725],\"hand_point_right\":[915,886],\"waistband_left\":[777,725],\"hand_point_left\":[754,886],\"head_point_left\":[804,424],\"head_point_right\":[864,424],\"ear_point_right\":[865,438],\"toe_left\":[817,1355],\"foot_length\":[784,1336,825,1336],\"head_point_up\":[834,390]},\"scale_bag\":0.7,\"scale_earrings\":0.16,\"self_template\":false,\"single_overall\":\"overall\",\"switch_category\":\"\"},\"items\":[{\"color\":\"31 76 171\",\"icon\":\"none\",\"path\":\"https://www.aida.com.hk/download/sys/images/outwear/0902002198.jpg\",\"print\":{\"path\":\"none\",\"IfSingle\":false},\"type\":\"Outwear\",\"image_id\":53553},{\"color\":\"50 187 147\",\"icon\":\"none\",\"path\":\"https://www.aida.com.hk/download/sys/images/skirt/0916000791.jpg\",\"print\":{\"path\":\"none\",\"IfSingle\":false},\"type\":\"Skirt\",\"image_id\":53554},{\"path\":\"https://www.aida.com.hk/download/sys/accessories/hairstyle/hairstyle_p2518.jpg\",\"type\":\"Hairstyle\",\"image_id\":887},{\"color\":\"137 50 50\",\"path\":\"https://www.aida.com.hk/download/sys/accessories/shoes/shoes_15.png\",\"type\":\"Shoes\",\"image_id\":171},{\"path\":\"https://www.aida.com.hk/download/sys/accessories/earring/earrings_11.png\",\"type\":\"Earring\",\"image_id\":92},{\"body_path\":\"model_1693218345.2714431.png\",\"type\":\"Body\",\"image_id\":0}]},{\"basic\":{\"body_point_test\":{\"shoulder_left\":[755,519],\"toe_right\":[850,1355],\"ear_point_left\":[802,439],\"shoulder_right\":[912,519],\"waistband_right\":[891,725],\"hand_point_right\":[915,886],\"waistband_left\":[777,725],\"hand_point_left\":[754,886],\"head_point_left\":[804,424],\"head_point_right\":[864,424],\"ear_point_right\":[865,438],\"toe_left\":[817,1355],\"foot_length\":[784,1336,825,1336],\"head_point_up\":[834,390]},\"scale_bag\":0.7,\"scale_earrings\":0.16,\"self_template\":false,\"single_overall\":\"overall\",\"switch_category\":\"\"},\"items\":[{\"color\":\"204 182 182\",\"icon\":\"none\",\"path\":\"https://www.aida.com.hk/download/sys/images/outwear/0902000892.jpg\",\"print\":{\"path\":\"none\",\"IfSingle\":false},\"type\":\"Outwear\",\"image_id\":53555},{\"color\":\"204 182 182\",\"icon\":\"none\",\"path\":\"https://www.aida.com.hk/download/sys/images/trousers/0916000460.jpg\",\"print\":{\"path\":\"none\",\"IfSingle\":false},\"type\":\"Trousers\",\"image_id\":53556},{\"path\":\"https://www.aida.com.hk/download/sys/accessories/hairstyle/hairstyle_204.jpg\",\"type\":\"Hairstyle\",\"image_id\":294},{\"color\":\"49 127 162\",\"path\":\"https://www.aida.com.hk/download/sys/accessories/shoes/shoes_15.png\",\"type\":\"Shoes\",\"image_id\":171},{\"path\":\"https://www.aida.com.hk/download/sys/accessories/earring/earrings_5.png\",\"type\":\"Earring\",\"image_id\":87},{\"body_path\":\"model_1693218345.2714431.png\",\"type\":\"Body\",\"image_id\":0}]},{\"basic\":{\"body_point_test\":{\"shoulder_left\":[755,519],\"toe_right\":[850,1355],\"ear_point_left\":[802,439],\"shoulder_right\":[912,519],\"waistband_right\":[891,725],\"hand_point_right\":[915,886],\"waistband_left\":[777,725],\"hand_point_left\":[754,886],\"head_point_left\":[804,424],\"head_point_right\":[864,424],\"ear_point_right\":[865,438],\"toe_left\":[817,1355],\"foot_length\":[784,1336,825,1336],\"head_point_up\":[834,390]},\"scale_bag\":0.7,\"scale_earrings\":0.16,\"self_template\":false,\"single_overall\":\"overall\",\"switch_category\":\"\"},\"items\":[{\"color\":\"204 182 182\",\"icon\":\"none\",\"path\":\"https://www.aida.com.hk/download/sys/images/blouse/0902002193.jpg\",\"print\":{\"path\":\"none\",\"IfSingle\":false},\"type\":\"Blouse\",\"image_id\":53557},{\"color\":\"50 187 147\",\"icon\":\"none\",\"path\":\"https://www.aida.com.hk/download/sys/images/skirt/0902002112.jpg\",\"print\":{\"path\":\"none\",\"IfSingle\":false},\"type\":\"Skirt\",\"image_id\":53558},{\"path\":\"https://www.aida.com.hk/download/sys/accessories/hairstyle/hairstyle_p2186.jpg\",\"type\":\"Hairstyle\",\"image_id\":555},{\"color\":\"204 182 182\",\"path\":\"https://www.aida.com.hk/download/sys/accessories/shoes/shoes_11.jpg\",\"type\":\"Shoes\",\"image_id\":167},{\"path\":\"https://www.aida.com.hk/download/sys/accessories/earring/earrings_12.png\",\"type\":\"Earring\",\"image_id\":93},{\"body_path\":\"model_1693218345.2714431.png\",\"type\":\"Body\",\"image_id\":0}]},{\"basic\":{\"body_point_test\":{\"shoulder_left\":[755,519],\"toe_right\":[850,1355],\"ear_point_left\":[802,439],\"shoulder_right\":[912,519],\"waistband_right\":[891,725],\"hand_point_right\":[915,886],\"waistband_left\":[777,725],\"hand_point_left\":[754,886],\"head_point_left\":[804,424],\"head_point_right\":[864,424],\"ear_point_right\":[865,438],\"toe_left\":[817,1355],\"foot_length\":[784,1336,825,1336],\"head_point_up\":[834,390]},\"scale_bag\":0.7,\"scale_earrings\":0.16,\"self_template\":false,\"single_overall\":\"overall\",\"switch_category\":\"\"},\"items\":[{\"color\":\"204 182 182\",\"icon\":\"none\",\"path\":\"https://www.aida.com.hk/download/sys/images/blouse/0902002193.jpg\",\"print\":{\"path\":\"none\",\"IfSingle\":false},\"type\":\"Blouse\",\"image_id\":53557},{\"color\":\"137 50 50\",\"icon\":\"none\",\"path\":\"https://www.aida.com.hk/download/sys/images/skirt/0902002861.jpg\",\"print\":{\"path\":\"none\",\"IfSingle\":false},\"type\":\"Skirt\",\"image_id\":53560},{\"path\":\"https://www.aida.com.hk/download/sys/accessories/hairstyle/hairstyle_p2128.jpg\",\"type\":\"Hairstyle\",\"image_id\":497},{\"color\":\"49 127 162\",\"path\":\"https://www.aida.com.hk/download/sys/accessories/shoes/shoes_39.jpg\",\"type\":\"Shoes\",\"image_id\":192},{\"path\":\"https://www.aida.com.hk/download/sys/accessories/earring/earrings_4.png\",\"type\":\"Earring\",\"image_id\":86},{\"body_path\":\"model_1693218345.2714431.png\",\"type\":\"Body\",\"image_id\":0}]},{\"basic\":{\"body_point_test\":{\"shoulder_left\":[755,519],\"toe_right\":[850,1355],\"ear_point_left\":[802,439],\"shoulder_right\":[912,519],\"waistband_right\":[891,725],\"hand_point_right\":[915,886],\"waistband_left\":[777,725],\"hand_point_left\":[754,886],\"head_point_left\":[804,424],\"head_point_right\":[864,424],\"ear_point_right\":[865,438],\"toe_left\":[817,1355],\"foot_length\":[784,1336,825,1336],\"head_point_up\":[834,390]},\"scale_bag\":0.7,\"scale_earrings\":0.16,\"self_template\":false,\"single_overall\":\"overall\",\"switch_category\":\"\"},\"items\":[{\"color\":\"204 182 182\",\"icon\":\"none\",\"path\":\"https://www.aida.com.hk/download/sys/images/blouse/0902002193.jpg\",\"print\":{\"path\":\"none\",\"IfSingle\":false},\"type\":\"Blouse\",\"image_id\":53557},{\"color\":\"49 127 162\",\"icon\":\"none\",\"path\":\"https://www.aida.com.hk/download/sys/images/skirt/0902000567.jpg\",\"print\":{\"path\":\"none\",\"IfSingle\":false},\"type\":\"Skirt\",\"image_id\":53562},{\"path\":\"https://www.aida.com.hk/download/sys/accessories/hairstyle/hairstyle_p2357.jpg\",\"type\":\"Hairstyle\",\"image_id\":726},{\"color\":\"137 50 50\",\"path\":\"https://www.aida.com.hk/download/sys/accessories/shoes/shoes_6.jpg\",\"type\":\"Shoes\",\"image_id\":163},{\"path\":\"https://www.aida.com.hk/download/sys/accessories/earring/earrings_15.png\",\"type\":\"Earring\",\"image_id\":96},{\"body_path\":\"model_1693218345.2714431.png\",\"type\":\"Body\",\"image_id\":0}]}]}";
log.info("design请求python 参数:####{}", param);
RequestBody body = RequestBody.create(mediaType, param);
Request request = new Request.Builder()
.url("http://18.167.251.121:9991/api/design")
-// .url("http://18.167.251.121:9991")
// .url(accessPythonIp + ":10200/aifda/api/v1.0/generate")
.method("POST", body)
.addHeader("Authorization", "Basic YWlkbGFiOjEyMw==")
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 90c60ba3..cad3e596 100644
--- a/src/main/java/com/ai/da/python/vo/DesignPythonItem.java
+++ b/src/main/java/com/ai/da/python/vo/DesignPythonItem.java
@@ -52,6 +52,10 @@ public class DesignPythonItem {
* body 对应路径(后面去掉)
*/
private String body_mask_path;
+ /**
+ * python_t_all_info image_id
+ */
+ private Long imageId;
/**
* url在t_sys_file中的id
diff --git a/src/main/java/com/ai/da/service/DesignService.java b/src/main/java/com/ai/da/service/DesignService.java
index 5c84650f..282548d0 100644
--- a/src/main/java/com/ai/da/service/DesignService.java
+++ b/src/main/java/com/ai/da/service/DesignService.java
@@ -22,7 +22,7 @@ public interface DesignService extends IService {
* @param designDTO
* @return
*/
- JSONObject designCollection(DesignCollectionDTO designDTO);
+ DesignCollectionVO designCollection(DesignCollectionDTO designDTO);
/**
* redesign
diff --git a/src/main/java/com/ai/da/service/ITDesignPythonOutfitDetailService.java b/src/main/java/com/ai/da/service/ITDesignPythonOutfitDetailService.java
index de5e9889..182aa990 100644
--- a/src/main/java/com/ai/da/service/ITDesignPythonOutfitDetailService.java
+++ b/src/main/java/com/ai/da/service/ITDesignPythonOutfitDetailService.java
@@ -12,7 +12,7 @@ import java.util.List;
/**
* design item详情表 服务类
*
- * @author Arcana
+ * @author SHAHAIBO
* @since 2023-09-04
*/
public interface ITDesignPythonOutfitDetailService extends IService {
diff --git a/src/main/java/com/ai/da/service/ITDesignPythonOutfitService.java b/src/main/java/com/ai/da/service/ITDesignPythonOutfitService.java
index e012ee0e..a82a0d86 100644
--- a/src/main/java/com/ai/da/service/ITDesignPythonOutfitService.java
+++ b/src/main/java/com/ai/da/service/ITDesignPythonOutfitService.java
@@ -8,7 +8,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
/**
* design item表 存对应design的8张图片 服务类
*
- * @author Arcana
+ * @author SHAHAIBO
* @since 2023-09-04
*/
public interface ITDesignPythonOutfitService extends IService {
diff --git a/src/main/java/com/ai/da/service/PythonTAllInfoService.java b/src/main/java/com/ai/da/service/PythonTAllInfoService.java
new file mode 100644
index 00000000..9b329cfc
--- /dev/null
+++ b/src/main/java/com/ai/da/service/PythonTAllInfoService.java
@@ -0,0 +1,18 @@
+package com.ai.da.service;
+
+
+
+import com.ai.da.mapper.entity.PythonTAllInfo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * (PythonTAllInfo)表服务接口
+ *
+ * @author SHAHAIBO
+ * @since 2023-09-08 17:03:47
+ */
+public interface PythonTAllInfoService extends IService {
+
+
+ Long getImageIdByPath(String path);
+}
diff --git a/src/main/java/com/ai/da/service/WorkspaceService.java b/src/main/java/com/ai/da/service/WorkspaceService.java
index 701d68f8..c7ad9729 100644
--- a/src/main/java/com/ai/da/service/WorkspaceService.java
+++ b/src/main/java/com/ai/da/service/WorkspaceService.java
@@ -14,7 +14,7 @@ import java.util.List;
/**
* 服务类
*
- * @author Arcana
+ * @author SHAHAIBO
* @since 2023-08-01
*/
public interface WorkspaceService extends IService {
@@ -30,7 +30,9 @@ public interface WorkspaceService extends IService {
boolean saveOrUpdate(Workspace workspace);
- IPage getPage(WorkspaceDTO query);
+ WorkspaceVO getPage(WorkspaceDTO query);
List getEnumValues(String enumName);
+
+ Workspace getByIdNew(Long id);
}
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 65f2f5cb..4fff2496 100644
--- a/src/main/java/com/ai/da/service/impl/CollectionElementServiceImpl.java
+++ b/src/main/java/com/ai/da/service/impl/CollectionElementServiceImpl.java
@@ -337,33 +337,34 @@ public class CollectionElementServiceImpl extends ServiceImpl printBoardIds = designDTO.getMarketingSketchs().stream()
- .filter(f ->f.getDesignType().equals(DesignTypeEnum.COLLECTION.getRealName()))
- .map(DesignCollectionElementDTO::getId)
- .collect(Collectors.toList());
- if(!CollectionUtils.isEmpty(printBoardIds)){
- List marketingSketchElements = collectionElementMapper.selectBatchIds(printBoardIds);
- Assert.isTrue(CollectionUtil.isNotEmpty(marketingSketchElements)
- && marketingSketchElements.size() == printBoardIds.size(), "get marketingSketch data is mismatch");
- elementVO.setMarketingSketchElements(marketingSketchElements);
- usedElementIds.addAll(printBoardIds);
- }
- //library
- List libraryIds = designDTO.getMarketingSketchs().stream()
- .filter(f ->f.getDesignType().equals(DesignTypeEnum.LIBRARY.getRealName()))
- .map(DesignCollectionElementDTO::getId)
- .collect(Collectors.toList());
- if(!CollectionUtils.isEmpty(libraryIds)){
- List librarys = libraryService.getByIds(libraryIds);
- //不校验了防止用户在library删除 对应不上
- if(CollectionUtil.isNotEmpty(librarys)){
- libraryCollectionElements.addAll(covertLibrarysToCollections(librarys,null));
- }
- }
- }
+ // 2023.12版本去掉了这个入参
+// if (CollectionUtil.isNotEmpty(designDTO.getMarketingSketchs())) {
+// //校验designType
+// validateDesignType(designDTO.getMarketingSketchs(),"marketingSketchs");
+// List printBoardIds = designDTO.getMarketingSketchs().stream()
+// .filter(f ->f.getDesignType().equals(DesignTypeEnum.COLLECTION.getRealName()))
+// .map(DesignCollectionElementDTO::getId)
+// .collect(Collectors.toList());
+// if(!CollectionUtils.isEmpty(printBoardIds)){
+// List marketingSketchElements = collectionElementMapper.selectBatchIds(printBoardIds);
+// Assert.isTrue(CollectionUtil.isNotEmpty(marketingSketchElements)
+// && marketingSketchElements.size() == printBoardIds.size(), "get marketingSketch data is mismatch");
+// elementVO.setMarketingSketchElements(marketingSketchElements);
+// usedElementIds.addAll(printBoardIds);
+// }
+// //library
+// List libraryIds = designDTO.getMarketingSketchs().stream()
+// .filter(f ->f.getDesignType().equals(DesignTypeEnum.LIBRARY.getRealName()))
+// .map(DesignCollectionElementDTO::getId)
+// .collect(Collectors.toList());
+// if(!CollectionUtils.isEmpty(libraryIds)){
+// List librarys = libraryService.getByIds(libraryIds);
+// //不校验了防止用户在library删除 对应不上
+// if(CollectionUtil.isNotEmpty(librarys)){
+// libraryCollectionElements.addAll(covertLibrarysToCollections(librarys,null));
+// }
+// }
+// }
//校验控制生成类型
SingleOverallEnum singleOverall = SingleOverallEnum.of(designDTO.getSingleOverall());
Assert.notNull(singleOverall, "unknown parameter singleOverall!");
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 c0c6af60..ea52fcf0 100644
--- a/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java
+++ b/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java
@@ -16,7 +16,9 @@ import com.ai.da.mapper.entity.Collection;
import com.ai.da.model.dto.*;
import com.ai.da.model.vo.*;
import com.ai.da.python.PythonService;
+import com.ai.da.python.vo.DesignPythonItem;
import com.ai.da.python.vo.DesignPythonItemPrint;
+import com.ai.da.python.vo.DesignPythonObject;
import com.ai.da.python.vo.DesignPythonObjects;
import com.ai.da.service.*;
import com.alibaba.fastjson.JSON;
@@ -27,6 +29,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.collect.Lists;
import io.netty.util.internal.StringUtil;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import org.springframework.util.CollectionUtils;
@@ -36,6 +39,7 @@ import javax.annotation.Resource;
import java.io.File;
import java.math.BigDecimal;
import java.util.*;
+import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
import static com.ai.da.python.vo.DesignPythonItem.*;
@@ -79,10 +83,16 @@ public class DesignServiceImpl extends ServiceImpl impleme
private ITDesignPythonOutfitDetailService designPythonOutfitDetailService;
@Resource
private PanToneService panToneService;
+ @Resource
+ private PythonTAllInfoService pythonTAllInfoService;
+ @Value("${minio.endpoint}")
+ private String endpoint;
+ @Value("${minio.bucketName}")
+ private String bucketName;
// @Transactional
@Override
- public JSONObject designCollection(DesignCollectionDTO designDTO) {
+ public DesignCollectionVO designCollection(DesignCollectionDTO designDTO) {
AuthPrincipalVo userInfo = UserContext.getUserHolder();
//校验collection element
ValidateElementVO elementVO =collectionElementService.validateElement(designDTO);
@@ -180,12 +190,12 @@ public class DesignServiceImpl extends ServiceImpl impleme
//计算library
calculateLibraryAndSysFile(designDTO,elementVO,userInfo);
//组装design入参
- DesignPythonObjects pythonObjects =pythonService.covertDesignParam(designDTO.getSystemScale(),
+ DesignPythonObjects pythonObjects = pythonService.covertDesignParam(designDTO.getSystemScale(),
designDTO.getSingleOverall(),designDTO.getSwitchCategory(),elementVO);
//缓存保存的文件 方便后面处理进度问题
setDesignProcess(userInfo.getId(),pythonObjects);
//design
- JSONObject responseJSONObject= pythonService.designNew(pythonObjects);
+ pythonService.design(pythonObjects);
//生成library
generateLibrary(elementVO,designDTO.getTimeZone());
//处理关联关系,修复element覆盖得情况
@@ -198,7 +208,7 @@ public class DesignServiceImpl extends ServiceImpl impleme
return saveDesignItemAndDetail(pythonObjects,designId,collectionId,userInfo,designDTO.getTimeZone());
}
- private JSONObject designOrRedesignOperateNew(DesignCollectionDTO designDTO,AuthPrincipalVo userInfo,
+ private DesignCollectionVO designOrRedesignOperateNew(DesignCollectionDTO designDTO,AuthPrincipalVo userInfo,
Long collectionIdParam,ValidateElementVO elementVO){
if(CollectionUtil.isNotEmpty(designDTO.getSketchBoards())){
//编辑sketchBoard
@@ -211,7 +221,7 @@ public class DesignServiceImpl extends ServiceImpl impleme
//保存collection
Long collectionId = (null == collectionIdParam) ?
collectionService.saveCollection(userInfo.getId(),designDTO.getTimeZone(),designDTO.getMoodTemplateId()) : collectionIdParam;
- List elementIds =getElementId(elementVO);
+ List elementIds = getElementId(elementVO);
//批量关联element 到 collection
collectionElementService.relationCollection(elementIds,collectionId);
//library转化为collection(生成)
@@ -227,8 +237,10 @@ public class DesignServiceImpl extends ServiceImpl impleme
designDTO.getSingleOverall(),designDTO.getSwitchCategory(),elementVO);
//缓存保存的文件 方便后面处理进度问题
setDesignProcess(userInfo.getId(),pythonObjects);
+ // pythonObjects增加image_id关联
+ relationImageId(pythonObjects);
//design
- JSONObject responseJSONObject= pythonService.designNew(pythonObjects);
+ JSONObject responseJSONObject = pythonService.designNew(pythonObjects);
//生成library
generateLibrary(elementVO,designDTO.getTimeZone());
//处理关联关系,修复element覆盖得情况
@@ -240,6 +252,28 @@ public class DesignServiceImpl extends ServiceImpl impleme
//保存designItem 和detail
// return saveDesignItemAndDetail(pythonObjects,designId,collectionId,userInfo,designDTO.getTimeZone());
}
+
+ private void relationImageId(DesignPythonObjects pythonObjects) {
+ if(Objects.isNull(pythonObjects)) {
+ return;
+ }
+ pythonObjects.getObjects().forEach(
+ o -> {
+ for (DesignPythonItem item : o.getItems()) {
+ String path = item.getPath();
+ if (StringUtils.isEmpty(path)) {
+ String bodyPath = item.getBody_path();
+ Long imageId = pythonTAllInfoService.getImageIdByPath(bodyPath);
+ item.setImageId(imageId);
+ }else {
+ Long imageId = pythonTAllInfoService.getImageIdByPath(path);
+ item.setImageId(imageId);
+ }
+ }
+ }
+ );
+ }
+
private void handleCollectionElementRelation(Long collectionId ,Boolean isEdit,List elementIds ){
if (CollectionUtils.isEmpty(elementIds) || collectionId == null){
return;
@@ -310,15 +344,16 @@ public class DesignServiceImpl extends ServiceImpl impleme
return object.getBasic().getSave_name();}).collect(Collectors.toList());
LocalCacheUtils.setDesignProcessCache(userId,saveNames);
}
- private JSONObject savePythonDesignItemAndDetail(DesignPythonObjects pythonObjects
+ private DesignCollectionVO savePythonDesignItemAndDetail(DesignPythonObjects pythonObjects
,Long designId,Long collectionId,AuthPrincipalVo userInfo,String timeZone, JSONObject responseJSONObject){
DesignCollectionVO response = new DesignCollectionVO();
response.setDesignId(designId);
response.setCollectionId(collectionId);
List designCollectionItems = Lists.newArrayList();
response.setDesignCollectionItems(designCollectionItems);
-
- pythonObjects.getObjects().forEach(item ->{
+ JSONObject data = responseJSONObject.getJSONObject("data");
+ for (int i = 0; i < pythonObjects.getObjects().size(); i++) {
+ DesignPythonObject item = pythonObjects.getObjects().get(i);
DesignItem designItem = new DesignItem();
designItem.setAccountId(userInfo.getId());
designItem.setCollectionId(collectionId);
@@ -329,8 +364,63 @@ public class DesignServiceImpl extends ServiceImpl impleme
designItem.setHasLike((byte)0);
//生成designItem
Long designItemId = designItemService.saveOne(designItem);
+ // python design返回入库及封装
+ JSONObject outfit = data.getJSONObject(i + "");
+ if (null == outfit) {
+ continue;
+ }
+ TDesignPythonOutfit designPythonOutfit = new TDesignPythonOutfit();
+ designPythonOutfit.setDesignItemId(designItemId);
+ designPythonOutfit.setUserId(userInfo.getId());
+ designPythonOutfit.setDesignId(designId);
+ designPythonOutfit.setCollectionId(collectionId);
+ designPythonOutfit.setDesignUrl(outfit.getString("synthesis_url"));
+ designPythonOutfitService.save(designPythonOutfit);
+ JSONArray layers = outfit.getJSONArray("layers");
+ List list = new ArrayList<>();
+ for (int i1 = 0; i1 < layers.size(); i1++) {
+ JSONObject jsonObject = layers.getJSONObject(i1);
+ TDesignPythonOutfitDetail designPythonOutfitDetail = new TDesignPythonOutfitDetail();
+ designPythonOutfitDetail.setDesignId(designId);
+ designPythonOutfitDetail.setDesignPythonOutfitId(designPythonOutfit.getId());
+ JSONArray position = jsonObject.getJSONArray("position");
+ if (position != null && !CollectionUtils.isEmpty(position)) {
+ StringBuilder builder = null;
+ 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 = null;
+ 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.setImageUrl(jsonObject.getString("image_url"));
+ designPythonOutfitDetail.setImageCategory(jsonObject.getString("image_category"));
+ designPythonOutfitDetail.setMaskUrl(jsonObject.getString("mask_url"));
+ designPythonOutfitDetail.setUserId(userInfo.getId());
+ list.add(designPythonOutfitDetail);
+ }
+ designPythonOutfitDetailService.saveBatch(list);
+ DesignCollectionItemVO designCollectionItemVO = new DesignCollectionItemVO();
+ designCollectionItemVO.setDesignItemId(designItemId);
+ designCollectionItemVO.setDesignItemUrl(designItem.getDesignUrl());
+ designCollectionItemVO.setDesignOutfitId(designPythonOutfit.getId());
+ designCollectionItemVO.setDesignOutfitUrl(endpoint + "/" + bucketName + "/" + designPythonOutfit.getDesignUrl());
//response
- designCollectionItems.add(new DesignCollectionItemVO(designItemId,designItem.getDesignUrl()));
+ designCollectionItems.add(designCollectionItemVO);
List designItemDetails = Lists.newArrayList();
item.getItems().forEach(detail ->{
@@ -354,33 +444,9 @@ public class DesignServiceImpl extends ServiceImpl impleme
designItemDetails.add(designItemDetail);
});
designItemDetailService.saveBatch(designItemDetails);
- });
- JSONObject data = responseJSONObject.getJSONObject("data");
- for (int i = 0; i < 8; i++) {
- JSONObject outfit = data.getJSONObject(i + "");
- TDesignPythonOutfit designPythonOutfit = new TDesignPythonOutfit();
- designPythonOutfit.setUserId(userInfo.getId());
- designPythonOutfit.setDesignId(designId);
- designPythonOutfit.setCollectionId(collectionId);
- designPythonOutfit.setDesignUrl(outfit.getString("synthesis_url"));
- designPythonOutfitService.save(designPythonOutfit);
- JSONArray layers = outfit.getJSONArray("layers");
- List list = new ArrayList<>();
- for (int i1 = 0; i1 < layers.size(); i1++) {
- JSONObject jsonObject = layers.getJSONObject(i1);
- TDesignPythonOutfitDetail designPythonOutfitDetail = new TDesignPythonOutfitDetail();
- designPythonOutfitDetail.setDesignId(designId);
- designPythonOutfitDetail.setDesignPythonOutfitId(designPythonOutfit.getId());
- designPythonOutfitDetail.setPosition(jsonObject.getString("position"));
- designPythonOutfitDetail.setImageUrl(jsonObject.getString("image_url"));
- designPythonOutfitDetail.setImageCategory(jsonObject.getString("image_category"));
- designPythonOutfitDetail.setMaskUrl(jsonObject.getString("mask_url"));
- designPythonOutfitDetail.setUserId(userInfo.getId());
- list.add(designPythonOutfitDetail);
- }
- designPythonOutfitDetailService.saveBatch(list);
}
- return responseJSONObject;
+
+ return response;
}
private DesignCollectionVO saveDesignItemAndDetail(DesignPythonObjects pythonObjects
@@ -403,7 +469,7 @@ public class DesignServiceImpl extends ServiceImpl impleme
//生成designItem
Long designItemId = designItemService.saveOne(designItem);
//response
- designCollectionItems.add(new DesignCollectionItemVO(designItemId,designItem.getDesignUrl()));
+ designCollectionItems.add(new DesignCollectionItemVO(designItemId,designItem.getDesignUrl(), null, null));
List designItemDetails = Lists.newArrayList();
item.getItems().forEach(detail ->{
@@ -432,6 +498,7 @@ public class DesignServiceImpl extends ServiceImpl impleme
}
private List getElementId(ValidateElementVO elementVO){
List elementIds = Lists.newArrayList();
+ // collection type
if(CollectionUtil.isNotEmpty(elementVO.getSketchBoardElements())){
elementIds.addAll(elementVO.getSketchBoardElements().stream().map(CollectionElement::getId).collect(Collectors.toList()));
}
@@ -441,9 +508,9 @@ public class DesignServiceImpl extends ServiceImpl impleme
if(CollectionUtil.isNotEmpty(elementVO.getPrintBoardElements())){
elementIds.addAll(elementVO.getPrintBoardElements().stream().map(CollectionElement::getId).collect(Collectors.toList()));
}
- if(CollectionUtil.isNotEmpty(elementVO.getMarketingSketchElements())){
- elementIds.addAll(elementVO.getMarketingSketchElements().stream().map(CollectionElement::getId).collect(Collectors.toList()));
- }
+// if(CollectionUtil.isNotEmpty(elementVO.getMarketingSketchElements())){
+// elementIds.addAll(elementVO.getMarketingSketchElements().stream().map(CollectionElement::getId).collect(Collectors.toList()));
+// }
return elementIds;
}
@@ -499,7 +566,7 @@ public class DesignServiceImpl extends ServiceImpl impleme
private List coverDesignItemToVO( List designItems){
List response = Lists.newArrayList();
designItems.forEach(designItem -> {
- response.add(new DesignCollectionItemVO(designItem.getId(),designItem.getDesignUrl()));
+ response.add(new DesignCollectionItemVO(designItem.getId(),designItem.getDesignUrl(), null, null));
});
return response;
}
diff --git a/src/main/java/com/ai/da/service/impl/PanToneServiceImpl.java b/src/main/java/com/ai/da/service/impl/PanToneServiceImpl.java
index 41148a13..b3af8521 100644
--- a/src/main/java/com/ai/da/service/impl/PanToneServiceImpl.java
+++ b/src/main/java/com/ai/da/service/impl/PanToneServiceImpl.java
@@ -122,8 +122,8 @@ public class PanToneServiceImpl extends ServiceImpl impl
@Override
public List getRgbByHsvBatch(List hsvBatch) {
- if(hsvBatch.size() >15){
- throw new BusinessException("hsv value cannot exceed the maximum of 15");
+ if(hsvBatch.size() >8){
+ throw new BusinessException("hsv value cannot exceed the maximum of 8");
}
List colorValues = Lists.newArrayList();
Map valueToHsv = Maps.newHashMap();
diff --git a/src/main/java/com/ai/da/service/impl/PythonTAllInfoServiceImpl.java b/src/main/java/com/ai/da/service/impl/PythonTAllInfoServiceImpl.java
new file mode 100644
index 00000000..1360689a
--- /dev/null
+++ b/src/main/java/com/ai/da/service/impl/PythonTAllInfoServiceImpl.java
@@ -0,0 +1,51 @@
+package com.ai.da.service.impl;
+
+
+import com.ai.da.common.config.exception.BusinessException;
+import com.ai.da.mapper.PythonTAllInfoMapper;
+import com.ai.da.mapper.entity.PythonTAllInfo;
+import com.ai.da.service.PythonTAllInfoService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * (PythonTAllInfo)表服务实现类
+ *
+ * @author SHAHAIBO
+ * @since 2023-09-08 17:03:47
+ */
+@Service
+@Slf4j
+public class PythonTAllInfoServiceImpl extends ServiceImpl implements PythonTAllInfoService {
+ @Resource
+ private PythonTAllInfoMapper pythonTAllInfoMapper;
+
+
+ @Override
+ public Long getImageIdByPath(String path) {
+ if (StringUtils.isEmpty(path)) {
+ throw new BusinessException("path不能为空");
+ }
+ QueryWrapper qw = new QueryWrapper<>();
+ qw.lambda().eq(PythonTAllInfo::getImagePath, path);
+ qw.lambda().last("limit 1");
+ List pythonTAllInfos = pythonTAllInfoMapper.selectList(qw);
+ if (!CollectionUtils.isEmpty(pythonTAllInfos)) {
+ return pythonTAllInfos.get(0).getId();
+ }
+ PythonTAllInfo pythonTAllInfo = new PythonTAllInfo();
+ pythonTAllInfo.setImagePath(path);
+ int insert = pythonTAllInfoMapper.insert(pythonTAllInfo);
+ if (insert != 1) {
+ throw new BusinessException("插入失败");
+ }
+ return pythonTAllInfo.getId();
+ }
+}
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 40f14898..665d18f5 100644
--- a/src/main/java/com/ai/da/service/impl/TDesignPythonOutfitDetailServiceImpl.java
+++ b/src/main/java/com/ai/da/service/impl/TDesignPythonOutfitDetailServiceImpl.java
@@ -38,6 +38,15 @@ public class TDesignPythonOutfitDetailServiceImpl extends ServiceImpl getPage(WorkspaceDTO query) {
+ public WorkspaceVO getPage(WorkspaceDTO query) {
+ WorkspaceVO vo = new WorkspaceVO();
String userName = UserContext.getUserHolder().getUsername();
QueryWrapper qw = new QueryWrapper<>();
qw.lambda().eq(Workspace::getUserName, userName);
IPage page = workspaceMapper.selectPage(new Page<>(query.getPage(), query.getSize()), qw);
- return page;
+ if (page.getTotal() == 0L) {
+ // 给用户新建默认workspace
+ Workspace workspace = new Workspace();
+ workspace.setWorkSpaceName(WORKSPACE_NAME);
+ workspace.setSex(Sex.MALE.getValue());
+ workspace.setSystemDesignerPercentage(SYSTEM_DESIGNER_PERCENTAGE);
+ workspace.setPosition(Position.OVERALL.getValue());
+ workspace.setUserName(userName);
+ 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);
+ vo.setPage(PageBaseResponse.success(page));
+ vo.setId(workspace.getId());
+ return vo;
+ }
+ vo.setPage(PageBaseResponse.success(page));
+ QueryWrapper qwIsLastIndex = new QueryWrapper<>();
+ qwIsLastIndex.lambda().eq(Workspace::getUserName, userName);
+ qwIsLastIndex.lambda().eq(Workspace::getIsLastIndex, 1);
+ qwIsLastIndex.last("limit 1");
+ List workspaces = workspaceMapper.selectList(qwIsLastIndex);
+ if (CollectionUtils.isEmpty(workspaces)) {
+ throw new BusinessException("用户工作空间未查询到最后使用标识");
+ }
+ vo.setId(workspaces.get(0).getId());
+ return vo;
}
@Override
@@ -74,6 +119,21 @@ public class WorkspaceServiceImpl extends ServiceImpl qwOld = new QueryWrapper<>();
+ qwOld.lambda().eq(Workspace::getUserName, userName);
+ qwOld.lambda().eq(Workspace::getIsLastIndex, 1);
+ Workspace oldIsLastIndex = workspaceMapper.selectOne(qwOld);
+ oldIsLastIndex.setIsLastIndex(0);
+ workspaceMapper.updateById(oldIsLastIndex);
+ Workspace newIsLastIndex= workspaceMapper.selectById(id);
+ newIsLastIndex.setIsLastIndex(1);
+ workspaceMapper.updateById(newIsLastIndex);
+ return newIsLastIndex;
+ }
+
private List getEnumValues(Class clazz) {
List kvs = new ArrayList();
IEnumDisplay[] items = (IEnumDisplay[]) clazz.getEnumConstants();
diff --git a/src/main/resources/application-test.properties b/src/main/resources/application-test.properties
index 5fc36361..2e5fbafd 100644
--- a/src/main/resources/application-test.properties
+++ b/src/main/resources/application-test.properties
@@ -31,7 +31,8 @@ file.mac.path=~/file/
file.linux.path=/workspace/home/aida/file/
#linux服务器域名(预览和下载用)
#file.linuxDomain=http://18.162.111.141:5568/download/
-file.linuxDomain=http://18.167.251.121:5568/download/
+#file.linuxDomain=http://18.167.251.121:5568/download/
+file.linuxDomain=https://www.aida.com.hk/download/
file.windows.path=D:\\upload\\
spring.servlet.multipart.max-file-size = 5MB
diff --git a/src/main/resources/mapper/PythonTAllInfoMapper.xml b/src/main/resources/mapper/PythonTAllInfoMapper.xml
new file mode 100644
index 00000000..b661a036
--- /dev/null
+++ b/src/main/resources/mapper/PythonTAllInfoMapper.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/resources/mapper/TDesignPythonOutfitDetailMapper.xml b/src/main/resources/mapper/TDesignPythonOutfitDetailMapper.xml
index aaa38b35..b231cdcb 100644
--- a/src/main/resources/mapper/TDesignPythonOutfitDetailMapper.xml
+++ b/src/main/resources/mapper/TDesignPythonOutfitDetailMapper.xml
@@ -13,6 +13,7 @@
+
diff --git a/src/main/resources/mapper/TDesignPythonOutfitMapper.xml b/src/main/resources/mapper/TDesignPythonOutfitMapper.xml
index e886f817..b739bdfe 100644
--- a/src/main/resources/mapper/TDesignPythonOutfitMapper.xml
+++ b/src/main/resources/mapper/TDesignPythonOutfitMapper.xml
@@ -5,6 +5,7 @@
+
diff --git a/src/test/java/com/ai/da/controller/PantoneTest.java b/src/test/java/com/ai/da/controller/PantoneTest.java
deleted file mode 100644
index b5eaf566..00000000
--- a/src/test/java/com/ai/da/controller/PantoneTest.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package com.ai.da.controller;
-
-import com.ai.da.AiDaApplication;
-import com.ai.da.common.utils.PantoneUtils;
-import com.ai.da.service.DesignService;
-import com.ai.da.service.PanToneService;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringRunner;
-
-import javax.annotation.Resource;
-import java.util.Arrays;
-import java.util.List;
-
-@RunWith(SpringRunner.class)
-@SpringBootTest(classes = AiDaApplication.class)
-public class PantoneTest {
-
- @Resource
- private PanToneService panToneService;
- @Resource
- private DesignService designService;
-
- @Test
- public void testGetPantoneByRgbBatch(){
- List colors = Arrays.asList("244 222 222","120 57 55","229 208 207","223 184 182","80 49 48");
-// System.out.println(panToneService.getPantoneByRgbBatch(colors));
- }
-
- @Test
- public void testDesign(){
- System.out.println(designService.detail(34182L));
- }
-
- @Test
- public void testRgbToHsv(){
-
-
-// 42 228 194
-// 226 194 194
-// 174 226 20
- int[] rgb1 = {174,226,20};
- System.out.println(Arrays.toString(rgb1));
- rgb1 = PantoneUtils.rgbToHsv(rgb1);
- System.out.println(Arrays.toString(rgb1));
- System.out.println(rgb1[0] * 101 * 101 + rgb1[1] * 101 + rgb1[2]);
- int[] rgb2 = {226,194,194};
- System.out.println(Arrays.toString(rgb2));
- System.out.println(Arrays.toString(PantoneUtils.rgbToHsv(rgb2)));
- System.out.println(rgb2[0] * 101 * 101 + rgb2[1] * 101 + rgb2[2]);
- int[] rgb3 = {42,228,194};
- System.out.println(Arrays.toString(rgb3));
- System.out.println(Arrays.toString(PantoneUtils.rgbToHsv(rgb3)));
- System.out.println(rgb3[0] * 101 * 101 + rgb3[1] * 101 + rgb3[2]);
-
- int[] rgb4 = {246,227,180};
- System.out.println(Arrays.toString(rgb4));
- rgb4 = PantoneUtils.rgbToHsv(rgb4);
- System.out.println(Arrays.toString(rgb4));
- System.out.println(rgb4[0] * 101 * 101 + rgb4[1] * 101 + rgb4[2]);
- }
-
-
-}