TASK:男装;

This commit is contained in:
shahaibo
2023-10-10 15:02:06 +08:00
parent 84c45cb550
commit e6a72b6a32
6 changed files with 42 additions and 36 deletions

View File

@@ -44,4 +44,5 @@ public class ValidateElementVO {
List<String> designPrintPictureTypeLayoutList;
//透传sysFileVo用(attribute_retrieval 接口限定sysFile范围)
List<SysFileVO> sysFileVo;
private String modelSex;
}

View File

@@ -437,7 +437,7 @@ public class PythonService {
pythonItem.setBody_path("aida-mannequins/model_1693218345.2714432.png");
}
} else {
SysFileVO sysFileVO = getRandomSysFileByLevel2Type(type, Lists.newArrayList());
SysFileVO sysFileVO = getRandomSysFileByLevel2Type(type, Lists.newArrayList(), elementVO.getModelSex());
pythonItem.setPath(sysFileVO.getUrl());
pythonItem.setBusinessId(sysFileVO.getId());
if (SysFileLevel2TypeEnum.SHOES.getRealName().equals(type)) {
@@ -511,14 +511,14 @@ public class PythonService {
if (SingleOverallEnum.SINGLE.getRealName().equals(elementVO.getSingleOverall())) {
if (DesignPythonItem.SKIRT_TROUSERS.contains(elementVO.getSwitchCategory())) {
//系统获取
SysFileVO sysFileVO = getRandomSysFileByLevel2Type(elementVO.getSwitchCategory(), elementVO.getSysFileIds());
SysFileVO sysFileVO = getRandomSysFileByLevel2Type(elementVO.getSwitchCategory(), elementVO.getSysFileIds(), elementVO.getModelSex());
skirt = coverToDesignPythonItem(null, sysFileVO.getLevel2Type(), sysFileVO.getUrl(), elementVO);
skirt.setBusinessId(sysFileVO.getId());
return skirt;
}
} else {
//系统获取
SysFileVO sysFileVO = getRandomSysFileSkirt(elementVO.getSysFileVo(),elementVO.getSysFileIds());
SysFileVO sysFileVO = getRandomSysFileSkirt(elementVO.getSysFileVo(),elementVO.getSysFileIds(), elementVO.getModelSex());
skirt = coverToDesignPythonItem(null, sysFileVO.getLevel2Type(), sysFileVO.getUrl(), elementVO);
skirt.setBusinessId(sysFileVO.getId());
//添加已使用的md5
@@ -534,7 +534,7 @@ public class PythonService {
Arrays.asList(elementVO.getSwitchCategory()), elementVO.getHasUseMd5List());
if (StringUtils.isEmpty(libraryVo)) {
//系统获取
SysFileVO sysFileVO = getRandomSysFileByLevel2Type(elementVO.getSwitchCategory(), elementVO.getSysFileIds());
SysFileVO sysFileVO = getRandomSysFileByLevel2Type(elementVO.getSwitchCategory(), elementVO.getSysFileIds(), elementVO.getModelSex());
skirt = coverToDesignPythonItem(null, sysFileVO.getLevel2Type(), sysFileVO.getUrl(), elementVO);
skirt.setBusinessId(sysFileVO.getId());
return skirt;
@@ -548,7 +548,7 @@ public class PythonService {
DesignPythonItem.SKIRT_TROUSERS, elementVO.getHasUseMd5List());
if (StringUtils.isEmpty(libraryVo)) {
//系统获取
SysFileVO sysFileVO = getRandomSysFileSkirt(elementVO.getSysFileVo(),elementVO.getSysFileIds());
SysFileVO sysFileVO = getRandomSysFileSkirt(elementVO.getSysFileVo(),elementVO.getSysFileIds(), elementVO.getModelSex());
skirt = coverToDesignPythonItem(null, sysFileVO.getLevel2Type(), sysFileVO.getUrl(), elementVO);
skirt.setBusinessId(sysFileVO.getId());
//添加已使用的md5
@@ -564,14 +564,14 @@ public class PythonService {
if (SingleOverallEnum.SINGLE.getRealName().equals(elementVO.getSingleOverall())) {
if (DesignPythonItem.SKIRT_TROUSERS.contains(elementVO.getSwitchCategory())) {
//系统获取
SysFileVO sysFileVO = getRandomSysFileByLevel2Type(elementVO.getSwitchCategory(), elementVO.getSysFileIds());
SysFileVO sysFileVO = getRandomSysFileByLevel2Type(elementVO.getSwitchCategory(), elementVO.getSysFileIds(), elementVO.getModelSex());
skirt = coverToDesignPythonItem(null, sysFileVO.getLevel2Type(), sysFileVO.getUrl(), elementVO);
skirt.setBusinessId(sysFileVO.getId());
return skirt;
}
} else {
//系统获取
SysFileVO sysFileVO = getRandomSysFileSkirt(elementVO.getSysFileVo(),elementVO.getSysFileIds());
SysFileVO sysFileVO = getRandomSysFileSkirt(elementVO.getSysFileVo(),elementVO.getSysFileIds(), elementVO.getModelSex());
skirt = coverToDesignPythonItem(null, sysFileVO.getLevel2Type(), sysFileVO.getUrl(), elementVO);
skirt.setBusinessId(sysFileVO.getId());
//添加已使用的md5
@@ -588,7 +588,7 @@ public class PythonService {
CollectionElement collectionElement = getRandomSketchLibrary(noPinDataByType, elementVO.getHasUseMd5List());
if (Objects.isNull(collectionElement)) {
//系统获取
SysFileVO sysFileVO = getRandomSysFileByLevel2Type(elementVO.getSwitchCategory(), elementVO.getSysFileIds());
SysFileVO sysFileVO = getRandomSysFileByLevel2Type(elementVO.getSwitchCategory(), elementVO.getSysFileIds(), elementVO.getModelSex());
skirt = coverToDesignPythonItem(null, sysFileVO.getLevel2Type(), sysFileVO.getUrl(), elementVO);
skirt.setBusinessId(sysFileVO.getId());
} else {
@@ -602,7 +602,7 @@ public class PythonService {
CollectionElement collectionElement = getRandomSketchLibrary(noPinData, elementVO.getHasUseMd5List());
if (Objects.isNull(collectionElement)) {
//系统获取
SysFileVO sysFileVO = getRandomSysFileSkirt(elementVO.getSysFileVo(),elementVO.getSysFileIds());
SysFileVO sysFileVO = getRandomSysFileSkirt(elementVO.getSysFileVo(),elementVO.getSysFileIds(), elementVO.getModelSex());
skirt = coverToDesignPythonItem(null, sysFileVO.getLevel2Type(), sysFileVO.getUrl(), elementVO);
skirt.setBusinessId(sysFileVO.getId());
} else {
@@ -679,7 +679,7 @@ public class PythonService {
if (SingleOverallEnum.SINGLE.getRealName().equals(elementVO.getSingleOverall())) {
if (DesignPythonItem.OUTWEAR_DRESS_BLOUSE.contains(elementVO.getSwitchCategory())) {
//系统获取
SysFileVO sysFileVO = getRandomSysFileByLevel2Type(elementVO.getSwitchCategory(), elementVO.getSysFileIds());
SysFileVO sysFileVO = getRandomSysFileByLevel2Type(elementVO.getSwitchCategory(), elementVO.getSysFileIds(), elementVO.getModelSex());
DesignPythonItem item = coverToDesignPythonItem(null, sysFileVO.getLevel2Type(), sysFileVO.getUrl(), elementVO);
item.setBusinessId(sysFileVO.getId());
items.add(item);
@@ -687,7 +687,7 @@ public class PythonService {
}
} else {
//系统获取
SysFileVO sysFileVO = getRandomSysFileOutwear(elementVO.getSysFileVo(),elementVO.getSysFileIds());
SysFileVO sysFileVO = getRandomSysFileOutwear(elementVO.getSysFileVo(),elementVO.getSysFileIds(), elementVO.getModelSex());
DesignPythonItem item = coverToDesignPythonItem(null, sysFileVO.getLevel2Type(), sysFileVO.getUrl(), elementVO);
item.setBusinessId(sysFileVO.getId());
items.add(item);
@@ -703,7 +703,7 @@ public class PythonService {
Arrays.asList(elementVO.getSwitchCategory()), elementVO.getHasUseMd5List());
if (StringUtils.isEmpty(libraryVo)) {
//系统获取
SysFileVO sysFileVO = getRandomSysFileByLevel2Type(elementVO.getSwitchCategory(), elementVO.getSysFileIds());
SysFileVO sysFileVO = getRandomSysFileByLevel2Type(elementVO.getSwitchCategory(), elementVO.getSysFileIds(), elementVO.getModelSex());
DesignPythonItem item = coverToDesignPythonItem(null, sysFileVO.getLevel2Type(), sysFileVO.getUrl(), elementVO);
item.setBusinessId(sysFileVO.getId());
items.add(item);
@@ -719,7 +719,7 @@ public class PythonService {
DesignPythonItem.OUTWEAR_DRESS_BLOUSE, elementVO.getHasUseMd5List());
if (StringUtils.isEmpty(libraryVo)) {
//系统获取
SysFileVO sysFileVO = getRandomSysFileOutwear(elementVO.getSysFileVo(),elementVO.getSysFileIds());
SysFileVO sysFileVO = getRandomSysFileOutwear(elementVO.getSysFileVo(),elementVO.getSysFileIds(), elementVO.getModelSex());
DesignPythonItem item = coverToDesignPythonItem(null, sysFileVO.getLevel2Type(), sysFileVO.getUrl(), elementVO);
item.setBusinessId(sysFileVO.getId());
items.add(item);
@@ -736,7 +736,7 @@ public class PythonService {
if (SingleOverallEnum.SINGLE.getRealName().equals(elementVO.getSingleOverall())) {
if (DesignPythonItem.OUTWEAR_DRESS_BLOUSE.contains(elementVO.getSwitchCategory())) {
//系统获取
SysFileVO sysFileVO = getRandomSysFileByLevel2Type(elementVO.getSwitchCategory(), elementVO.getSysFileIds());
SysFileVO sysFileVO = getRandomSysFileByLevel2Type(elementVO.getSwitchCategory(), elementVO.getSysFileIds(), elementVO.getModelSex());
DesignPythonItem item = coverToDesignPythonItem(null, sysFileVO.getLevel2Type(), sysFileVO.getUrl(), elementVO);
item.setBusinessId(sysFileVO.getId());
items.add(item);
@@ -744,7 +744,7 @@ public class PythonService {
}
} else {
//系统获取
SysFileVO sysFileVO = getRandomSysFileOutwear(elementVO.getSysFileVo(),elementVO.getSysFileIds());
SysFileVO sysFileVO = getRandomSysFileOutwear(elementVO.getSysFileVo(),elementVO.getSysFileIds(), elementVO.getModelSex());
DesignPythonItem item = coverToDesignPythonItem(null, sysFileVO.getLevel2Type(), sysFileVO.getUrl(), elementVO);
item.setBusinessId(sysFileVO.getId());
items.add(item);
@@ -761,7 +761,7 @@ public class PythonService {
CollectionElement collectionElement = getRandomSketchLibrary(noPinDataByType, elementVO.getHasUseMd5List());
if (Objects.isNull(collectionElement)) {
//系统获取
SysFileVO sysFileVO = getRandomSysFileByLevel2Type(elementVO.getSwitchCategory(), elementVO.getSysFileIds());
SysFileVO sysFileVO = getRandomSysFileByLevel2Type(elementVO.getSwitchCategory(), elementVO.getSysFileIds(), elementVO.getModelSex());
DesignPythonItem item = coverToDesignPythonItem(null, sysFileVO.getLevel2Type(), sysFileVO.getUrl(), elementVO);
item.setBusinessId(sysFileVO.getId());
items.add(item);
@@ -776,7 +776,7 @@ public class PythonService {
CollectionElement collectionElement = getRandomSketchLibrary(noPinData, elementVO.getHasUseMd5List());
if (Objects.isNull(collectionElement)) {
//系统获取
SysFileVO sysFileVO = getRandomSysFileOutwear(elementVO.getSysFileVo(),elementVO.getSysFileIds());
SysFileVO sysFileVO = getRandomSysFileOutwear(elementVO.getSysFileVo(),elementVO.getSysFileIds(), elementVO.getModelSex());
DesignPythonItem item = coverToDesignPythonItem(null, sysFileVO.getLevel2Type(), sysFileVO.getUrl(), elementVO);
item.setBusinessId(sysFileVO.getId());
items.add(item);
@@ -935,29 +935,29 @@ public class PythonService {
return CopyUtil.copyList(sketchBoardPins, CollectionElement.class);
}
private SysFileVO getRandomSysFileOutwear(List<SysFileVO> sysFileVo,List<Long> sysFileIds) {
private SysFileVO getRandomSysFileOutwear(List<SysFileVO> sysFileVo, List<Long> sysFileIds, String modelSex) {
Long randomIndex = RandomsUtil.randomSysFile(0L, 3L);
if(CollectionUtils.isEmpty(sysFileVo)){
return getRandomSysFileByLevel2Type(DesignPythonItem.OUTWEAR_DRESS_BLOUSE.get(randomIndex.intValue()), sysFileIds);
return getRandomSysFileByLevel2Type(DesignPythonItem.OUTWEAR_DRESS_BLOUSE.get(randomIndex.intValue()), sysFileIds, modelSex);
}else{
//attribute_retrieval 算法,满足blouse + outwear+dress>8,以及 skirt+trousers>8
return getRandomSysFileByAttributeRetrieval(DesignPythonItem.OUTWEAR_DRESS_BLOUSE,sysFileVo, sysFileIds);
}
}
private SysFileVO getRandomSysFileSkirt(List<SysFileVO> sysFileVo,List<Long> sysFileIds) {
private SysFileVO getRandomSysFileSkirt(List<SysFileVO> sysFileVo, List<Long> sysFileIds, String modelSex) {
Long randomIndex = RandomsUtil.randomSysFile(0L, 2L);
if(CollectionUtils.isEmpty(sysFileVo)){
return getRandomSysFileByLevel2Type(DesignPythonItem.SKIRT_TROUSERS.get(randomIndex.intValue()), sysFileIds);
return getRandomSysFileByLevel2Type(DesignPythonItem.SKIRT_TROUSERS.get(randomIndex.intValue()), sysFileIds, modelSex);
}else{
//attribute_retrieval 算法,满足blouse + outwear+dress>8,以及 skirt+trousers>8
return getRandomSysFileByAttributeRetrieval(DesignPythonItem.SKIRT_TROUSERS,sysFileVo, sysFileIds);
}
}
private SysFileVO getRandomSysFileByLevel2Type(String level2Type, List<Long> sysFileIds) {
Long maxId = sysFileService.getMaxIdByLevel2Type(level2Type);
Long minId = sysFileService.getMinIdByLevel2Type(level2Type);
private SysFileVO getRandomSysFileByLevel2Type(String level2Type, List<Long> sysFileIds, String modelSex) {
Long maxId = sysFileService.getMaxIdByLevel2Type(level2Type, modelSex);
Long minId = sysFileService.getMinIdByLevel2Type(level2Type, modelSex);
Long sysFileId = null;
do {
sysFileId = RandomsUtil.randomSysFile(minId, maxId + 1);

View File

@@ -20,17 +20,21 @@ public interface SysFileService extends IService<SysFile> {
/**
* 根据类型获取系统文件最大id
*
* @param level2Type
* @param modelSex
* @return
*/
Long getMaxIdByLevel2Type(String level2Type);
Long getMaxIdByLevel2Type(String level2Type, String modelSex);
/**
* 根据类型获取系统文件最小id
*
* @param level2Type
* @param modelSex
* @return
*/
Long getMinIdByLevel2Type(String level2Type);
Long getMinIdByLevel2Type(String level2Type, String modelSex);
/**
* 根据id获取系统文件

View File

@@ -472,6 +472,7 @@ public class CollectionElementServiceImpl extends ServiceImpl<CollectionElementM
}else {
throw new BusinessException("templateId or modelType can't be null");
}
elementVO.setModelSex(designDTO.getModelSex());
return elementVO;
}
@Override

View File

@@ -128,8 +128,8 @@ public class DesignItemServiceImpl extends ServiceImpl<DesignItemMapper, DesignI
throw new BusinessException("unknown operateType! ");
}
Assert.notNull(id,"id cannot be empty!");
Long maxId = sysFileService.getMaxIdByLevel2Type(level2Type);
Long minId = sysFileService.getMinIdByLevel2Type(level2Type);
Long maxId = sysFileService.getMaxIdByLevel2Type(level2Type, null);
Long minId = sysFileService.getMinIdByLevel2Type(level2Type, null);
if(id > maxId || id <minId){
throw new BusinessException("The id value is out of range!");

View File

@@ -9,7 +9,6 @@ import com.ai.da.common.utils.*;
import com.ai.da.mapper.SysFileMapper;
import com.ai.da.mapper.entity.SysFile;
import com.ai.da.model.vo.SysFileVO;
import com.ai.da.service.PythonTAllInfoService;
import com.ai.da.service.SysFileService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -27,7 +26,6 @@ import javax.annotation.Resource;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
@@ -175,22 +173,22 @@ public class SysFileServiceImpl extends ServiceImpl<SysFileMapper, SysFile> impl
}
@Override
public Long getMaxIdByLevel2Type(String level2Type) {
public Long getMaxIdByLevel2Type(String level2Type, String modelSex) {
String key = "MAX_"+level2Type;
Long maxId = LocalCacheUtils.getFileMaxMinValueCache(key);
if(null == maxId){
maxId =maxId(level2Type);
maxId =maxId(level2Type, modelSex);
LocalCacheUtils.setFileMaxMinValueCache(key,maxId);
}
return maxId;
}
@Override
public Long getMinIdByLevel2Type(String level2Type) {
public Long getMinIdByLevel2Type(String level2Type, String modelSex) {
String key = "MIN_"+level2Type;
Long minId = LocalCacheUtils.getFileMaxMinValueCache(key);
if(null == minId || minId == 0L){
minId = minId(level2Type);
minId = minId(level2Type, modelSex);
LocalCacheUtils.setFileMaxMinValueCache(key,minId);
}
return minId;
@@ -224,16 +222,18 @@ public class SysFileServiceImpl extends ServiceImpl<SysFileMapper, SysFile> impl
return cacheSysFileList;
}
private Long maxId(String level2Type){
private Long maxId(String level2Type, String modelSex){
QueryWrapper<SysFile> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("level2_type", level2Type);
queryWrapper.eq(!StringUtils.isEmpty(modelSex), "level3_type", modelSex);
queryWrapper.select("max(id) as id " );
SysFile sysFile = sysFileMapper.selectOne(queryWrapper);
return sysFile.getId();
}
private Long minId(String level2Type){
private Long minId(String level2Type, String modelSex){
QueryWrapper<SysFile> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("level2_type", level2Type);
queryWrapper.eq(!StringUtils.isEmpty(modelSex), "level3_type", modelSex);
queryWrapper.select("min(id) as id " );
SysFile sysFile = sysFileMapper.selectOne(queryWrapper);
return sysFile.getId();