From 4e8922da811ad976343ac390773959c7b95b6db8 Mon Sep 17 00:00:00 2001 From: DongZeLiang <2746733890@qq.com> Date: Tue, 26 Mar 2024 14:15:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=95=86=E5=93=81=E8=87=AA=E6=9C=89=E5=B1=9E?= =?UTF-8?q?=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/model/TemplateAttributeModel.java | 9 ++++ .../service/impl/ProjectInfoServiceImpl.java | 52 +++++++++++++++++-- 2 files changed, 56 insertions(+), 5 deletions(-) diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/model/TemplateAttributeModel.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/model/TemplateAttributeModel.java index 8cbeb02..ebd44da 100644 --- a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/model/TemplateAttributeModel.java +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/model/TemplateAttributeModel.java @@ -1,6 +1,7 @@ package com.muyu.product.domain.model; import com.muyu.common.core.web.domain.BaseEntity; +import com.muyu.product.domain.AttributeInfo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; @@ -33,4 +34,12 @@ public class TemplateAttributeModel extends BaseEntity { * 编码 */ private String code; + + public static TemplateAttributeModel attributeInfoBuild(AttributeInfo attributeInfo){ + return TemplateAttributeModel.builder() + .id(attributeInfo.getId()) + .name(attributeInfo.getName()) + .code(attributeInfo.getCode()) + .build(); + } } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/ProjectInfoServiceImpl.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/ProjectInfoServiceImpl.java index 1963db0..448a3d9 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/ProjectInfoServiceImpl.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/ProjectInfoServiceImpl.java @@ -45,6 +45,9 @@ public class ProjectInfoServiceImpl extends ServiceImpl templateAttributeList = templateAttribute.getTemplateAttributeList(); - // TODO 添加上,商品的自有属性 - List projectAttributeList = null; + List templateAttributeGroupList = templateAttribute.getTemplateAttributeGroupList(); + List templateAttributeList = new ArrayList<>(){{ + addAll(templateAttribute.getTemplateAttributeList()); + }}; + // 属性组和商品属性的ID + List notInAttributeIdList = new ArrayList<>(); + List attributeGroupIdList = templateAttributeGroupList.stream() + .flatMap(templateAttributeGroupModel -> templateAttributeGroupModel.getAttributeList().stream()) + .map(TemplateAttributeModel::getId) + .toList(); + List attributeIdList = templateAttributeList.stream() + .map(TemplateAttributeModel::getId) + .toList(); + if (!attributeGroupIdList.isEmpty()){ + notInAttributeIdList.addAll( attributeGroupIdList ); + } + if (!attributeIdList.isEmpty()){ + notInAttributeIdList.addAll( attributeIdList ); + } + // 添加上,商品的自有属性 + List productAttributeList = this.asProductAttributeInfoService.list( + new LambdaQueryWrapper<>() {{ + eq(AsProductAttributeInfo::getProductId, projectInfo.getId()); + notIn(AsProductAttributeInfo::getAttributeId, notInAttributeIdList); + }} + ); + + List projectAttributeList = new ArrayList<>(); + if (!productAttributeList.isEmpty()){ + List attrIdList = productAttributeList.stream() + .map(AsProductAttributeInfo::getAttributeId) + .toList(); + projectAttributeList = attributeInfoService.list( + new LambdaQueryWrapper<>() {{ + in(AttributeInfo::getId, attrIdList); + }} + ).stream() + .map(TemplateAttributeModel::attributeInfoBuild) + .toList(); + } // 把自有属性添加到商品属性的集合当中,进行合并 - templateAttributeList.addAll(projectAttributeList); + if (!projectAttributeList.isEmpty()){ + templateAttributeList.addAll(projectAttributeList); + } return ProjectDetailResp.builder() .projectInfo(projectInfo) .brandInfo(brandInfo) @@ -184,7 +226,7 @@ public class ProjectInfoServiceImpl extends ServiceImpl