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 0b0e71af..678b3e8d 100644 --- a/src/main/java/com/ai/da/mapper/entity/TDesignPythonOutfitDetail.java +++ b/src/main/java/com/ai/da/mapper/entity/TDesignPythonOutfitDetail.java @@ -71,6 +71,11 @@ public class TDesignPythonOutfitDetail implements Serializable { */ @ApiModelProperty(value = "位置") private String position; + /** + * 偏移量 + */ + @ApiModelProperty(value = "偏移量") + private String offset; /** * 图层缩放大小 */ diff --git a/src/main/java/com/ai/da/model/vo/DesignPythonOutfitVO.java b/src/main/java/com/ai/da/model/vo/DesignPythonOutfitVO.java index 60adac03..55c5cef7 100644 --- a/src/main/java/com/ai/da/model/vo/DesignPythonOutfitVO.java +++ b/src/main/java/com/ai/da/model/vo/DesignPythonOutfitVO.java @@ -46,7 +46,9 @@ public class DesignPythonOutfitVO { */ @ApiModelProperty(value = "位置") private List position; - + /** + * 偏移量 + */ @ApiModelProperty(value = "偏移量") private List offset; /** diff --git a/src/main/java/com/ai/da/service/ITDesignPythonOutfitDetailService.java b/src/main/java/com/ai/da/service/ITDesignPythonOutfitDetailService.java index 0c7fccb6..5b2e9eda 100644 --- a/src/main/java/com/ai/da/service/ITDesignPythonOutfitDetailService.java +++ b/src/main/java/com/ai/da/service/ITDesignPythonOutfitDetailService.java @@ -33,7 +33,7 @@ public interface ITDesignPythonOutfitDetailService extends IService getDetailByDesignPythonOutfitId(Long designPythonOutfitId); - DesignPythonOutfitVO convertToDesignPythonOutfitVO(TDesignPythonOutfitDetail detail,List type); + DesignPythonOutfitVO convertToDesignPythonOutfitVO(TDesignPythonOutfitDetail detail,List offset); void deleteByDesignPythonOutfitId(Long designPythonOutfitId); 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 2e35889d..07640321 100644 --- a/src/main/java/com/ai/da/service/impl/DesignItemServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/DesignItemServiceImpl.java @@ -334,14 +334,19 @@ public class DesignItemServiceImpl extends ServiceImpl list = setTDesignPythonOutfitDetailList(layers, designId, designPythonOutfit.getId(), userInfo.getId()); + // 需要将request中的offset也存入数据库,通过type与image_category将sketch与layers关联 + Map> typeOffset = designSingleItemDTOList.stream() + .collect(Collectors.toMap(d -> d.getType().toLowerCase(), DesignSingleItemDTO::getOffset)); + List list = setTDesignPythonOutfitDetailList(layers, designId, designPythonOutfit.getId(), userInfo.getId(),typeOffset); designPythonOutfitDetailService.saveBatch(list); return list; } - public List setTDesignPythonOutfitDetailList(JSONArray layers, Long designId, Long designPythonOutfitId, Long userId){ + public List setTDesignPythonOutfitDetailList(JSONArray layers, Long designId, + Long designPythonOutfitId, Long userId, + Map> typeOffset){ // 设置图层信息; List list = new ArrayList<>(); for (int i = 0; i < layers.size(); i++) { @@ -356,6 +361,7 @@ public class DesignItemServiceImpl extends ServiceImpl> typeOffset = designSingleIncludeLayersDTO.getDesignSingleItemDTOList().stream() + .collect(Collectors.toMap(d -> d.getType().toLowerCase(), DesignSingleItemDTO::getOffset)); if (!designSingleIncludeLayersDTO.getIsPreview()){ // 更新及保存图层信息 tDesignPythonOutfitDetails = saveDesignSingleItemDetailAndLayers(objects, design.getId(), designSingleIncludeLayersDTO.getDesignItemId(), userInfo, outfit, designSingleIncludeLayersDTO.getTimeZone(),designSingleIncludeLayersDTO.getDesignSingleItemDTOList()); }else { JSONArray layers = outfit.getJSONArray("layers"); - tDesignPythonOutfitDetails = setTDesignPythonOutfitDetailList(layers,designItem.getDesignId(),null,userInfo.getId()); + tDesignPythonOutfitDetails = setTDesignPythonOutfitDetailList(layers,designItem.getDesignId(),null,userInfo.getId(),typeOffset); } List detailsVO = new ArrayList<>(); tDesignPythonOutfitDetails.forEach(detail -> { - Map> typeOffset = designSingleIncludeLayersDTO.getDesignSingleItemDTOList().stream() - .collect(Collectors.toMap(d -> d.getType().toLowerCase(), DesignSingleItemDTO::getOffset)); String type = detail.getImageCategory().split("_")[0]; detailsVO.add(designPythonOutfitDetailService.convertToDesignPythonOutfitVO(detail,typeOffset.get(type))); }); 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 04698d28..3168b74c 100644 --- a/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java @@ -992,7 +992,13 @@ public class DesignServiceImpl extends ServiceImpl impleme List details = designPythonOutfitDetailService.getDetailByDesignPythonOutfitId(designPythonOutfit.getId()); Assert.notEmpty(details, "Some errors occurred, please restart the design"); details.forEach(detail -> { - detailsVO.add(designPythonOutfitDetailService.convertToDesignPythonOutfitVO(detail,null)); + List offset = new ArrayList<>(); + if (detail.getOffset().equals("null")){ + offset = Arrays.asList(0L,0L); + }else { + offset = Arrays.stream(detail.getOffset().replaceAll("\\[|\\]", "").split(",")).map(s -> Long.parseLong(s.trim())).collect(Collectors.toList()); + } + detailsVO.add(designPythonOutfitDetailService.convertToDesignPythonOutfitVO(detail,offset)); }); // 2、将查询出的图层信息填充到designItemDetailVO中 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 36c59193..f451af03 100644 --- a/src/main/java/com/ai/da/service/impl/TDesignPythonOutfitDetailServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/TDesignPythonOutfitDetailServiceImpl.java @@ -1,9 +1,9 @@ package com.ai.da.service.impl; +import cn.hutool.core.collection.CollectionUtil; import com.ai.da.common.utils.CopyUtil; import com.ai.da.common.utils.MinioUtil; import com.ai.da.mapper.TDesignPythonOutfitDetailMapper; -import com.ai.da.mapper.entity.DesignItemDetail; import com.ai.da.mapper.entity.TDesignPythonOutfitDetail; import com.ai.da.model.vo.DesignPythonOutfitVO; import com.ai.da.model.vo.TDesignPythonOutfitDetailVO; @@ -13,16 +13,13 @@ 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 io.netty.util.internal.StringUtil; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.metadata.IPage; import javax.annotation.Resource; -import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Objects; -import java.util.stream.Collectors; /** * design item详情表 服务实现类 @@ -62,7 +59,7 @@ public class TDesignPythonOutfitDetailServiceImpl extends ServiceImpl size = Arrays.stream(detail.getImageSize().replaceAll("\\[|\\]", "").split(",")).map(s -> Long.parseLong(s.trim())).collect(Collectors.toList());