BUGFIX:单品设计偏移量为空问题

This commit is contained in:
2025-07-24 17:18:40 +08:00
parent fd29452e0c
commit 565b5c3de1

View File

@@ -330,7 +330,7 @@ public class DesignItemServiceImpl extends ServiceImpl<DesignItemMapper, DesignI
, JSONObject outfit, String timeZone, List<DesignSingleItemDTO> designSingleItemDTOList
, Map<String, String> categoryAndUndividedLayer
, boolean changeModelFlag
, Long modelId, String modelType) {
, Long modelId, String modelType, boolean isSingleCollectionFlag) {
DesignItem designItem = new DesignItem();
// String url = pythonObjects.getObjects().get(0).getBasic().getSave_name();
@@ -389,8 +389,11 @@ public class DesignItemServiceImpl extends ServiceImpl<DesignItemMapper, DesignI
// 7、将新生成的图层信息存入designPythonOutfitDetail表
JSONArray layers = outfit.getJSONArray("layers");
Map<Integer, List<Long>> priorityOffset = designSingleItemDTOList.stream()
.collect(Collectors.toMap(DesignSingleItemDTO::getPriority, DesignSingleItemDTO::getOffset));
Map<Integer, List<Long>> priorityOffset = null;
if (!isSingleCollectionFlag){
priorityOffset = designSingleItemDTOList.stream()
.collect(Collectors.toMap(DesignSingleItemDTO::getPriority, DesignSingleItemDTO::getOffset));
}
List<TDesignPythonOutfitDetail> list = setTDesignPythonOutfitDetailList(layers, designId, designPythonOutfit.getId(), userId, priorityOffset);
designPythonOutfitDetailService.saveBatch(list);
@@ -415,7 +418,9 @@ public class DesignItemServiceImpl extends ServiceImpl<DesignItemMapper, DesignI
designPythonOutfitDetail.setMaskUrl(jsonObject.getString("mask_url"));
designPythonOutfitDetail.setScale(Objects.isNull(jsonObject.getString("resize_scale")) ? "1.0" : jsonObject.getString("resize_scale"));
designPythonOutfitDetail.setUserId(userId);
designPythonOutfitDetail.setOffset(String.valueOf(priorityOffset.get(Math.abs(Integer.parseInt(jsonObject.getString("priority"))))));
if (priorityOffset != null && !priorityOffset.isEmpty()){
designPythonOutfitDetail.setOffset(String.valueOf(priorityOffset.get(Math.abs(Integer.parseInt(jsonObject.getString("priority"))))));
}
designPythonOutfitDetail.setPriority((Integer) jsonObject.get("priority"));
designPythonOutfitDetail.setCreateDate(LocalDateTime.now());
list.add(designPythonOutfitDetail);
@@ -480,7 +485,11 @@ public class DesignItemServiceImpl extends ServiceImpl<DesignItemMapper, DesignI
boolean changeModelFlag = false;
Long modelId = null;
String modelType = null;
Map<Integer, List<Long>> priorityOffset = new HashMap<>();
// 单品设计标志
boolean isSingleCollectionFlag = true;
if (design.getSingleOverall().equals("overall")){
isSingleCollectionFlag = false;
// 优先级 1、判断当前入参中是否有model数据 无 -> 2、判断design item 中是否有model数据 无 -> 3、从design表中拿model数据 仍然没有 报错
if (!Objects.isNull(designSingleIncludeLayersDTO.getModelId()) && !StringUtil.isNullOrEmpty(designSingleIncludeLayersDTO.getModelType())){
modelId = designSingleIncludeLayersDTO.getModelId();
@@ -524,6 +533,15 @@ public class DesignItemServiceImpl extends ServiceImpl<DesignItemMapper, DesignI
throw new BusinessException("modelPoint.not.found");
}
designLibraryModelPointVO = collectionElementService.calculateTemplatePoint(modelPoint, high, width, modelUrl);
// 通过priority将offset关联到layers
try{
priorityOffset = designSingleIncludeLayersDTO.getDesignSingleItemDTOList().stream()
.collect(Collectors.toMap(DesignSingleItemDTO::getPriority, DesignSingleItemDTO::getOffset));
}catch (IllegalStateException e){
// priority重复
log.info("服装的priority重复");
throw new BusinessException("priority.cannot.be.repeated");
}
}
// 画笔修改的sketch截图 上传后替换path
@@ -558,16 +576,6 @@ public class DesignItemServiceImpl extends ServiceImpl<DesignItemMapper, DesignI
throw new BusinessException("python response data is null");
}
JSONObject outfit = data.getJSONObject("0");
// 通过priority将offset关联到layers
Map<Integer, List<Long>> priorityOffset = new HashMap<>();
try{
priorityOffset = designSingleIncludeLayersDTO.getDesignSingleItemDTOList().stream()
.collect(Collectors.toMap(DesignSingleItemDTO::getPriority, DesignSingleItemDTO::getOffset));
}catch (IllegalStateException e){
// priority重复
log.info("服装的priority重复");
throw new BusinessException("priority.cannot.be.repeated");
}
JSONArray layers = outfit.getJSONArray("layers");
Map<String, String> categoryAndUndividedLayer = setTypeAndUndividedLayer(layers);
@@ -576,7 +584,7 @@ public class DesignItemServiceImpl extends ServiceImpl<DesignItemMapper, DesignI
tDesignPythonOutfitDetails = saveDesignSingleItemDetailAndLayers(objects, design.getId(), designSingleIncludeLayersDTO.getDesignItemId()
, userId, outfit, designSingleIncludeLayersDTO.getTimeZone()
, designSingleIncludeLayersDTO.getDesignSingleItemDTOList()
, categoryAndUndividedLayer, changeModelFlag, modelId, modelType);
, categoryAndUndividedLayer, changeModelFlag, modelId, modelType, isSingleCollectionFlag);
saveCollectionElement(designSingleIncludeLayersDTO);
} else {