BUGFIX:衣服图层添加优先级后对之前数据不兼容的修复

This commit is contained in:
2023-12-14 15:47:03 +08:00
parent fef71ead79
commit 86ab0806fd
5 changed files with 46 additions and 4 deletions

View File

@@ -19,4 +19,6 @@ public interface DesignItemDetailService extends IService<DesignItemDetail> {
int deleteByDesignItemId(Long designItemId);
List<DesignItemDetail> selectByDesignItemId(Long designItemId);
void setDesignItemDetailPriority(List<DesignItemDetail> designItemDetailList);
}

View File

@@ -38,4 +38,6 @@ public interface ITDesignPythonOutfitDetailService extends IService<TDesignPytho
void deleteByDesignPythonOutfitId(Long designPythonOutfitId);
void setDesignPythonOutfitDetailPriority(List<TDesignPythonOutfitDetail> details);
}

View File

@@ -1,6 +1,7 @@
package com.ai.da.service.impl;
import com.ai.da.common.config.exception.BusinessException;
import com.ai.da.common.enums.LayersPriorityEnum;
import com.ai.da.mapper.DesignItemDetailMapper;
import com.ai.da.mapper.entity.DesignItemDetail;
import com.ai.da.service.DesignItemDetailService;
@@ -13,6 +14,8 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import static com.ai.da.common.enums.LayersPriorityEnum.BODY;
/**
* 服务实现类
*
@@ -76,4 +79,21 @@ public class DesignItemDetailServiceImpl extends ServiceImpl<DesignItemDetailMap
}
return Boolean.TRUE;
}
/**
* 旧系统不允许添加多件衣服,衣服图层没有优先级,
* 升级为可以添加多件衣服后,衣服图层必须要有优先级,故出现不兼容的情况
* 在这里为没有优先级的衣服添加默认优先级
* @param designItemDetailList
* @return
*/
@Override
public void setDesignItemDetailPriority(List<DesignItemDetail> designItemDetailList){
for (DesignItemDetail detail:designItemDetailList){
if (!detail.getType().equals(BODY.getType()) && detail.getPriority().equals(BODY.getValue())){
detail.setPriority(LayersPriorityEnum.getValueByType(detail.getType()).getValue());
}
}
}
}

View File

@@ -5,10 +5,7 @@ import cn.hutool.core.exceptions.ExceptionUtil;
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.SingleOverallEnum;
import com.ai.da.common.enums.SysFileLevel2TypeEnum;
import com.ai.da.common.enums.*;
import com.ai.da.common.utils.*;
import com.ai.da.mapper.DesignMapper;
import com.ai.da.mapper.GenerateDetailMapper;
@@ -46,6 +43,7 @@ import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import static com.ai.da.common.enums.LayersPriorityEnum.BODY;
import static com.ai.da.python.vo.DesignPythonItem.*;
/**
@@ -956,6 +954,9 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
flag = Boolean.TRUE;
}
// 为没有优先级的衣服添加优先级
designItemDetailService.setDesignItemDetailPriority(designItemDetails);
// 2、组装返回参数
DesignItemDetailVO response = new DesignItemDetailVO();
response.setSingleOverall(design.getSingleOverall());
@@ -1131,6 +1132,10 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
log.error("Layer information is empty! DesignPythonOutfitId is " + designPythonOutfit.getId());
throw new BusinessException("layer.information.not.found");
}
// 为没有优先级的图层添加优先级
designPythonOutfitDetailService.setDesignPythonOutfitDetailPriority(details);
details.forEach(detail -> {
// List<Long> offset = new ArrayList<>();
// if (StringUtil.isNullOrEmpty(detail.getOffset()) || detail.getOffset().equals("null")) {

View File

@@ -1,6 +1,7 @@
package com.ai.da.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.ai.da.common.enums.LayersPriorityEnum;
import com.ai.da.common.utils.CopyUtil;
import com.ai.da.common.utils.MinioUtil;
import com.ai.da.mapper.TDesignPythonOutfitDetailMapper;
@@ -21,6 +22,8 @@ import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import static com.ai.da.common.enums.LayersPriorityEnum.BODY;
/**
* design item详情表 服务实现类
*
@@ -88,4 +91,14 @@ public class TDesignPythonOutfitDetailServiceImpl extends ServiceImpl<TDesignPyt
baseMapper.update(null, updateWrapper);
}
@Override
public void setDesignPythonOutfitDetailPriority(List<TDesignPythonOutfitDetail> details){
for (TDesignPythonOutfitDetail detail:details){
if (!detail.getImageCategory().equals(BODY.getRealName()) && detail.getPriority().equals(BODY.getValue())){
detail.setPriority(LayersPriorityEnum.getValueByLayerCategory(detail.getImageCategory()).getValue());
}
}
}
}