From 26a61a44a23abb20e64d27900f6c7bdbb1b86cb7 Mon Sep 17 00:00:00 2001 From: xupei Date: Thu, 14 Dec 2023 11:26:12 +0800 Subject: [PATCH 1/4] =?UTF-8?q?TASK:=E6=A0=B9=E6=8D=AEdesignItemId?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=A8=A1=E7=89=B9=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ai/da/controller/DesignController.java | 6 +++ .../com/ai/da/service/DesignItemService.java | 1 + .../java/com/ai/da/service/DesignService.java | 2 + .../com/ai/da/service/SysFileService.java | 2 + .../service/impl/DesignItemServiceImpl.java | 8 ++++ .../ai/da/service/impl/DesignServiceImpl.java | 37 +++++++++++++++++++ .../da/service/impl/SysFileServiceImpl.java | 7 ++++ 7 files changed, 63 insertions(+) diff --git a/src/main/java/com/ai/da/controller/DesignController.java b/src/main/java/com/ai/da/controller/DesignController.java index d6b75dd1..b36cf6f9 100644 --- a/src/main/java/com/ai/da/controller/DesignController.java +++ b/src/main/java/com/ai/da/controller/DesignController.java @@ -76,4 +76,10 @@ public class DesignController { return Response.success(designService.sketchesBoundingBox(sketchesBoundingBoxDTO)); } + @ApiOperation(value = "通过designItemId获取模特图") + @PostMapping("/getModel") + public Response> getModel(@RequestBody List designItemIdList){ + return Response.success(designService.getModel(designItemIdList)); + } + } diff --git a/src/main/java/com/ai/da/service/DesignItemService.java b/src/main/java/com/ai/da/service/DesignItemService.java index e4ae3573..26163bf1 100644 --- a/src/main/java/com/ai/da/service/DesignItemService.java +++ b/src/main/java/com/ai/da/service/DesignItemService.java @@ -53,4 +53,5 @@ public interface DesignItemService extends IService { ComposeLayersVO editLayersPositionAndScale(EditLayersPositionAndScaleVO positionAndScaleVO) throws IOException; + List selectDesignIdById(List designItemIdList); } diff --git a/src/main/java/com/ai/da/service/DesignService.java b/src/main/java/com/ai/da/service/DesignService.java index 19230151..bbca6f7f 100644 --- a/src/main/java/com/ai/da/service/DesignService.java +++ b/src/main/java/com/ai/da/service/DesignService.java @@ -94,4 +94,6 @@ public interface DesignService extends IService { void relationImageId(DesignPythonObjects objects); List sketchesBoundingBox(SketchesBoundingBoxDTO sketchesBoundingBoxDTO); + + List getModel(List designItemIdList); } diff --git a/src/main/java/com/ai/da/service/SysFileService.java b/src/main/java/com/ai/da/service/SysFileService.java index 8d7a05e3..0cef4818 100644 --- a/src/main/java/com/ai/da/service/SysFileService.java +++ b/src/main/java/com/ai/da/service/SysFileService.java @@ -58,4 +58,6 @@ public interface SysFileService extends IService { * @param urlList */ List getByUrlList(List urlList); + + List getByIds(List ids); } 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 7914f4cc..da8b1df5 100644 --- a/src/main/java/com/ai/da/service/impl/DesignItemServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/DesignItemServiceImpl.java @@ -667,4 +667,12 @@ public class DesignItemServiceImpl extends ServiceImpl selectDesignIdById(List designItemIdList){ + QueryWrapper queryWrapper = new QueryWrapper<>(); + + queryWrapper.in("id",designItemIdList); + return designItemMapper.selectList(queryWrapper); + } } 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 3040c78a..49000f4d 100644 --- a/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java @@ -1205,4 +1205,41 @@ public class DesignServiceImpl extends ServiceImpl impleme return designSinglePrintDTO; } + + @Override + public List getModel(List designItemIdList){ + ArrayList models = new ArrayList<>(); + List designIdById = designItemService.selectDesignIdById(designItemIdList); + if (CollectionUtil.isEmpty(designIdById)){ + log.info("according to the designItemIdList cannot find the designIdList"); + throw new BusinessException("design.not.found"); + } + List designIdList = designIdById.stream().map(DesignItem::getDesignId).collect(Collectors.toList()); + List designs = selectList(designIdList); + if (CollectionUtil.isEmpty(designIdList)){ + log.info("according to the designIdList cannot find the design"); + throw new BusinessException("design.not.found"); + } + 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)) + .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)) + .collect(Collectors.toList())); + } + + return models; + } + + private List selectList(List designIdList){ + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("id",designIdList); + + return designMapper.selectList(queryWrapper); + } } diff --git a/src/main/java/com/ai/da/service/impl/SysFileServiceImpl.java b/src/main/java/com/ai/da/service/impl/SysFileServiceImpl.java index 5e6bba14..ea2a0de3 100644 --- a/src/main/java/com/ai/da/service/impl/SysFileServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/SysFileServiceImpl.java @@ -260,4 +260,11 @@ public class SysFileServiceImpl extends ServiceImpl impl queryWrapper.in("url", urlList); return CopyUtil.copyList(sysFileMapper.selectList(queryWrapper), SysFileVO.class); } + + @Override + public List getByIds(List ids) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("id", ids); + return sysFileMapper.selectList(queryWrapper); + } } From fef71ead7979f212dfe6fd130d89b005a27be48d Mon Sep 17 00:00:00 2001 From: xupei Date: Thu, 14 Dec 2023 14:05:02 +0800 Subject: [PATCH 2/4] =?UTF-8?q?TASK:category=E8=AF=86=E5=88=ABpython?= =?UTF-8?q?=E7=AB=AF=E7=AB=AF=E5=8F=A3=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/ai/da/python/PythonService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/ai/da/python/PythonService.java b/src/main/java/com/ai/da/python/PythonService.java index 130f39fc..7e7293bb 100644 --- a/src/main/java/com/ai/da/python/PythonService.java +++ b/src/main/java/com/ai/da/python/PythonService.java @@ -2386,7 +2386,7 @@ public class PythonService { String jsonString = JSON.toJSONString(contents, SerializerFeature.WriteNullStringAsEmpty); // todo 添加限流 - Response response = this.sendPostToModel(jsonString, "9992/api/category_recognition", "getClothCategory"); + Response response = this.sendPostToModel(jsonString, "9991/api/category_recognition", "getClothCategory"); // todo 结束限流 String bodyString; From 86ab0806fd998651d4b2c435c9ee2e78cd92c259 Mon Sep 17 00:00:00 2001 From: xupei Date: Thu, 14 Dec 2023 15:47:03 +0800 Subject: [PATCH 3/4] =?UTF-8?q?BUGFIX:=E8=A1=A3=E6=9C=8D=E5=9B=BE=E5=B1=82?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BC=98=E5=85=88=E7=BA=A7=E5=90=8E=E5=AF=B9?= =?UTF-8?q?=E4=B9=8B=E5=89=8D=E6=95=B0=E6=8D=AE=E4=B8=8D=E5=85=BC=E5=AE=B9?= =?UTF-8?q?=E7=9A=84=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../da/service/DesignItemDetailService.java | 2 ++ .../ITDesignPythonOutfitDetailService.java | 2 ++ .../impl/DesignItemDetailServiceImpl.java | 20 +++++++++++++++++++ .../ai/da/service/impl/DesignServiceImpl.java | 13 ++++++++---- .../TDesignPythonOutfitDetailServiceImpl.java | 13 ++++++++++++ 5 files changed, 46 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/ai/da/service/DesignItemDetailService.java b/src/main/java/com/ai/da/service/DesignItemDetailService.java index 2ed66dd4..1f5663b5 100644 --- a/src/main/java/com/ai/da/service/DesignItemDetailService.java +++ b/src/main/java/com/ai/da/service/DesignItemDetailService.java @@ -19,4 +19,6 @@ public interface DesignItemDetailService extends IService { int deleteByDesignItemId(Long designItemId); List selectByDesignItemId(Long designItemId); + + void setDesignItemDetailPriority(List designItemDetailList); } diff --git a/src/main/java/com/ai/da/service/ITDesignPythonOutfitDetailService.java b/src/main/java/com/ai/da/service/ITDesignPythonOutfitDetailService.java index 56040bd2..e5296840 100644 --- a/src/main/java/com/ai/da/service/ITDesignPythonOutfitDetailService.java +++ b/src/main/java/com/ai/da/service/ITDesignPythonOutfitDetailService.java @@ -38,4 +38,6 @@ public interface ITDesignPythonOutfitDetailService extends IService details); + } diff --git a/src/main/java/com/ai/da/service/impl/DesignItemDetailServiceImpl.java b/src/main/java/com/ai/da/service/impl/DesignItemDetailServiceImpl.java index 07d5669d..30ff7c1b 100644 --- a/src/main/java/com/ai/da/service/impl/DesignItemDetailServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/DesignItemDetailServiceImpl.java @@ -1,6 +1,7 @@ package com.ai.da.service.impl; import com.ai.da.common.config.exception.BusinessException; +import com.ai.da.common.enums.LayersPriorityEnum; import com.ai.da.mapper.DesignItemDetailMapper; import com.ai.da.mapper.entity.DesignItemDetail; import com.ai.da.service.DesignItemDetailService; @@ -13,6 +14,8 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; +import static com.ai.da.common.enums.LayersPriorityEnum.BODY; + /** * 服务实现类 * @@ -76,4 +79,21 @@ public class DesignItemDetailServiceImpl extends ServiceImpl designItemDetailList){ + for (DesignItemDetail detail:designItemDetailList){ + if (!detail.getType().equals(BODY.getType()) && detail.getPriority().equals(BODY.getValue())){ + detail.setPriority(LayersPriorityEnum.getValueByType(detail.getType()).getValue()); + } + } + } } 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 49000f4d..79db739c 100644 --- a/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java @@ -5,10 +5,7 @@ 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.context.UserContext; -import com.ai.da.common.enums.CollectionLevel1TypeEnum; -import com.ai.da.common.enums.DesignTypeEnum; -import com.ai.da.common.enums.SingleOverallEnum; -import com.ai.da.common.enums.SysFileLevel2TypeEnum; +import com.ai.da.common.enums.*; import com.ai.da.common.utils.*; import com.ai.da.mapper.DesignMapper; import com.ai.da.mapper.GenerateDetailMapper; @@ -46,6 +43,7 @@ import java.util.*; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; +import static com.ai.da.common.enums.LayersPriorityEnum.BODY; import static com.ai.da.python.vo.DesignPythonItem.*; /** @@ -956,6 +954,9 @@ public class DesignServiceImpl extends ServiceImpl impleme flag = Boolean.TRUE; } + // 为没有优先级的衣服添加优先级 + designItemDetailService.setDesignItemDetailPriority(designItemDetails); + // 2、组装返回参数 DesignItemDetailVO response = new DesignItemDetailVO(); response.setSingleOverall(design.getSingleOverall()); @@ -1131,6 +1132,10 @@ public class DesignServiceImpl extends ServiceImpl impleme log.error("Layer information is empty! DesignPythonOutfitId is " + designPythonOutfit.getId()); throw new BusinessException("layer.information.not.found"); } + + // 为没有优先级的图层添加优先级 + designPythonOutfitDetailService.setDesignPythonOutfitDetailPriority(details); + details.forEach(detail -> { // List offset = new ArrayList<>(); // if (StringUtil.isNullOrEmpty(detail.getOffset()) || detail.getOffset().equals("null")) { 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 a72a2bcb..b24ba13e 100644 --- a/src/main/java/com/ai/da/service/impl/TDesignPythonOutfitDetailServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/TDesignPythonOutfitDetailServiceImpl.java @@ -1,6 +1,7 @@ package com.ai.da.service.impl; import cn.hutool.core.collection.CollectionUtil; +import com.ai.da.common.enums.LayersPriorityEnum; import com.ai.da.common.utils.CopyUtil; import com.ai.da.common.utils.MinioUtil; import com.ai.da.mapper.TDesignPythonOutfitDetailMapper; @@ -21,6 +22,8 @@ import java.util.Arrays; import java.util.List; import java.util.Objects; +import static com.ai.da.common.enums.LayersPriorityEnum.BODY; + /** * design item详情表 服务实现类 * @@ -88,4 +91,14 @@ public class TDesignPythonOutfitDetailServiceImpl extends ServiceImpl details){ + for (TDesignPythonOutfitDetail detail:details){ + if (!detail.getImageCategory().equals(BODY.getRealName()) && detail.getPriority().equals(BODY.getValue())){ + detail.setPriority(LayersPriorityEnum.getValueByLayerCategory(detail.getImageCategory()).getValue()); + } + } + } + } From 2de3a73fef0eb88e4844dc98f186bb4b9413bca2 Mon Sep 17 00:00:00 2001 From: xupei Date: Thu, 14 Dec 2023 15:49:29 +0800 Subject: [PATCH 4/4] =?UTF-8?q?BUGFIX:=E8=A1=A3=E6=9C=8D=E5=9B=BE=E5=B1=82?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BC=98=E5=85=88=E7=BA=A7=E5=90=8E=E5=AF=B9?= =?UTF-8?q?=E4=B9=8B=E5=89=8D=E6=95=B0=E6=8D=AE=E4=B8=8D=E5=85=BC=E5=AE=B9?= =?UTF-8?q?=E7=9A=84=E4=BF=AE=E5=A4=8D-=E6=BC=8F=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../da/common/enums/LayersPriorityEnum.java | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 src/main/java/com/ai/da/common/enums/LayersPriorityEnum.java diff --git a/src/main/java/com/ai/da/common/enums/LayersPriorityEnum.java b/src/main/java/com/ai/da/common/enums/LayersPriorityEnum.java new file mode 100644 index 00000000..8aeee5ed --- /dev/null +++ b/src/main/java/com/ai/da/common/enums/LayersPriorityEnum.java @@ -0,0 +1,56 @@ +package com.ai.da.common.enums; + +import lombok.Getter; + +import java.util.Arrays; +import java.util.List; +import java.util.stream.Stream; + +public enum LayersPriorityEnum { + + EARRING_FRONT("earring_front","Earring",99), + BAG_FRONT("bag_front","Bag",98), + HAIRSTYLE_FRONT("hairstyle_front","Hairstyle",97), + OUTWEAR_FRONT("outwear_front","Outwear",20), + TOPS_FRONT("tops_front","Tops",19), + DRESS_FRONT("dress_front","Dress",18), + BLOUSE_FRONT("blouse_front","Blouse",17), + SKIRT_FRONT("skirt_front","Skirt",16), + TROUSERS_FRONT("trousers_front","Trousers",15), + BOTTOMS_FRONT("bottoms_front","Bottoms",14), + SHOES_RIGHT("shoes_right","Shoes",1), + SHOES_LEFT("shoes_left","Shoes",1), + BODY("body","Body",0), + BOTTOMS_BACK("bottoms_back","Bottoms",-14), + TROUSERS_BACK("trousers_back","Trousers",-15), + SKIRT_BACK("skirt_back","Skirt",-16), + BLOUSE_BACK("blouse_back","Blouse",-17), + DRESS_BACK("dress_back","Dress",-18), + TOPS_BACK("tops_back","Tops",-19), + OUTWEAR_BACK("outwear_back","Outwear",-20), + HAIRSTYLE_BACK("hairstyle_back","Hairstyle",-97), + BAG_BACK("bag_back","Bag",-98), + EARRING_BACK("earring_back","Earring",-99); + + @Getter + private String realName; + @Getter + private String type; + @Getter + private Integer value; + + + LayersPriorityEnum(String realName, String type,Integer value) { + this.realName = realName; + this.type = type; + this.value = value; + } + + public static LayersPriorityEnum getValueByType(String type){ + return Stream.of(LayersPriorityEnum.values()).filter(l -> l.getType().equals(type)).findFirst().orElse(null); + } + + public static LayersPriorityEnum getValueByLayerCategory(String layerCategory){ + return Stream.of(LayersPriorityEnum.values()).filter(l -> l.getRealName().equals(layerCategory)).findFirst().orElse(null); + } +}