diff --git a/src/main/java/com/ai/da/mapper/primary/entity/DesignItemDetail.java b/src/main/java/com/ai/da/mapper/primary/entity/DesignItemDetail.java index 8ccdb04b..309bc6e6 100644 --- a/src/main/java/com/ai/da/mapper/primary/entity/DesignItemDetail.java +++ b/src/main/java/com/ai/da/mapper/primary/entity/DesignItemDetail.java @@ -94,6 +94,10 @@ public class DesignItemDetail implements Serializable { * 未分割的只上了颜色或只有overall印花的图层 */ private String undividedLayer; + /** + * 未分割的添加了颜色、overall印花和single印花的图 + */ + private String undividedLayerWithSinglePrint; /** * 局部design 只会有一张图 diff --git a/src/main/java/com/ai/da/model/vo/DesignItemClothesDetailVO.java b/src/main/java/com/ai/da/model/vo/DesignItemClothesDetailVO.java index dc58145f..853269fe 100644 --- a/src/main/java/com/ai/da/model/vo/DesignItemClothesDetailVO.java +++ b/src/main/java/com/ai/da/model/vo/DesignItemClothesDetailVO.java @@ -62,6 +62,9 @@ public class DesignItemClothesDetailVO { @ApiModelProperty("未分割的图层") private String undividedLayer; + @ApiModelProperty("添加single印花的未分割的图层") + private String undividedLayerWithSinglePrint; + @ApiModelProperty("局部design") private PartialDesignDTO partialDesign; diff --git a/src/main/java/com/ai/da/service/CollectionElementService.java b/src/main/java/com/ai/da/service/CollectionElementService.java index fe218ca8..299ebee6 100644 --- a/src/main/java/com/ai/da/service/CollectionElementService.java +++ b/src/main/java/com/ai/da/service/CollectionElementService.java @@ -65,7 +65,7 @@ public interface CollectionElementService extends IService { */ Boolean saveLibraryByCollectionElement(List elements, String timeZone); - Boolean saveLibraryByCollectionElement(List elements, String timeZone, String modelSex); + Boolean saveLibraryByCollectionElement(List elements, String timeZone, String modelSex, String ageGroup); /** * 校验element diff --git a/src/main/java/com/ai/da/service/DesignItemService.java b/src/main/java/com/ai/da/service/DesignItemService.java index 6702ad52..2fa7cc1e 100644 --- a/src/main/java/com/ai/da/service/DesignItemService.java +++ b/src/main/java/com/ai/da/service/DesignItemService.java @@ -53,7 +53,7 @@ public interface DesignItemService extends IService { DesignSingleVO designSingleIncludeLayers(DesignSingleIncludeLayersDTO designSingleIncludeLayersDTO); - Map setPriorityAndUndividedLayer(JSONArray layers); + Map> setPriorityAndUndividedLayer(JSONArray layers); Map setTypeAndUndividedLayer(JSONArray layers); diff --git a/src/main/java/com/ai/da/service/WorkspaceService.java b/src/main/java/com/ai/da/service/WorkspaceService.java index a43947cd..d5a76df4 100644 --- a/src/main/java/com/ai/da/service/WorkspaceService.java +++ b/src/main/java/com/ai/da/service/WorkspaceService.java @@ -63,4 +63,7 @@ public interface WorkspaceService extends IService { SaveOrUpdateProjectVO saveOrUpdateProject(ProjectDTO projectDTO); Long getByProjectId(Long projectId); + + Workspace getWSByProjectId(Long projectId); + } diff --git a/src/main/java/com/ai/da/service/impl/AliPayServiceImpl.java b/src/main/java/com/ai/da/service/impl/AliPayServiceImpl.java index 2d3e6ed4..00790edf 100644 --- a/src/main/java/com/ai/da/service/impl/AliPayServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/AliPayServiceImpl.java @@ -91,11 +91,11 @@ public class AliPayServiceImpl implements AliPayService { return response.getBody(); } else { log.info("调用失败,返回码 ===> " + response.getCode() + ", 返回描述 ===> " + response.getMsg()); - throw new BusinessException("Order creation failed"); + throw new BusinessException("order.creation.failed"); } } catch (AlipayApiException e) { e.printStackTrace(); - throw new BusinessException("Order creation failed"); + throw new BusinessException("order.creation.failed"); } } diff --git a/src/main/java/com/ai/da/service/impl/ChatRobotServiceImpl.java b/src/main/java/com/ai/da/service/impl/ChatRobotServiceImpl.java index 0ec17fcf..8ac292cb 100644 --- a/src/main/java/com/ai/da/service/impl/ChatRobotServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/ChatRobotServiceImpl.java @@ -318,7 +318,7 @@ public class ChatRobotServiceImpl extends ServiceImpl elements, String timeZone, String modelSex) { + public Boolean saveLibraryByCollectionElement(List elements, String timeZone, + String modelSex, String ageGroup) { if (CollectionUtils.isEmpty(elements)) { return Boolean.TRUE; } @@ -351,6 +352,7 @@ public class CollectionElementServiceImpl extends ServiceImpl libraryList = CopyUtil.copyList(elements, Library.class, (o, d) -> { if (d.getLevel1Type().equals(LibraryLevel1TypeEnum.SKETCH_BOARD.getRealName())) { d.setLevel3Type(modelSex); + d.setAgeGroup(ageGroup); // try { // libraryService.processSketchBoards(d.getUrl(), d.getLevel2Type()); // }catch (Exception e) { diff --git a/src/main/java/com/ai/da/service/impl/DesignItemServiceImpl.java b/src/main/java/com/ai/da/service/impl/DesignItemServiceImpl.java index f68c407c..17698c90 100644 --- a/src/main/java/com/ai/da/service/impl/DesignItemServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/DesignItemServiceImpl.java @@ -336,7 +336,7 @@ public class DesignItemServiceImpl extends ServiceImpl saveDesignSingleItemDetailAndLayers(DesignPythonObjects pythonObjects , Long designId, Long designItemId, Long userId , JSONObject outfit, String timeZone, List designSingleItemDTOList - , Map priorityAndUndividedLayer + , Map> priorityAndUndividedLayer , boolean changeModelFlag , Long modelId, String modelType, boolean isSingleCollectionFlag) { @@ -375,7 +375,11 @@ public class DesignItemServiceImpl extends ServiceImpl priorityAndUndividedLayer = setPriorityAndUndividedLayer(layers); + Map> priorityAndUndividedLayer = setPriorityAndUndividedLayer(layers); if (!designSingleIncludeLayersDTO.getIsPreview()) { // 更新及保存图层信息 tDesignPythonOutfitDetails = saveDesignSingleItemDetailAndLayers(objects, design.getId(), designSingleIncludeLayersDTO.getDesignItemId() @@ -727,13 +731,13 @@ public class DesignItemServiceImpl extends ServiceImpl setPriorityAndUndividedLayer(JSONArray layers){ - HashMap priorityAndLayer = new HashMap<>(); + public Map> setPriorityAndUndividedLayer(JSONArray layers){ + HashMap> priorityAndLayer = new HashMap<>(); for (int i = 0; i < layers.size(); i++) { JSONObject jsonObject = layers.getJSONObject(i); String priority = jsonObject.getString("priority"); String category = jsonObject.getString("image_category").split("_")[0]; - if (!category.equals("body") && !priorityAndLayer.containsKey(priority)) priorityAndLayer.put(priority, jsonObject.getString("pattern_image_url")); + if (!category.equals("body") && !priorityAndLayer.containsKey(priority)) priorityAndLayer.put(priority, Arrays.asList(jsonObject.getString("pattern_overall_image_url"), jsonObject.getString("pattern_print_image_url"))); } return priorityAndLayer; } @@ -848,7 +852,7 @@ public class DesignItemServiceImpl extends ServiceImpl designSingleItemDTOList, List layersObject, String singleOrOverall, - Map priorityAndUndividedLayer) { + Map> priorityAndUndividedLayer) { DesignSingleVO designSingleVO = new DesignSingleVO(); ArrayList clothes = new ArrayList<>(); @@ -887,7 +891,10 @@ public class DesignItemServiceImpl extends ServiceImpl layers.getImageCategory().equals("body")).collect(Collectors.toList())); clothes.add(designItemClothesDetailVO); 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 1b00c576..39d9e5cc 100644 --- a/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java @@ -13,10 +13,7 @@ import com.ai.da.mapper.primary.*; import com.ai.da.mapper.primary.entity.*; import com.ai.da.mapper.primary.entity.Collection; import com.ai.da.model.dto.*; -import com.ai.da.model.enums.BuildType; -import com.ai.da.model.enums.CollectionType; -import com.ai.da.model.enums.DesignProcess; -import com.ai.da.model.enums.UserBehaviorType; +import com.ai.da.model.enums.*; import com.ai.da.model.vo.*; import com.ai.da.python.PythonService; import com.ai.da.python.vo.*; @@ -385,7 +382,8 @@ public class DesignServiceImpl extends ServiceImpl impleme log.info("design python端运行时间:" + totalTimeInSeconds + " 秒"); //生成library startTime = System.currentTimeMillis(); - generateLibrary(elementVO, designDTO.getTimeZone()); + String ageGroup = getAgeGroupByCollectionId(collectionId); + generateLibrary(elementVO, designDTO.getTimeZone(), ageGroup); //处理关联关系,修复element覆盖得情况 // List relationElements = collectionElementService.getByOnlyCollectionId(collectionId); // List relationElementIds = relationElements.stream().map(CollectionElement::getId).collect(Collectors.toList()); @@ -412,6 +410,20 @@ public class DesignServiceImpl extends ServiceImpl impleme return requestId; } + private String getAgeGroupByCollectionId(Long collectionId){ + List byCollectionId = collectionElementService.getByCollectionId(collectionId); + if (byCollectionId != null && !byCollectionId.isEmpty()){ + Long projectId = byCollectionId.get(0).getProjectId(); + if (projectId != null && projectId != 0L){ + Workspace workspace = workspaceService.getWSByProjectId(projectId); + if (workspace != null && !StringUtil.isNullOrEmpty(workspace.getAgeGroup())){ + return workspace.getAgeGroup(); + } + } + } + return AgeGroup.ADULT.getValue(); + } + @Override public void parseMoodboardPosition(String moodboardPosition, Long collectionIdParam) { if (!StringUtils.isEmpty(moodboardPosition)) { @@ -670,7 +682,7 @@ public class DesignServiceImpl extends ServiceImpl impleme ).collect(Collectors.toList())); } - private void generateLibrary(ValidateElementVO elementVO, String timeZone) { + private void generateLibrary(ValidateElementVO elementVO, String timeZone, String ageGroup) { List elements = Lists.newArrayList(); if (!CollectionUtils.isEmpty(elementVO.getMoodBoardElements())) { elements.addAll(elementVO.getMoodBoardElements()); @@ -684,7 +696,7 @@ public class DesignServiceImpl extends ServiceImpl impleme if (!CollectionUtils.isEmpty(elementVO.getMarketingSketchElements())) { elements.addAll(elementVO.getMarketingSketchElements()); } - collectionElementService.saveLibraryByCollectionElement(elements, timeZone, elementVO.getModelSex()); + collectionElementService.saveLibraryByCollectionElement(elements, timeZone, elementVO.getModelSex(), ageGroup); } @Override @@ -839,7 +851,7 @@ public class DesignServiceImpl extends ServiceImpl impleme (existing, replacement) -> replacement)); Map typeAndUndividedLayer = designItemService.setTypeAndUndividedLayer(layers); log.info("all typeLayers Map:{}", typeAndUndividedLayer); - Map priorityAndUndividedLayer = designItemService.setPriorityAndUndividedLayer(layers); + Map> priorityAndUndividedLayer = designItemService.setPriorityAndUndividedLayer(layers); for (DesignPythonItem detail : item.getItems()) { if (null == detail) { continue; @@ -866,7 +878,8 @@ public class DesignServiceImpl extends ServiceImpl impleme DesignPythonItemPrint printObject = detail.getPrint().getOverall(); // designItemDetail.setPrintPath(Objects.isNull(printObject) ? "" : printObject.getPath()); designItemDetail.setPrintPath(CollectionUtils.isEmpty(printObject.getPrint_path_list()) ? "" : printObject.getPrint_path_list().get(0)); - designItemDetail.setUndividedLayer(priorityAndUndividedLayer.get(designItemDetail.getPriority().toString())); + designItemDetail.setUndividedLayer(priorityAndUndividedLayer.get(designItemDetail.getPriority().toString()).get(0)); + designItemDetail.setUndividedLayerWithSinglePrint(priorityAndUndividedLayer.get(designItemDetail.getPriority().toString()).get(1)); } designItemDetailService.save(designItemDetail); if (!SysFileLevel2TypeEnum.BODY.getRealName().equals(detail.getType()) && !StringUtil.isNullOrEmpty(designItemDetail.getPrintPath())) { @@ -2484,7 +2497,8 @@ public class DesignServiceImpl extends ServiceImpl impleme log.info("design python端运行时间:" + totalTimeInSeconds + " 秒"); //生成library startTime = System.currentTimeMillis(); - generateLibrary(elementVO, designDTO.getTimeZone()); + String ageGroup = getAgeGroupByCollectionId(collectionId); + generateLibrary(elementVO, designDTO.getTimeZone(), ageGroup); //处理关联关系,修复element覆盖得情况 // List relationElements = collectionElementService.getByOnlyCollectionId(collectionId); // List relationElementIds = relationElements.stream().map(CollectionElement::getId).collect(Collectors.toList()); diff --git a/src/main/java/com/ai/da/service/impl/PayPalCheckoutServiceImpl.java b/src/main/java/com/ai/da/service/impl/PayPalCheckoutServiceImpl.java index 98595177..8db5aef8 100644 --- a/src/main/java/com/ai/da/service/impl/PayPalCheckoutServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/PayPalCheckoutServiceImpl.java @@ -98,7 +98,7 @@ public class PayPalCheckoutServiceImpl implements PayPalCheckoutService { response = payPalClient.client(mode, clientId, clientSecret).execute(paypalRequest); } catch (Exception e) { log.error("调用paypal订单创建失败,失败原因 ===> {}", e.getMessage()); - throw new BusinessException("Order creation failed"); + throw new BusinessException("order.creation.failed"); } String approve = ""; @@ -377,7 +377,7 @@ public class PayPalCheckoutServiceImpl implements PayPalCheckoutService { response = payPalClient.client(mode, clientId, clientSecret).execute(request); } catch (Exception e) { log.error("调用paypal扣款失败,失败原因 ===> {}", e.getMessage()); - throw new BusinessException("Order deduction failed."); + throw new BusinessException("order.deduction.failed"); } log.info("Status Code = {}, Status = {}, OrderID = {}", response.statusCode(), response.result().status(), response.result().id()); for (LinkDescription link : response.result().links()) { @@ -455,7 +455,7 @@ public class PayPalCheckoutServiceImpl implements PayPalCheckoutService { ordersGetResponse = payPalClient.client(mode, clientId, clientSecret).execute(ordersGetRequest); } catch (Exception e) { log.error("调用paypal订单查询失败,失败原因 ===> {}", e.getMessage()); - throw new BusinessException("Order query failed"); + throw new BusinessException("order.query.failed"); } String captureId = ordersGetResponse.result().purchaseUnits().get(0).payments().captures().get(0).id(); CapturesRefundRequest request = new CapturesRefundRequest(captureId); diff --git a/src/main/java/com/ai/da/service/impl/UserLikeGroupServiceImpl.java b/src/main/java/com/ai/da/service/impl/UserLikeGroupServiceImpl.java index 0d58594f..ba97f75c 100644 --- a/src/main/java/com/ai/da/service/impl/UserLikeGroupServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/UserLikeGroupServiceImpl.java @@ -479,7 +479,7 @@ public class UserLikeGroupServiceImpl extends ServiceImpl qw = new QueryWrapper<>(); + qw.lambda().eq(Workspace::getProjectId, projectId); + List workspaceList = workspaceMapper.selectList(qw); + if (CollectionUtils.isEmpty(workspaceList)) { + return null; + } + return workspaceList.get(0); + } + public static List getPNGFiles(String directoryPath) { List pngFiles = new ArrayList<>(); File directory = new File(directoryPath);