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 0f6e8425..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 @@ -64,6 +64,7 @@ public class DesignItem implements Serializable { 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