From 8356326c7d438ec4c5234e742b08519d3cc3a338 Mon Sep 17 00:00:00 2001 From: xupei Date: Wed, 28 May 2025 16:56:32 +0800 Subject: [PATCH] =?UTF-8?q?TASK:=20DesignDetail=E4=B8=AD=E5=85=81=E8=AE=B8?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=A8=A1=E7=89=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../da/mapper/primary/entity/DesignItem.java | 4 ++ .../dto/DesignSingleIncludeLayersDTO.java | 6 +++ .../service/impl/DesignItemServiceImpl.java | 47 ++++++++++++++----- 3 files changed, 45 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/ai/da/mapper/primary/entity/DesignItem.java b/src/main/java/com/ai/da/mapper/primary/entity/DesignItem.java index f6532eea..e9c33aa9 100644 --- a/src/main/java/com/ai/da/mapper/primary/entity/DesignItem.java +++ b/src/main/java/com/ai/da/mapper/primary/entity/DesignItem.java @@ -63,6 +63,10 @@ public class DesignItem implements Serializable { @TableField("is_like") private Byte hasLike; + private Long modelId; + + private String modelType; + /** * 创建时间 */ diff --git a/src/main/java/com/ai/da/model/dto/DesignSingleIncludeLayersDTO.java b/src/main/java/com/ai/da/model/dto/DesignSingleIncludeLayersDTO.java index bed41e4e..0d4430a7 100644 --- a/src/main/java/com/ai/da/model/dto/DesignSingleIncludeLayersDTO.java +++ b/src/main/java/com/ai/da/model/dto/DesignSingleIncludeLayersDTO.java @@ -34,6 +34,12 @@ public class DesignSingleIncludeLayersDTO implements Serializable { @ApiModelProperty("本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取") private String timeZone; + @ApiModelProperty("模特id 每套衣服允许有一个单独的模特") + private Long modelId; + + @ApiModelProperty("模特类型 System || Library") + private String modelType; + @Override public String toString() { return "DesignSingleIncludeLayersDTO{" + 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 a459e6c8..51f5aa9e 100644 --- a/src/main/java/com/ai/da/service/impl/DesignItemServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/DesignItemServiceImpl.java @@ -326,13 +326,19 @@ public class DesignItemServiceImpl extends ServiceImpl saveDesignSingleItemDetailAndLayers(DesignPythonObjects pythonObjects , Long designId, Long designItemId, Long userId , JSONObject outfit, String timeZone, List designSingleItemDTOList - , Map categoryAndUndividedLayer) { + , Map categoryAndUndividedLayer + , boolean changeModelFlag + , Long modelId, String modelType) { DesignItem designItem = new DesignItem(); // String url = pythonObjects.getObjects().get(0).getBasic().getSave_name(); designItem.setUpdateDate(DateUtil.getByTimeZone(timeZone)); designItem.setDesignUrl(outfit.getString("synthesis_url")); designItem.setId(designItemId); + if (changeModelFlag){ + designItem.setModelId(modelId); + designItem.setModelType(modelType); + } // 1、更新designItem updateById(designItem); // 2、删除designItemDetail(逻辑删除) @@ -468,36 +474,53 @@ public class DesignItemServiceImpl extends ServiceImpl 2、判断design item 中是否有model数据 无 -> 3、从design表中拿model数据 仍然没有 报错 + if (!Objects.isNull(designSingleIncludeLayersDTO.getModelId()) && !StringUtil.isNullOrEmpty(designSingleIncludeLayersDTO.getModelType())){ + modelId = designSingleIncludeLayersDTO.getModelId(); + modelType = designSingleIncludeLayersDTO.getModelType(); + changeModelFlag = true; + } else if (!Objects.isNull(designItem.getModelId()) && !StringUtil.isNullOrEmpty(designItem.getModelType())) { + modelId = designItem.getModelId(); + modelType = designItem.getModelType(); + } else if (!Objects.isNull(design.getTemplateId()) && !StringUtil.isNullOrEmpty(design.getModelType())) { + modelId = design.getTemplateId(); + modelType = design.getModelType(); + } else { + // 报错 + throw new BusinessException("model.not.found"); + } + String modelUrl; Integer high; Integer width; - if (design.getModelType().equals(ModelType.SYSTEM.getValue())) { - SysFileVO sysFile = sysFileService.getById(design.getTemplateId()); + if (modelType.equals(ModelType.SYSTEM.getValue())) { + SysFileVO sysFile = sysFileService.getById(modelId); if (Objects.isNull(sysFile)) { throw new BusinessException("model.not.found"); } modelUrl = sysFile.getUrl(); high = 700; width = 320; - } else if (design.getModelType().equals(ModelType.LIBRARY.getValue())){ - Library libFile = libraryService.getById(design.getTemplateId()); + } else if (modelType.equals(ModelType.LIBRARY.getValue())){ + Library libFile = libraryService.getById(modelId); if (Objects.isNull(libFile)) { throw new BusinessException("model.not.found"); } modelUrl = libFile.getUrl(); high = libFile.getHigh(); width = libFile.getWidth(); - }else { + } else { throw new BusinessException("unknown.modelType"); } - LibraryModelPoint modelPoint = libraryModelPointService.getByRelationId(design.getTemplateId(), design.getModelType()); + LibraryModelPoint modelPoint = libraryModelPointService.getByRelationId(modelId, modelType); if (Objects.isNull(modelPoint)) { throw new BusinessException("modelPoint.not.found"); } -// Assert.notNull(modelPoint, "The model has not been tagged"); - designLibraryModelPointVO = collectionElementService.calculateTemplatePoint(modelPoint, high, width, modelUrl); } @@ -551,7 +574,7 @@ public class DesignItemServiceImpl extends ServiceImpl