From 48b64bbc0d5e9a57367caa650a35524d5fb21c4b Mon Sep 17 00:00:00 2001 From: DongZeLiang <2746733890@qq.com> Date: Mon, 25 Mar 2024 11:46:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=95=86=E5=93=81=E8=AF=A6=E6=83=85=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/muyu/product/domain/ProjectInfo.java | 6 +- .../product/domain/model/ProjectAddModel.java | 6 +- .../domain/req/ProjectInfoEditReq.java | 6 +- .../domain/req/ProjectInfoQueryReq.java | 6 +- .../domain/resp/ProjectDetailResp.java | 59 ++++++++++++++ .../controller/ProjectInfoController.java | 12 +++ .../product/service/CategoryInfoService.java | 2 + .../product/service/ProjectInfoService.java | 8 ++ .../service/impl/CategoryInfoServiceImpl.java | 2 +- .../service/impl/ProjectInfoServiceImpl.java | 76 +++++++++++++++++-- 10 files changed, 164 insertions(+), 19 deletions(-) create mode 100644 muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/resp/ProjectDetailResp.java 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 9cd7003..156bd38 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 b56e801..33bc029 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 @@ -27,15 +27,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/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..88d6487 --- /dev/null +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/resp/ProjectDetailResp.java @@ -0,0 +1,59 @@ +package com.muyu.product.domain.resp; + +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; + +/** + * @author DongZl + * @description: 商品详情信息 + * @Date 2024-3-25 上午 10:46 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ProjectDetailResp { + + /** + * 品类集合 + */ + private List categoryInfoList; + + /** + * 商品信息 + */ + private ProjectInfo projectInfo; + + /** + * 商品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-server/src/main/java/com/muyu/product/controller/ProjectInfoController.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/ProjectInfoController.java index 647e056..9dfb2a2 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/ProjectInfoController.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/ProjectInfoController.java @@ -3,6 +3,7 @@ package com.muyu.product.controller; import java.util.List; import javax.servlet.http.HttpServletResponse; +import com.muyu.product.domain.resp.ProjectDetailResp; import io.swagger.annotations.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -75,6 +76,17 @@ 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-server/src/main/java/com/muyu/product/service/CategoryInfoService.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/CategoryInfoService.java index f2661ae..9b99d9d 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/CategoryInfoService.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/CategoryInfoService.java @@ -67,4 +67,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-server/src/main/java/com/muyu/product/service/ProjectInfoService.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/ProjectInfoService.java index bb0e287..0924c9e 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/ProjectInfoService.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/ProjectInfoService.java @@ -4,6 +4,7 @@ import java.util.List; import com.muyu.product.domain.ProjectInfo; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.product.domain.req.ProjectInfoSaveReq; +import com.muyu.product.domain.resp.ProjectDetailResp; /** * 商品信息Service接口 @@ -26,4 +27,11 @@ public interface ProjectInfoService extends IService { * @return */ boolean save (ProjectInfoSaveReq projectInfoSaveReq); + + /** + * 通过商品ID获取商品详情 + * @param id 商品ID + * @return 商品详情 + */ + ProjectDetailResp getDetailInfo (Long id); } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/CategoryInfoServiceImpl.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/CategoryInfoServiceImpl.java index 5eb51aa..2ec8322 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/CategoryInfoServiceImpl.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/CategoryInfoServiceImpl.java @@ -232,7 +232,7 @@ public class CategoryInfoServiceImpl extends ServiceImpl List getCommon (Long categoryId, IService iService, IService bsiService) { List list = new ArrayList(); QueryWrapper asQueryWrapper = new QueryWrapper<>(); 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 fb48531..9250ec1 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 @@ -1,23 +1,24 @@ package com.muyu.product.service.impl; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; 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.ProjectSkuInfo; +import com.muyu.product.domain.*; 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.model.RuleAttrAddModel; import com.muyu.product.domain.req.ProjectInfoSaveReq; -import com.muyu.product.service.AsProductAttributeInfoService; -import com.muyu.product.service.ProjectSkuInfoService; +import com.muyu.product.domain.resp.CategoryCommonElementResp; +import com.muyu.product.domain.resp.ProjectDetailResp; +import com.muyu.product.service.*; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.muyu.product.mapper.ProjectInfoMapper; -import com.muyu.product.domain.ProjectInfo; -import com.muyu.product.service.ProjectInfoService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -37,6 +38,25 @@ 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()); + return ProjectDetailResp.builder() + .projectInfo(projectInfo) + .categoryInfoList(categoryInfoList) + .projectSkuInfoList(projectSkuInfoList) + .productAttributeInfoList(productAttributeInfoList) + .ruleAttrModelList(ruleAttrModelList) + .attributeInfoList(templateAttribute.getTemplateAttributeList()) + .attributeGroupList(templateAttribute.getTemplateAttributeGroupList()) + .build(); + } }