From e6a72b6a3278543f52889edf81eb5f912f7edb77 Mon Sep 17 00:00:00 2001 From: shahaibo <1023316923@qq.com> Date: Tue, 10 Oct 2023 15:02:06 +0800 Subject: [PATCH] =?UTF-8?q?TASK:=E7=94=B7=E8=A3=85;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ai/da/model/vo/ValidateElementVO.java | 1 + .../java/com/ai/da/python/PythonService.java | 48 +++++++++---------- .../com/ai/da/service/SysFileService.java | 8 +++- .../impl/CollectionElementServiceImpl.java | 1 + .../service/impl/DesignItemServiceImpl.java | 4 +- .../da/service/impl/SysFileServiceImpl.java | 16 +++---- 6 files changed, 42 insertions(+), 36 deletions(-) diff --git a/src/main/java/com/ai/da/model/vo/ValidateElementVO.java b/src/main/java/com/ai/da/model/vo/ValidateElementVO.java index 5dfc8dc8..6c22d170 100644 --- a/src/main/java/com/ai/da/model/vo/ValidateElementVO.java +++ b/src/main/java/com/ai/da/model/vo/ValidateElementVO.java @@ -44,4 +44,5 @@ public class ValidateElementVO { List designPrintPictureTypeLayoutList; //透传sysFileVo用(attribute_retrieval 接口限定sysFile范围) List sysFileVo; + private String modelSex; } diff --git a/src/main/java/com/ai/da/python/PythonService.java b/src/main/java/com/ai/da/python/PythonService.java index 68df8e3a..ccab4ecb 100644 --- a/src/main/java/com/ai/da/python/PythonService.java +++ b/src/main/java/com/ai/da/python/PythonService.java @@ -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,List sysFileIds) { + private SysFileVO getRandomSysFileOutwear(List sysFileVo, List 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,List sysFileIds) { + private SysFileVO getRandomSysFileSkirt(List sysFileVo, List 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 sysFileIds) { - Long maxId = sysFileService.getMaxIdByLevel2Type(level2Type); - Long minId = sysFileService.getMinIdByLevel2Type(level2Type); + private SysFileVO getRandomSysFileByLevel2Type(String level2Type, List 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); diff --git a/src/main/java/com/ai/da/service/SysFileService.java b/src/main/java/com/ai/da/service/SysFileService.java index e61e4717..d419346d 100644 --- a/src/main/java/com/ai/da/service/SysFileService.java +++ b/src/main/java/com/ai/da/service/SysFileService.java @@ -20,17 +20,21 @@ public interface SysFileService extends IService { /** * 根据类型获取系统文件最大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获取系统文件 diff --git a/src/main/java/com/ai/da/service/impl/CollectionElementServiceImpl.java b/src/main/java/com/ai/da/service/impl/CollectionElementServiceImpl.java index a04c4755..f0a4acad 100644 --- a/src/main/java/com/ai/da/service/impl/CollectionElementServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/CollectionElementServiceImpl.java @@ -472,6 +472,7 @@ public class CollectionElementServiceImpl extends ServiceImpl maxId || id 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 impl return cacheSysFileList; } - private Long maxId(String level2Type){ + private Long maxId(String level2Type, String modelSex){ QueryWrapper 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 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();