diff --git a/muyu-common/muyu-common-cache/pom.xml b/muyu-common/muyu-common-cache/pom.xml
new file mode 100644
index 0000000..ea149f8
--- /dev/null
+++ b/muyu-common/muyu-common-cache/pom.xml
@@ -0,0 +1,31 @@
+
+
+ 4.0.0
+
+ com.muyu
+ muyu-common
+ 3.6.3
+
+
+ muyu-common-cache
+
+
+ muyu-common-cache缓存基准
+
+
+
+ 17
+ 17
+ UTF-8
+
+
+
+
+
+ com.muyu
+ muyu-common-redis
+
+
+
diff --git a/muyu-common/muyu-common-cache/src/main/java/com/muyu/common/cache/Cache.java b/muyu-common/muyu-common-cache/src/main/java/com/muyu/common/cache/Cache.java
new file mode 100644
index 0000000..d3da0ca
--- /dev/null
+++ b/muyu-common/muyu-common-cache/src/main/java/com/muyu/common/cache/Cache.java
@@ -0,0 +1,62 @@
+package com.muyu.common.cache;
+
+/**
+ * @author DongZl
+ * @description: 缓存接口基类
+ * @Date 2024-3-26 下午 03:25
+ */
+public interface Cache {
+
+ /**
+ * key前缀
+ * @return key前缀
+ */
+ public String keyPre();
+
+
+ /**
+ * 编码
+ * @param key ID
+ * @return 键
+ */
+ public String encode(K key);
+
+ /**
+ * 解码
+ * @param redisKey 数据库键
+ * @return ID
+ */
+ public K decode(String redisKey);
+
+ /**
+ * 通过Key获取value值
+ * @param key 键
+ * @return 值
+ */
+ public V get(K key);
+
+ /**
+ * 缓存添加/修改
+ * @param key 键
+ * @param value 值
+ */
+ public void put(K key, V value);
+
+ /**
+ * 通过键删除
+ * @param key 键
+ */
+ public void remove(K key);
+
+ /**
+ * 刷新缓存时间
+ * @param key 键
+ */
+ public void refreshTime (K key);
+
+ /**
+ * 刷新缓存数据
+ * @param key 键
+ */
+ public void refreshData (K key);
+}
diff --git a/muyu-common/muyu-common-cache/src/main/java/com/muyu/common/cache/abs/CacheAbs.java b/muyu-common/muyu-common-cache/src/main/java/com/muyu/common/cache/abs/CacheAbs.java
new file mode 100644
index 0000000..d2bf765
--- /dev/null
+++ b/muyu-common/muyu-common-cache/src/main/java/com/muyu/common/cache/abs/CacheAbs.java
@@ -0,0 +1,96 @@
+package com.muyu.common.cache.abs;
+
+import com.muyu.common.cache.Cache;
+import com.muyu.common.redis.service.RedisService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.concurrent.TimeUnit;
+
+/**
+ * @author DongZl
+ * @description: 缓存抽象类
+ * @Date 2024-3-27 下午 03:10
+ */
+public abstract class CacheAbs implements Cache {
+
+ @Autowired
+ private RedisService redisService;
+
+ /**
+ * 编码
+ * @param key ID
+ * @return 键
+ */
+ @Override
+ public String encode (K key) {
+ return keyPre() + key;
+ }
+
+ /**
+ * 通过Key获取value值
+ * @param key 键
+ * @return 值
+ */
+ @Override
+ public V get (K key) {
+ V value = redisService.getCacheObject(encode(key));
+ if (value == null){
+ value = getData(key);
+ if (value == null){
+ value = defaultValue();
+ }
+ }
+ this.put(key, value);
+ return value;
+ }
+
+ /**
+ * 缓存添加/修改
+ * @param key 键
+ * @param value 值
+ */
+ @Override
+ public void put (K key, V value) {
+ this.redisService.setCacheObject(encode(key), value);
+ }
+
+ /**
+ * 通过键删除
+ * @param key 键
+ */
+ @Override
+ public void remove (K key) {
+ this.redisService.deleteObject(encode(key));
+ }
+
+ /**
+ * 刷新缓存
+ * @param key 键
+ */
+ @Override
+ public void refreshTime (K key) {
+ this.redisService.expire(encode(key), 60, TimeUnit.SECONDS);
+ }
+
+ /**
+ * 刷新缓存数据
+ *
+ * @param key 键
+ */
+ @Override
+ public void refreshData (K key) {
+ this.put(key, getData(key));
+ }
+
+ /**
+ * 从数据库获取数据
+ * @param key ID
+ * @return 缓存对象
+ */
+ public abstract V getData(K key);
+
+ /**
+ * 默认值
+ */
+ public abstract V defaultValue();
+}
diff --git a/muyu-modules/muyu-product/muyu-product-cache/pom.xml b/muyu-modules/muyu-product/muyu-product-cache/pom.xml
new file mode 100644
index 0000000..f0df5c0
--- /dev/null
+++ b/muyu-modules/muyu-product/muyu-product-cache/pom.xml
@@ -0,0 +1,43 @@
+
+
+ 4.0.0
+
+ com.muyu
+ muyu-product
+ 3.6.3
+
+
+ muyu-product-cache
+
+
+ 17
+ 17
+ UTF-8
+
+
+
+
+
+
+ com.muyu
+ muyu-common-cache
+
+
+
+
+ com.muyu
+ muyu-product-common
+
+
+ com.muyu
+ muyu-common-core
+
+
+ com.muyu
+ muyu-product-common
+
+
+
+
\ No newline at end of file
diff --git a/muyu-modules/muyu-product/muyu-product-cache/src/main/java/com/muyu/product/cache/ProjectInfoCache.java b/muyu-modules/muyu-product/muyu-product-cache/src/main/java/com/muyu/product/cache/ProjectInfoCache.java
new file mode 100644
index 0000000..f84afa4
--- /dev/null
+++ b/muyu-modules/muyu-product/muyu-product-cache/src/main/java/com/muyu/product/cache/ProjectInfoCache.java
@@ -0,0 +1,60 @@
+package com.muyu.product.cache;
+
+import com.muyu.common.cache.abs.CacheAbs;
+import com.muyu.common.core.text.Convert;
+import com.muyu.product.domain.ProjectInfo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author DongZl
+ * @description: 商品缓存
+ * @Date 2024-3-27 下午 03:30
+ */
+@Component
+public class ProjectInfoCache extends CacheAbs {
+
+ @Autowired
+ private ProjectInfoData projectInfoData;
+ /**
+ * key前缀
+ *
+ * @return key前缀
+ */
+ @Override
+ public String keyPre () {
+ return "project:info:";
+ }
+
+ /**
+ * 解码
+ *
+ * @param redisKey 数据库键
+ *
+ * @return ID
+ */
+ @Override
+ public Long decode (String redisKey) {
+ return Convert.toLong(redisKey.replace(keyPre(),""), 0L);
+ }
+
+ /**
+ * 从数据库获取数据
+ *
+ * @param key ID
+ *
+ * @return 缓存对象
+ */
+ @Override
+ public ProjectInfo getData (Long key) {
+ return projectInfoData.getData(key);
+ }
+
+ /**
+ * 默认值
+ */
+ @Override
+ public ProjectInfo defaultValue () {
+ return new ProjectInfo();
+ }
+}
diff --git a/muyu-modules/muyu-product/muyu-product-cache/src/main/java/com/muyu/product/cache/ProjectInfoData.java b/muyu-modules/muyu-product/muyu-product-cache/src/main/java/com/muyu/product/cache/ProjectInfoData.java
new file mode 100644
index 0000000..00a8c57
--- /dev/null
+++ b/muyu-modules/muyu-product/muyu-product-cache/src/main/java/com/muyu/product/cache/ProjectInfoData.java
@@ -0,0 +1,18 @@
+package com.muyu.product.cache;
+
+import com.muyu.product.domain.ProjectInfo;
+
+/**
+ * @author DongZl
+ * @description: 缓存数据获取
+ * @Date 2024-3-27 下午 03:34
+ */
+public interface ProjectInfoData {
+
+ /**
+ * 从数据库获取数据
+ * @param key ID
+ * @return 缓存对象
+ */
+ public ProjectInfo getData (Long key);
+}
diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/ProjectInfo.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/ProjectInfo.java
index 6296d83..84ecc2d 100644
--- a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/ProjectInfo.java
+++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/ProjectInfo.java
@@ -54,17 +54,17 @@ public class ProjectInfo extends BaseEntity {
/** 主类型 */
@Excel(name = "主类型")
@ApiModelProperty(name = "主类型", value = "主类型")
- private String mianType;
+ private Long mianType;
/** 父类型 */
@Excel(name = "父类型")
@ApiModelProperty(name = "父类型", value = "父类型")
- private String parentType;
+ private Long parentType;
/** 商品类型 */
@Excel(name = "商品类型")
@ApiModelProperty(name = "商品类型", value = "商品类型")
- private String type;
+ private Long type;
/** 商品图片 */
@Excel(name = "商品图片")
diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/model/ProjectAddModel.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/model/ProjectAddModel.java
index 387ef4d..65f0c20 100644
--- a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/model/ProjectAddModel.java
+++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/model/ProjectAddModel.java
@@ -37,15 +37,15 @@ public class ProjectAddModel extends BaseEntity {
/** 主类型 */
@ApiModelProperty(name = "主类型", value = "主类型")
- private String mianType;
+ private Long mianType;
/** 父类型 */
@ApiModelProperty(name = "父类型", value = "父类型")
- private String parentType;
+ private Long parentType;
/** 商品类型 */
@ApiModelProperty(name = "商品类型", value = "商品类型")
- private String type;
+ private Long type;
/** 商品图片 */
@ApiModelProperty(name = "商品图片", value = "商品图片")
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..7ca70be 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,13 @@ 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-common/src/main/java/com/muyu/product/domain/req/ProjectInfoEditReq.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/ProjectInfoEditReq.java
index f6dc539..4711de1 100644
--- a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/ProjectInfoEditReq.java
+++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/ProjectInfoEditReq.java
@@ -33,15 +33,15 @@ public class ProjectInfoEditReq extends BaseEntity {
/** 主类型 */
@ApiModelProperty(name = "主类型", value = "主类型")
- private String mianType;
+ private Long mianType;
/** 父类型 */
@ApiModelProperty(name = "父类型", value = "父类型")
- private String parentType;
+ private Long parentType;
/** 商品类型 */
@ApiModelProperty(name = "商品类型", value = "商品类型")
- private String type;
+ private Long type;
/** 商品图片 */
@ApiModelProperty(name = "商品图片", value = "商品图片")
diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/ProjectInfoQueryReq.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/ProjectInfoQueryReq.java
index 72f5185..dd509ac 100644
--- a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/ProjectInfoQueryReq.java
+++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/ProjectInfoQueryReq.java
@@ -33,15 +33,15 @@ public class ProjectInfoQueryReq extends BaseEntity {
/** 主类型 */
@ApiModelProperty(name = "主类型", value = "主类型")
- private String mianType;
+ private Long mianType;
/** 父类型 */
@ApiModelProperty(name = "父类型", value = "父类型")
- private String parentType;
+ private Long parentType;
/** 商品类型 */
@ApiModelProperty(name = "商品类型", value = "商品类型")
- private String type;
+ private Long type;
/** 商品图片 */
@ApiModelProperty(name = "商品图片", value = "商品图片")
diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/resp/ProjectDetailResp.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/resp/ProjectDetailResp.java
new file mode 100644
index 0000000..870b941
--- /dev/null
+++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/resp/ProjectDetailResp.java
@@ -0,0 +1,76 @@
+package com.muyu.product.domain.resp;/**
+ * @Author:yjz
+ * @Package:com.muyu.product.domain.resp
+ * @Project:cloud_service
+ * @name:ProjectDetailResp
+ * @Date:2024/3/25 17:11
+ */
+
+import com.muyu.product.domain.*;
+import com.muyu.product.domain.model.RuleAttrAddModel;
+import com.muyu.product.domain.model.TemplateAttributeGroupModel;
+import com.muyu.product.domain.model.TemplateAttributeModel;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ *@ClassName ProjectDetailResp
+ *@Description 描述
+ *@Author JunZhe.Yuan
+ *@Date 2024/3/25 17:11
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class ProjectDetailResp {
+
+
+ /**
+ * 品类集合
+ */
+ private List categoryInfoList;
+
+ /**
+ * 商品信息
+ */
+ private ProjectInfo projectInfo;
+
+
+ /**
+ * 品牌信息
+ */
+ private BrandInfo brandInfo;
+
+
+ /**
+ * 商品Sku集合
+ */
+ private List projectSkuInfoList;
+
+ /**
+ * 商品和属性集合
+ */
+ private List productAttributeInfoList;
+
+ /**
+ * 商品规格
+ */
+ private List ruleAttrModelList;
+
+ /**
+ * 属性集合
+ */
+ private List attributeInfoList;
+
+ /**
+ * 属性组集合
+ */
+ private List attributeGroupList;
+
+
+}
diff --git a/muyu-modules/muyu-product/muyu-product-service/src/main/java/com/muyu/product/controller/ProjectInfoController.java b/muyu-modules/muyu-product/muyu-product-service/src/main/java/com/muyu/product/controller/ProjectInfoController.java
index 5fc1feb..4c83550 100644
--- a/muyu-modules/muyu-product/muyu-product-service/src/main/java/com/muyu/product/controller/ProjectInfoController.java
+++ b/muyu-modules/muyu-product/muyu-product-service/src/main/java/com/muyu/product/controller/ProjectInfoController.java
@@ -11,6 +11,7 @@ import com.muyu.product.domain.ProjectInfo;
import com.muyu.product.domain.req.ProjectInfoEditReq;
import com.muyu.product.domain.req.ProjectInfoQueryReq;
import com.muyu.product.domain.req.ProjectInfoSaveReq;
+import com.muyu.product.domain.resp.ProjectDetailResp;
import com.muyu.product.service.ProjectInfoService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -70,6 +71,19 @@ public class ProjectInfoController extends BaseController {
return Result.success(projectInfoService.getById(id));
}
+ /**
+ * 获取商品信息详细信息
+ */
+ @ApiOperation("获取商品信息详细信息")
+ @RequiresPermissions("product:info:query")
+ @GetMapping(value = "/detail/{id}")
+ @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long", paramType = "path", dataTypeClass = Long.class)
+ public Result getDetailInfo(@PathVariable("id") Long id) {
+ return Result.success(projectInfoService.getDetailInfo(id));
+ }
+
+
+
/**
* 新增商品信息
*/
diff --git a/muyu-modules/muyu-product/muyu-product-service/src/main/java/com/muyu/product/service/CategoryInfoService.java b/muyu-modules/muyu-product/muyu-product-service/src/main/java/com/muyu/product/service/CategoryInfoService.java
index f48896b..6d5789b 100644
--- a/muyu-modules/muyu-product/muyu-product-service/src/main/java/com/muyu/product/service/CategoryInfoService.java
+++ b/muyu-modules/muyu-product/muyu-product-service/src/main/java/com/muyu/product/service/CategoryInfoService.java
@@ -8,6 +8,7 @@ import com.muyu.product.domain.CategoryInfo;
import com.muyu.product.domain.model.CategoryInfoSaveModel;
import com.muyu.product.domain.resp.CategoryCommonElementResp;
import com.muyu.product.domain.resp.CategoryParentCommonElementResp;
+import org.apache.poi.ss.formula.functions.T;
import java.util.List;
@@ -67,4 +68,6 @@ public interface CategoryInfoService extends IService {
* @return 品类共有属性
*/
CategoryCommonElementResp getTemplateAttributeByCateGoryId (Long cateGoryId);
+
+ public List getCommon(Long categoryId,IService iService,IService bsiService);
}
diff --git a/muyu-modules/muyu-product/muyu-product-service/src/main/java/com/muyu/product/service/ProjectInfoService.java b/muyu-modules/muyu-product/muyu-product-service/src/main/java/com/muyu/product/service/ProjectInfoService.java
index cef9101..650f49c 100644
--- a/muyu-modules/muyu-product/muyu-product-service/src/main/java/com/muyu/product/service/ProjectInfoService.java
+++ b/muyu-modules/muyu-product/muyu-product-service/src/main/java/com/muyu/product/service/ProjectInfoService.java
@@ -2,7 +2,9 @@ package com.muyu.product.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.product.domain.ProjectInfo;
+import com.muyu.product.domain.req.ProjectInfoEditReq;
import com.muyu.product.domain.req.ProjectInfoSaveReq;
+import com.muyu.product.domain.resp.ProjectDetailResp;
import java.util.List;
@@ -24,4 +26,8 @@ public interface ProjectInfoService extends IService {
boolean save(ProjectInfoSaveReq projectInfoSaveReq);
+
+
+
+ ProjectDetailResp getDetailInfo(Long id);
}
diff --git a/muyu-modules/muyu-product/muyu-product-service/src/main/java/com/muyu/product/service/impl/ProjectInfoServiceImpl.java b/muyu-modules/muyu-product/muyu-product-service/src/main/java/com/muyu/product/service/impl/ProjectInfoServiceImpl.java
index 4a2ebb7..8d56355 100644
--- a/muyu-modules/muyu-product/muyu-product-service/src/main/java/com/muyu/product/service/impl/ProjectInfoServiceImpl.java
+++ b/muyu-modules/muyu-product/muyu-product-service/src/main/java/com/muyu/product/service/impl/ProjectInfoServiceImpl.java
@@ -4,21 +4,19 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.common.core.utils.ObjUtils;
import com.muyu.common.security.utils.SecurityUtils;
-import com.muyu.product.domain.AsProductAttributeInfo;
-import com.muyu.product.domain.ProjectInfo;
-import com.muyu.product.domain.ProjectSkuInfo;
-import com.muyu.product.domain.model.AttrValueModel;
-import com.muyu.product.domain.model.ProductSkuModel;
-import com.muyu.product.domain.model.ProjectAddModel;
+import com.muyu.product.domain.*;
+import com.muyu.product.domain.model.*;
+import com.muyu.product.domain.req.ProjectInfoEditReq;
import com.muyu.product.domain.req.ProjectInfoSaveReq;
+import com.muyu.product.domain.resp.CategoryCommonElementResp;
+import com.muyu.product.domain.resp.ProjectDetailResp;
import com.muyu.product.mapper.ProjectInfoMapper;
-import com.muyu.product.service.AsProductAttributeInfoService;
-import com.muyu.product.service.ProjectInfoService;
-import com.muyu.product.service.ProjectSkuInfoService;
+import com.muyu.product.service.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -37,6 +35,18 @@ public class ProjectInfoServiceImpl extends ServiceImpl categoryInfoList = categoryInfoService.listByIds(new ArrayList<>() {{
+ add(projectInfo.getMianType());
+ add(projectInfo.getParentType());
+ add(projectInfo.getType());
+ }});
+ // 商品Sku集合
+ List projectSkuInfoList = this.projectSkuInfoService.list(new LambdaQueryWrapper<>() {{
+ eq(ProjectSkuInfo::getProjectId, id);
+ }});
+
+ // 商品和属性集合
+ List productAttributeInfoList = this.asProductAttributeInfoService.list(new LambdaQueryWrapper<>() {{
+ eq(AsProductAttributeInfo::getProductId, id);
+ }});
+ // 商品规格
+ List ruleAttrModelList = ruleAttrInfoService.list(new LambdaQueryWrapper<>() {{
+ eq(RuleAttrInfo::getRuleId, projectInfo.getRuleId());
+ }}).stream()
+ .map(RuleAttrAddModel::infoBuild).toList();
+
+
+ CategoryCommonElementResp templateAttribute = this.categoryInfoService.getTemplateAttributeByCateGoryId(projectInfo.getType());
+ 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());
+ if (!notInAttributeIdList.isEmpty()){
+ 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();
+ }
+ // 把自有属性添加到商品属性的集合当中,进行合并
+ if (!projectAttributeList.isEmpty()){
+ templateAttributeList.addAll(projectAttributeList);
+ }
+ return ProjectDetailResp.builder()
+ .projectInfo(projectInfo)
+ .brandInfo(brandInfo)
+ .categoryInfoList(categoryInfoList)
+ .projectSkuInfoList(projectSkuInfoList)
+ .productAttributeInfoList(productAttributeInfoList)
+ .ruleAttrModelList(ruleAttrModelList)
+ .attributeInfoList(templateAttributeList)
+ .attributeGroupList(templateAttributeGroupList)
+ .build();
+ }
}
diff --git a/muyu-modules/muyu-product/pom.xml b/muyu-modules/muyu-product/pom.xml
index d092ab0..8676cd4 100644
--- a/muyu-modules/muyu-product/pom.xml
+++ b/muyu-modules/muyu-product/pom.xml
@@ -15,6 +15,7 @@
muyu-product-common
muyu-product-remote
muyu-product-service
+ muyu-product-cache
diff --git a/pom.xml b/pom.xml
index 0dbedb5..bd349cb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -228,6 +228,7 @@
muyu-visual
muyu-modules
muyu-common
+ muyu-common/muyu-common-cache
pom