diff --git a/src/main/java/com/ai/da/mapper/DesignItemDetailPrintMapper.java b/src/main/java/com/ai/da/mapper/DesignItemDetailPrintMapper.java new file mode 100644 index 00000000..7f522fb1 --- /dev/null +++ b/src/main/java/com/ai/da/mapper/DesignItemDetailPrintMapper.java @@ -0,0 +1,8 @@ +package com.ai.da.mapper; + +import com.ai.da.common.config.mybatis.plus.CommonMapper; +import com.ai.da.mapper.entity.DesignItemDetailPrint; + + +public interface DesignItemDetailPrintMapper extends CommonMapper { +} diff --git a/src/main/java/com/ai/da/mapper/entity/DesignItemDetailPrint.java b/src/main/java/com/ai/da/mapper/entity/DesignItemDetailPrint.java new file mode 100644 index 00000000..be009476 --- /dev/null +++ b/src/main/java/com/ai/da/mapper/entity/DesignItemDetailPrint.java @@ -0,0 +1,55 @@ +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 java.time.LocalDateTime; + +@Data +@TableName("t_design_item_detail_print") +public class DesignItemDetailPrint { + + /** + * ID + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + /** + * 关联t_design_item_detail表ID + */ + private Long designItemDetailId; + /** + * 印花路径 + */ + private String path; + /** + * 印花位置 + */ + private String position; + /** + * 印花缩放比例 + */ + private Double scale; + /** + * 印花旋转角度 + */ + private Double angle; + /** + * 印花优先级(多个印花) + */ + private Integer priority; + /** + * 选择single or overall 模式 + */ + private String singleOrOverall; + /** + * 创建时间 + */ + private LocalDateTime createDate; + /** + * 更新时间 + */ + private LocalDateTime updateDate; +} diff --git a/src/main/java/com/ai/da/model/dto/DesignSingleItemDTO.java b/src/main/java/com/ai/da/model/dto/DesignSingleItemDTO.java index b65c0e44..8eac3859 100644 --- a/src/main/java/com/ai/da/model/dto/DesignSingleItemDTO.java +++ b/src/main/java/com/ai/da/model/dto/DesignSingleItemDTO.java @@ -6,7 +6,7 @@ import lombok.Data; import javax.validation.constraints.NotBlank; @Data -public class DesignSingleItemDTO { +public class DesignSingleItemDTO { @NotBlank(message = "id cannot be empty!") @ApiModelProperty("切换图片对应的id") @@ -20,6 +20,7 @@ public class DesignSingleItemDTO { @ApiModelProperty("对应的图片的绝对路径") private String path; + @NotBlank(message = "color cannot be empty!") @ApiModelProperty("颜色 存 RGB值 中间空格分隔 比如 \"58 58 169\"") private String color; diff --git a/src/main/java/com/ai/da/model/dto/DesignSinglePrintDTO.java b/src/main/java/com/ai/da/model/dto/DesignSinglePrintDTO.java index d75bc0e4..5d70a929 100644 --- a/src/main/java/com/ai/da/model/dto/DesignSinglePrintDTO.java +++ b/src/main/java/com/ai/da/model/dto/DesignSinglePrintDTO.java @@ -11,8 +11,8 @@ import java.util.List; @ApiModel("design single 印花请求信息") public class DesignSinglePrintDTO { - @ApiModelProperty("印花url") - private String path; +// @ApiModelProperty("印花url") +// private String path; @ApiModelProperty("single -> true,overall -> false") private Boolean ifSingle; @@ -20,4 +20,6 @@ public class DesignSinglePrintDTO { @ApiModelProperty("印花详细") private List prints; + public DesignSinglePrintDTO() { + } } \ No newline at end of file diff --git a/src/main/java/com/ai/da/model/vo/DesignItemClothesDetailVO.java b/src/main/java/com/ai/da/model/vo/DesignItemClothesDetailVO.java index faf48100..5f5bc0f6 100644 --- a/src/main/java/com/ai/da/model/vo/DesignItemClothesDetailVO.java +++ b/src/main/java/com/ai/da/model/vo/DesignItemClothesDetailVO.java @@ -1,6 +1,6 @@ package com.ai.da.model.vo; -import com.ai.da.python.vo.DesignPythonItemPrint; +import com.ai.da.model.dto.DesignSinglePrintDTO; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -30,8 +30,11 @@ public class DesignItemClothesDetailVO { // private String color; private PantoneVO color; - @ApiModelProperty("对应的print图片对象") - private DesignPythonItemPrint printObject; +// @ApiModelProperty("对应的print图片对象") +// private DesignPythonItemPrint printObject; + + @ApiModelProperty("print详细") + private DesignSinglePrintDTO printObject; @ApiModelProperty("对应图层信息") private List layersObject; diff --git a/src/main/java/com/ai/da/model/vo/DesignSinglePrint.java b/src/main/java/com/ai/da/model/vo/DesignSinglePrint.java index da9a62b8..2cd5b2ec 100644 --- a/src/main/java/com/ai/da/model/vo/DesignSinglePrint.java +++ b/src/main/java/com/ai/da/model/vo/DesignSinglePrint.java @@ -12,19 +12,37 @@ import java.util.List; @ApiModel("design single 印花详情") public class DesignSinglePrint { + @ApiModelProperty("印花url") + private String path; + @ApiModelProperty("印花位置") - private List location; + private List location; @ApiModelProperty("印花大小") @Range(max = 1,message = "印花缩放值需用大于等于0小于等于1的数表示") - private Float scale; + private Double scale; @Range(min = -360,max = 360,message = "印花旋转角度范围为-360° ~ 360°") @ApiModelProperty("印花角度") - private Float angle; + private Double angle; @Min(value = 1) @ApiModelProperty("印花优先级") private Integer priority; + public DesignSinglePrint() { + } + + public DesignSinglePrint(String path, Double scale) { + this.path = path; + this.scale = scale; + } + + public DesignSinglePrint(String path, List location, Double scale, Double angle, Integer priority) { + this.path = path; + this.location = location; + this.scale = scale; + this.angle = angle; + this.priority = priority; + } } diff --git a/src/main/java/com/ai/da/python/PythonService.java b/src/main/java/com/ai/da/python/PythonService.java index b78d278c..15cd732b 100644 --- a/src/main/java/com/ai/da/python/PythonService.java +++ b/src/main/java/com/ai/da/python/PythonService.java @@ -1341,7 +1341,7 @@ public class PythonService { designSingleItem.getType(), designSingleItem.getPath(), designSingleItem.getColor(), - resolveDesignSinglePrint(designSingleItem .getPrintObject(), designSingleItem.getPath()), + resolveDesignSinglePrint(designSingleItem.getPrintObject(), designSingleItem.getPath()), "none", // todo businessId 待确认 designSingleItem.getId(), @@ -1363,46 +1363,55 @@ public class PythonService { private DesignPythonItemPrint resolveDesignSinglePrint(DesignSinglePrintDTO printObject, String clothesPath) { - if (Objects.isNull(printObject.getPath()) || CollectionUtil.isEmpty(printObject.getPrints())) { + // 没有印花时的参数设置 + if (printObject.getIfSingle().equals(Boolean.FALSE) && CollectionUtil.isEmpty(printObject.getPrints())) { return new DesignPythonItemPrint(new ArrayList<>(),false); } DesignPythonItemPrint print = CopyUtil.copyObject(printObject, DesignPythonItemPrint.class); - if(StringUtils.isEmpty(printObject.getPath())){ - print.setPrint_path_list(new ArrayList<>()); - }else { - print.setPrint_path_list(Collections.singletonList(printObject.getPath())); - } - if (StringUtils.isEmpty(clothesPath) - || "none".equals(clothesPath) - || CollectionUtils.isEmpty(printObject.getPrints())) { - return print; - } +// if(StringUtils.isEmpty(printObject.getPath())){ +// print.setPrint_path_list(new ArrayList<>()); +// }else { +// print.setPrint_path_list(Collections.singletonList(printObject.getPath())); +// } +// if (StringUtils.isEmpty(clothesPath) +// || "none".equals(clothesPath) +// || CollectionUtils.isEmpty(printObject.getPrints())) { +// return print; +// } //图片宽 高 - FileVO fileVO = FileUtil.getFileSize(FileUtil.getOriginFile(clothesPath)); +// FileVO fileVO = FileUtil.getFileSize(FileUtil.getOriginFile(clothesPath)); /* List> locations = printObject.getLocation(); locations.forEach(location -> { location.set(0, location.get(0) * fileVO.getWidth()); location.set(1, location.get(1) * fileVO.getHigh()); });*/ - List> location = new ArrayList<>(printObject.getPrints().size()); - List scale = new ArrayList<>(printObject.getPrints().size()); - List angle = new ArrayList<>(printObject.getPrints().size()); + List> location = new ArrayList<>(printObject.getPrints().size()); + List scale = new ArrayList<>(printObject.getPrints().size()); + List angle = new ArrayList<>(printObject.getPrints().size()); + ArrayList paths = new ArrayList<>(printObject.getPrints().size()); // 设置印花的位置、大小、旋转角度 List prints = printObject.getPrints(); prints.forEach(p -> { - p.getLocation().set(0,p.getLocation().get(0)); - p.getLocation().set(1,p.getLocation().get(1)); - Integer priority = p.getPriority(); - location.add(priority - 1, p.getLocation()); - scale.add(priority - 1,p.getScale()); - angle.add(priority - 1,p.getAngle()); - log.info("本次print打点locations###{}###fileVO{}", p.getLocation(), JSON.toJSONString(fileVO)); + if (printObject.getIfSingle().equals(Boolean.FALSE)){ + scale.add(p.getScale()); + paths.add(p.getPath()); + }else { + p.getLocation().set(0,p.getLocation().get(0)); + p.getLocation().set(1,p.getLocation().get(1)); + Integer priority = p.getPriority(); + location.add(priority - 1, p.getLocation()); + scale.add(priority - 1,p.getScale()); + angle.add(priority - 1,p.getAngle()); + paths.add(priority - 1,p.getPath()); + } +// log.info("本次print打点locations###{}###fileVO{}", p.getLocation(), JSON.toJSONString(fileVO)); }); print.setLocation(location); print.setPrint_scale_list(scale); print.setPrint_angle_list(angle); + print.setPrint_path_list(paths); return print; } diff --git a/src/main/java/com/ai/da/python/vo/DesignPythonItemPrint.java b/src/main/java/com/ai/da/python/vo/DesignPythonItemPrint.java index 642c29eb..26a1a55f 100644 --- a/src/main/java/com/ai/da/python/vo/DesignPythonItemPrint.java +++ b/src/main/java/com/ai/da/python/vo/DesignPythonItemPrint.java @@ -33,13 +33,13 @@ public class DesignPythonItemPrint { @ApiModelProperty("print的位置 传 [[0.2, 0.2]]") - private List> location; + private List> location; @ApiModelProperty("print的缩放比例 传 [0.2, 0.2]") - private List print_scale_list; + private List print_scale_list; @ApiModelProperty("print的旋转角度 传 [0.2, 0.2]") - private List print_angle_list; + private List print_angle_list; @JSONField(name="IfSingle") public Boolean getIfSingle() { diff --git a/src/main/java/com/ai/da/service/DesignItemDetailPrintService.java b/src/main/java/com/ai/da/service/DesignItemDetailPrintService.java new file mode 100644 index 00000000..a8a33cc4 --- /dev/null +++ b/src/main/java/com/ai/da/service/DesignItemDetailPrintService.java @@ -0,0 +1,12 @@ +package com.ai.da.service; + +import com.ai.da.mapper.entity.DesignItemDetailPrint; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +public interface DesignItemDetailPrintService extends IService { + List getByDesignItemDetailId(Long designItemDetailId); + + void deleteByDesignItemDetailId(Long designItemDetailId); +} diff --git a/src/main/java/com/ai/da/service/impl/DesignItemDetailPrintServiceImpl.java b/src/main/java/com/ai/da/service/impl/DesignItemDetailPrintServiceImpl.java new file mode 100644 index 00000000..709d79cc --- /dev/null +++ b/src/main/java/com/ai/da/service/impl/DesignItemDetailPrintServiceImpl.java @@ -0,0 +1,35 @@ +package com.ai.da.service.impl; + +import com.ai.da.mapper.DesignItemDetailPrintMapper; +import com.ai.da.mapper.entity.DesignItemDetailPrint; +import com.ai.da.mapper.entity.TDesignPythonOutfitDetail; +import com.ai.da.service.DesignItemDetailPrintService; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class DesignItemDetailPrintServiceImpl extends ServiceImpl implements DesignItemDetailPrintService { + + + @Override + public List getByDesignItemDetailId(Long designItemDetailId){ + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("design_item_detail_id",designItemDetailId); + + return baseMapper.selectList(queryWrapper); + } + + @Override + public void deleteByDesignItemDetailId(Long designItemDetailId){ + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("design_item_detail_id", designItemDetailId); + updateWrapper.set("is_deleted",(byte)1); + + baseMapper.update(null,updateWrapper); + } + +} 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 5158b7c8..5dbcf493 100644 --- a/src/main/java/com/ai/da/service/impl/DesignItemServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/DesignItemServiceImpl.java @@ -13,6 +13,7 @@ import com.ai.da.mapper.entity.*; import com.ai.da.model.dto.DesignSingleDTO; import com.ai.da.model.dto.DesignSingleIncludeLayersDTO; import com.ai.da.model.dto.DesignSingleItemDTO; +import com.ai.da.model.dto.DesignSinglePrintDTO; import com.ai.da.model.vo.*; import com.ai.da.python.PythonService; import com.ai.da.python.vo.DesignPythonItem; @@ -26,7 +27,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.util.Assert; @@ -68,6 +68,8 @@ public class DesignItemServiceImpl extends ServiceImpl saveDesignSingleItemDetailAndLayers(DesignPythonObjects pythonObjects - , Long designId,Long designItemId, Long collectionId, AuthPrincipalVo userInfo - , JSONObject outfit, String timeZone){ + , Long designId,Long designItemId, AuthPrincipalVo userInfo + , JSONObject outfit, String timeZone,List designSingleItemDTOList){ 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); - - //更新designItem + // 1、更新designItem updateById(designItem); - //删除designItemDetail(逻辑删除) + // 2、删除designItemDetail(逻辑删除) designItemDetailService.deleteByDesignItemId(designItemId); - List designItemDetails = Lists.newArrayList(); - // 保存新的designItemDetail + // 3、保存新的designItemDetail pythonObjects.getObjects().get(0).getItems().forEach(detail ->{ if(null == detail){ return; @@ -313,23 +313,28 @@ public class DesignItemServiceImpl extends ServiceImpl designItemDetailPrints = setDesignItemDetailPrintList(designItemDetails, designSingleItemDTOList, timeZone); + designItemDetailPrintService.saveBatch(designItemDetailPrints); + + // 5、覆盖designPythonOutfit表中的模特全身图 TDesignPythonOutfit designPythonOutfit = new TDesignPythonOutfit(); designPythonOutfit.setDesignUrl(outfit.getString("synthesis_url")); designPythonOutfit.setId(designPythonOutfitService.getByDesignItemId(designItemId).getId()); designPythonOutfit.setUpdateDate(LocalDateTime.now(ZoneId.of(timeZone))); designPythonOutfitService.updateById(designPythonOutfit); - // 删除designPythonOutfitDetail表中原始的图层信息(逻辑删除) + // 6、删除designPythonOutfitDetail表中原始的图层信息(逻辑删除) designPythonOutfitDetailService.deleteByDesignPythonOutfitId(designPythonOutfit.getId()); - // 将新生成的图层信息存入designPythonOutfitDetail表 + // 7、将新生成的图层信息存入designPythonOutfitDetail表 JSONArray layers = outfit.getJSONArray("layers"); List list = setTDesignPythonOutfitDetailList(layers, designId, designPythonOutfit.getId(), userInfo.getId()); @@ -401,7 +406,7 @@ public class DesignItemServiceImpl extends ServiceImpl { DesignItemClothesDetailVO designItemClothesDetailVO = new DesignItemClothesDetailVO(); + designItemClothesDetailVO.setId(singleItem.getId()); designItemClothesDetailVO.setType(singleItem.getType()); designItemClothesDetailVO.setColor(panToneService.getPantoneByRgb(singleItem.getColor())); - designItemClothesDetailVO.setPrintObject(new DesignPythonItemPrint(singleItem.getPrintObject().getPath())); +// designItemClothesDetailVO.setPrintObject(new DesignPythonItemPrint(singleItem.getPrintObject().getPath())); + designItemClothesDetailVO.setPrintObject(singleItem.getPrintObject()); designItemClothesDetailVO.setLayersObject(layersObject.stream().filter( layers -> singleItem.getType().toLowerCase().equals(layers.getImageCategory().split("_")[0]) ).collect(Collectors.toList())); @@ -447,4 +454,46 @@ public class DesignItemServiceImpl extends ServiceImpl setDesignItemDetailPrintList(List designItemDetails, + List designSingleItemDTOList, + String timeZone){ + + Map designItemDetailTypeIdMap = designItemDetails.stream().collect(Collectors.toMap(DesignItemDetail::getType, DesignItemDetail::getId)); + ArrayList designItemDetailPrints = new ArrayList<>(); + + designSingleItemDTOList.forEach(designSingleItem -> { + // 1、判断有无印花,无印花则跳过 + DesignSinglePrintDTO printObject = designSingleItem.getPrintObject(); + if (printObject.getIfSingle().equals(Boolean.FALSE) + && CollectionUtil.isEmpty(printObject.getPrints()) ){ + return; + }else { + // 2、有印花,添加到list + printObject.getPrints().forEach(print -> { + // 2.1 判断是否第一次添加印花,是:直接添加 + List designItemDetailPrintList = designItemDetailPrintService.getByDesignItemDetailId(designItemDetailTypeIdMap.get(designSingleItem.getType())); + if (!designItemDetailPrintList.isEmpty()){ + // 2.2 否:先删除原始印花,再添加新印花信息 + designItemDetailPrintService.deleteByDesignItemDetailId(designItemDetailTypeIdMap.get(designSingleItem.getType())); + } + DesignItemDetailPrint designItemDetailPrint = new DesignItemDetailPrint(); + designItemDetailPrint.setDesignItemDetailId(designItemDetailTypeIdMap.get(designSingleItem.getType())); + designItemDetailPrint.setPath(print.getPath()); + designItemDetailPrint.setScale(print.getScale()); + designItemDetailPrint.setSingleOrOverall(printObject.getIfSingle() ? "single" : "overall"); + designItemDetailPrint.setCreateDate(LocalDateTime.now(ZoneId.of(timeZone))); + // single模式下才有position、angle和priority + if (designItemDetailPrint.getSingleOrOverall().equals("single")){ + designItemDetailPrint.setPosition(print.getLocation().toString()); + designItemDetailPrint.setAngle(print.getAngle()); + designItemDetailPrint.setPriority(print.getPriority()); + } + designItemDetailPrints.add(designItemDetailPrint); + }); + } + }); + return designItemDetailPrints; + } + } 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 4dd88a2d..74c4d3e4 100644 --- a/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java @@ -5,7 +5,6 @@ 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.SysFileLevel2TypeEnum; import com.ai.da.common.utils.*; import com.ai.da.mapper.DesignMapper; @@ -19,7 +18,6 @@ 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; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -27,7 +25,6 @@ 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; @@ -82,6 +79,8 @@ public class DesignServiceImpl extends ServiceImpl impleme private PanToneService panToneService; @Resource private PythonTAllInfoService pythonTAllInfoService; + @Resource + private DesignItemDetailPrintService designItemDetailPrintService; // @Transactional @Override @@ -811,13 +810,20 @@ public class DesignServiceImpl extends ServiceImpl impleme response.setClothes(CopyUtil.copyList(filterDetail,DesignItemClothesDetailVO.class,(o,d)->{ d.setId(o.getId()); d.setLevel1Type(converTypeToLevel1(o.getType())); - String printJson = o.getPrintJson(); - if (StringUtils.isEmpty(printJson)) { - d.setPrintObject(new DesignPythonItemPrint(o.getPrintPath(), - CollectionLevel1TypeEnum.PRINT_BOARD.getRealName(), 0.3f, Boolean.FALSE)); - } else { - d.setPrintObject(JSON.parseObject(printJson, DesignPythonItemPrint.class)); + // 根据designItemDetailId获取印花 + List prints = designItemDetailPrintService.getByDesignItemDetailId(o.getId()); + // 判断有无印花 + if (CollectionUtil.isNotEmpty(prints)){ + // 有印花 + d.setPrintObject(convertToDesignSinglePrintDTO(prints)); } +// String printJson = o.getPrintJson(); +// if (StringUtils.isEmpty(printJson)) { +// d.setPrintObject(new DesignPythonItemPrint(o.getPrintPath(), +// CollectionLevel1TypeEnum.PRINT_BOARD.getRealName(), 0.3f, Boolean.FALSE)); +// } else { +// d.setPrintObject(JSON.parseObject(printJson, DesignPythonItemPrint.class)); +// } })); //single 和 Models(模特)时候 系统元素为空 List filterDetail2 = designItemDetails.stream() @@ -879,25 +885,6 @@ public class DesignServiceImpl extends ServiceImpl impleme * @return */ private DesignItemDetailVO editResponseColor(List designItemDetails, DesignItemDetailVO designItemDetailVO) { - /*designItemDetails.forEach(d -> { - if (!StringUtil.isNullOrEmpty(d.getColor())){ - PantoneVO pantoneByRgb = panToneService.getPantoneByRgb(d.getColor()); - DesignItemClothesDetailVO clothesDetailVO = designItemDetailVO.getClothes().stream() - .filter(v -> v.getId().equals(d.getBusinessId())) - .findFirst().orElse(null); - if (Objects.nonNull(clothesDetailVO)){ - clothesDetailVO.setColor(pantoneByRgb); - } else { - DesignItemOthersDetailVO othersDetailVO = designItemDetailVO.getOthers().stream() - .filter(v -> v.getId().equals(d.getBusinessId())) - .findFirst().orElse(null); - - if (Objects.nonNull(othersDetailVO)) { - othersDetailVO.setColor(pantoneByRgb); - } - } - } - });*/ // 使用designItemDetailId做映射 HashMap designItemDetailIdColor = new HashMap<>(); designItemDetails.forEach(designItemDetail -> { @@ -921,7 +908,6 @@ public class DesignServiceImpl extends ServiceImpl impleme return designItemDetailVO; } - private DesignItemDetailVO editDesignItemLayer(Boolean flag, TDesignPythonOutfit designPythonOutfit, String designItemUrl, DesignItemDetailVO designItemDetailVO) { ArrayList detailsVO = new ArrayList<>(); @@ -959,4 +945,44 @@ public class DesignServiceImpl extends ServiceImpl impleme return designItemDetailVO; } + + private DesignSinglePrintDTO convertToDesignSinglePrintDTO(List designItemDetailPrints){ + DesignSinglePrintDTO designSinglePrintDTO = new DesignSinglePrintDTO(); + List prints = new ArrayList<>(); + + // 只有一个印花 + if (designItemDetailPrints.size() == 1){ + DesignItemDetailPrint detailPrint = designItemDetailPrints.get(0); + DesignSinglePrint designSinglePrint = new DesignSinglePrint(); + // overall 模式下只需要返回印花url和scale + if (detailPrint.getSingleOrOverall().equals("overall")){ + designSinglePrintDTO.setIfSingle(Boolean.FALSE); + }else { + designSinglePrintDTO.setIfSingle(Boolean.TRUE); + designSinglePrint.setLocation(JSONArray.parseArray(detailPrint.getPosition(),Double.class)); + designSinglePrint.setScale(detailPrint.getScale()); + designSinglePrint.setAngle(detailPrint.getAngle()); + designSinglePrint.setPriority(detailPrint.getPriority()); + } + designSinglePrint.setPath(detailPrint.getPath()); + designSinglePrint.setScale(detailPrint.getScale()); + prints.add(designSinglePrint); + }else { + // single模式下多个印花 + designSinglePrintDTO.setIfSingle(Boolean.TRUE); + designItemDetailPrints.forEach(print -> { + if (print.getSingleOrOverall().equals("single")){ + prints.add(new DesignSinglePrint(print.getPath(), + JSONArray.parseArray(print.getPosition(),Double.class), + print.getScale(), + print.getAngle(), + print.getPriority())); + } + + }); + } + designSinglePrintDTO.setPrints(prints); + return designSinglePrintDTO; + + } }