diff --git a/src/main/java/com/ai/da/python/PythonService.java b/src/main/java/com/ai/da/python/PythonService.java index 2cebcf2d..17c41e88 100644 --- a/src/main/java/com/ai/da/python/PythonService.java +++ b/src/main/java/com/ai/da/python/PythonService.java @@ -1554,9 +1554,10 @@ public class PythonService { * 生成 attribute_retrieval * * @param sketchUrlList + * @param modelSex * @return */ - public DesignAttributeRetrievalDTO generateAttributeRetrieval(List sketchUrlList, Long userId) { + public DesignAttributeRetrievalDTO generateAttributeRetrieval(List sketchUrlList, Long userId, String modelSex) { //限流校验 AccessLimitUtils.validate("generateAttributeRetrieval",4); OkHttpClient client = new OkHttpClient().newBuilder() @@ -1568,6 +1569,7 @@ public class PythonService { Map content = Maps.newHashMap(); content.put("sketch_upload_img_path", sketchUrlList); content.put("userid", userId); + content.put("colony", modelSex); MediaType mediaType = MediaType.parse("application/json"); RequestBody body = RequestBody.create(mediaType, JSON.toJSONString(content)); Request request = new Request.Builder() @@ -1604,19 +1606,23 @@ public class PythonService { private static DesignAttributeRetrievalDTO resolveDesignAttributeRetrievalDTO(String bodyStr){ DesignAttributeRetrievalDTO response = new DesignAttributeRetrievalDTO(); JSONObject jsonObject = JSON.parseObject(bodyStr); - JSONObject jsonObjectSys = jsonObject.getJSONObject("sys_lib_dict"); - if(null == jsonObjectSys || jsonObjectSys.size() == 0){ - log.error("generateAttributeRetrieval异常###{}", "jsonObjectSys is empty!"); - throw new BusinessException("system error!"); + JSONObject data = jsonObject.getJSONObject("data"); + if (data != null) { + JSONObject jsonObjectSys = data.getJSONObject("sys_lib_dict"); + if(null == jsonObjectSys || jsonObjectSys.size() == 0){ + log.error("generateAttributeRetrieval异常###{}", "jsonObjectSys is empty!"); + throw new BusinessException("system error!"); + } + setUrls(jsonObjectSys,response.getSysFileUrlS()); + JSONObject jsonObjectLibrary = data.getJSONObject("user_lib_dict"); + if(null == jsonObjectLibrary || jsonObjectLibrary.size() == 0){ + log.error("generateAttributeRetrieval异常###{}", "jsonObjectLibrary is empty!"); + throw new BusinessException("system error!"); + } + setUrls(jsonObjectLibrary,response.getLibraryUrls()); + return response; } - setUrls(jsonObjectSys,response.getSysFileUrlS()); - JSONObject jsonObjectLibrary = jsonObject.getJSONObject("user_lib_dict"); - if(null == jsonObjectLibrary || jsonObjectLibrary.size() == 0){ - log.error("generateAttributeRetrieval异常###{}", "jsonObjectLibrary is empty!"); - throw new BusinessException("system error!"); - } - setUrls(jsonObjectLibrary,response.getLibraryUrls()); - return response; + throw new BusinessException("AttributeRetrieval response data is null"); } private static void setUrls(JSONObject jsonObjectSys,List urls){ diff --git a/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java b/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java index 0c8fe994..4682dabf 100644 --- a/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java @@ -110,26 +110,24 @@ public class DesignServiceImpl extends ServiceImpl impleme private void calculateLibraryAndSysFile(DesignCollectionDTO designDTO, ValidateElementVO elementVO, AuthPrincipalVo userInfo) { //查询用户 sketch library List libraryVos; -// if (CollectionUtil.isNotEmpty(designDTO.getSketchBoards())) { -// List sketchUrlList = elementVO.getSketchBoardElements() -// .stream() -// .map(CollectionElement::getUrl) -// .collect(Collectors.toList()); -// DesignAttributeRetrievalDTO designAttributeRetrievalDTO = -// pythonService.generateAttributeRetrieval(sketchUrlList, userInfo.getId()); -// if (CollectionUtils.isEmpty(designAttributeRetrievalDTO.getLibraryUrls())) { -// libraryVos = null; -// } else { -// libraryVos = libraryService.getByUrlList(designAttributeRetrievalDTO.getLibraryUrls(), userInfo.getId()); -// } -// List sysFileVOS = sysFileService.getByUrlList(designAttributeRetrievalDTO.getSysFileUrlS()); -// elementVO.setSysFileVo(sysFileVOS); -// } else { -// libraryVos = libraryService.selectByAccountIdAnd1TypeList(userInfo.getId(), -// Collections.singletonList(CollectionLevel1TypeEnum.SKETCH_BOARD.getRealName())); -// } - libraryVos = libraryService.selectByAccountIdAnd1TypeList(userInfo.getId(), - Collections.singletonList(CollectionLevel1TypeEnum.SKETCH_BOARD.getRealName())); + if (CollectionUtil.isNotEmpty(designDTO.getSketchBoards())) { + List sketchUrlList = elementVO.getSketchBoardElements() + .stream() + .map(CollectionElement::getUrl) + .collect(Collectors.toList()); + DesignAttributeRetrievalDTO designAttributeRetrievalDTO = + pythonService.generateAttributeRetrieval(sketchUrlList, userInfo.getId(), elementVO.getModelSex()); + if (CollectionUtils.isEmpty(designAttributeRetrievalDTO.getLibraryUrls())) { + libraryVos = null; + } else { + libraryVos = libraryService.getByUrlList(designAttributeRetrievalDTO.getLibraryUrls(), userInfo.getId()); + } + List sysFileVOS = sysFileService.getByUrlList(designAttributeRetrievalDTO.getSysFileUrlS()); + elementVO.setSysFileVo(sysFileVOS); + } else { + libraryVos = libraryService.selectByAccountIdAnd1TypeList(userInfo.getId(), + Collections.singletonList(CollectionLevel1TypeEnum.SKETCH_BOARD.getRealName())); + } elementVO.setLibraryVos(libraryVos); //校验比列 validateRatio(designDTO, libraryVos);