Merge remote-tracking branch 'origin/dev/dev' into dev/dev

This commit is contained in:
shahaibo
2025-05-29 16:17:49 +08:00
3 changed files with 42 additions and 12 deletions

View File

@@ -64,6 +64,7 @@ public class DesignItem implements Serializable {
private Byte hasLike; private Byte hasLike;
private Long modelId; private Long modelId;
private String modelType; private String modelType;
/** /**

View File

@@ -34,6 +34,12 @@ public class DesignSingleIncludeLayersDTO implements Serializable {
@ApiModelProperty("本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取") @ApiModelProperty("本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取")
private String timeZone; private String timeZone;
@ApiModelProperty("模特id 每套衣服允许有一个单独的模特")
private Long modelId;
@ApiModelProperty("模特类型 System || Library")
private String modelType;
@Override @Override
public String toString() { public String toString() {
return "DesignSingleIncludeLayersDTO{" + return "DesignSingleIncludeLayersDTO{" +

View File

@@ -326,13 +326,19 @@ public class DesignItemServiceImpl extends ServiceImpl<DesignItemMapper, DesignI
private List<TDesignPythonOutfitDetail> saveDesignSingleItemDetailAndLayers(DesignPythonObjects pythonObjects private List<TDesignPythonOutfitDetail> saveDesignSingleItemDetailAndLayers(DesignPythonObjects pythonObjects
, Long designId, Long designItemId, Long userId , Long designId, Long designItemId, Long userId
, JSONObject outfit, String timeZone, List<DesignSingleItemDTO> designSingleItemDTOList , JSONObject outfit, String timeZone, List<DesignSingleItemDTO> designSingleItemDTOList
, Map<String, String> categoryAndUndividedLayer) { , Map<String, String> categoryAndUndividedLayer
, boolean changeModelFlag
, Long modelId, String modelType) {
DesignItem designItem = new DesignItem(); DesignItem designItem = new DesignItem();
// String url = pythonObjects.getObjects().get(0).getBasic().getSave_name(); // String url = pythonObjects.getObjects().get(0).getBasic().getSave_name();
designItem.setUpdateDate(DateUtil.getByTimeZone(timeZone)); designItem.setUpdateDate(DateUtil.getByTimeZone(timeZone));
designItem.setDesignUrl(outfit.getString("synthesis_url")); designItem.setDesignUrl(outfit.getString("synthesis_url"));
designItem.setId(designItemId); designItem.setId(designItemId);
if (changeModelFlag){
designItem.setModelId(modelId);
designItem.setModelType(modelType);
}
// 1、更新designItem // 1、更新designItem
updateById(designItem); updateById(designItem);
// 2、删除designItemDetail(逻辑删除) // 2、删除designItemDetail(逻辑删除)
@@ -468,36 +474,53 @@ public class DesignItemServiceImpl extends ServiceImpl<DesignItemMapper, DesignI
} }
DesignLibraryModelPointVO designLibraryModelPointVO = null; DesignLibraryModelPointVO designLibraryModelPointVO = null;
// 设置模特 // overall模式下 设置模特点位
if (Objects.nonNull(design.getTemplateId())) { boolean changeModelFlag = false;
Long modelId = null;
String modelType = null;
if (design.getSingleOverall().equals("overall")){
// 优先级 1、判断当前入参中是否有model数据 无 -> 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; String modelUrl;
Integer high; Integer high;
Integer width; Integer width;
if (design.getModelType().equals(ModelType.SYSTEM.getValue())) { if (modelType.equals(ModelType.SYSTEM.getValue())) {
SysFileVO sysFile = sysFileService.getById(design.getTemplateId()); SysFileVO sysFile = sysFileService.getById(modelId);
if (Objects.isNull(sysFile)) { if (Objects.isNull(sysFile)) {
throw new BusinessException("model.not.found"); throw new BusinessException("model.not.found");
} }
modelUrl = sysFile.getUrl(); modelUrl = sysFile.getUrl();
high = 700; high = 700;
width = 320; width = 320;
} else if (design.getModelType().equals(ModelType.LIBRARY.getValue())){ } else if (modelType.equals(ModelType.LIBRARY.getValue())){
Library libFile = libraryService.getById(design.getTemplateId()); Library libFile = libraryService.getById(modelId);
if (Objects.isNull(libFile)) { if (Objects.isNull(libFile)) {
throw new BusinessException("model.not.found"); throw new BusinessException("model.not.found");
} }
modelUrl = libFile.getUrl(); modelUrl = libFile.getUrl();
high = libFile.getHigh(); high = libFile.getHigh();
width = libFile.getWidth(); width = libFile.getWidth();
}else { } else {
throw new BusinessException("unknown.modelType"); throw new BusinessException("unknown.modelType");
} }
LibraryModelPoint modelPoint = libraryModelPointService.getByRelationId(design.getTemplateId(), design.getModelType()); LibraryModelPoint modelPoint = libraryModelPointService.getByRelationId(modelId, modelType);
if (Objects.isNull(modelPoint)) { if (Objects.isNull(modelPoint)) {
throw new BusinessException("modelPoint.not.found"); throw new BusinessException("modelPoint.not.found");
} }
// Assert.notNull(modelPoint, "The model has not been tagged");
designLibraryModelPointVO = collectionElementService.calculateTemplatePoint(modelPoint, high, width, modelUrl); designLibraryModelPointVO = collectionElementService.calculateTemplatePoint(modelPoint, high, width, modelUrl);
} }
@@ -551,7 +574,7 @@ public class DesignItemServiceImpl extends ServiceImpl<DesignItemMapper, DesignI
tDesignPythonOutfitDetails = saveDesignSingleItemDetailAndLayers(objects, design.getId(), designSingleIncludeLayersDTO.getDesignItemId() tDesignPythonOutfitDetails = saveDesignSingleItemDetailAndLayers(objects, design.getId(), designSingleIncludeLayersDTO.getDesignItemId()
, userId, outfit, designSingleIncludeLayersDTO.getTimeZone() , userId, outfit, designSingleIncludeLayersDTO.getTimeZone()
, designSingleIncludeLayersDTO.getDesignSingleItemDTOList() , designSingleIncludeLayersDTO.getDesignSingleItemDTOList()
, categoryAndUndividedLayer); , categoryAndUndividedLayer, changeModelFlag, modelId, modelType);
saveCollectionElement(designSingleIncludeLayersDTO); saveCollectionElement(designSingleIncludeLayersDTO);
} else { } else {