From 2a9c7ef8791a591035e86773c001eb8d6c56c119 Mon Sep 17 00:00:00 2001 From: DongZeLiang <2746733890@qq.com> Date: Thu, 29 Feb 2024 17:02:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=93=81=E7=B1=BB=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../product/domain/AsCategoryAttribute.java | 6 ++ .../domain/AsCategoryAttributeGroup.java | 6 ++ .../muyu/product/domain/AsCategoryBrand.java | 6 ++ .../com/muyu/product/domain/CategoryInfo.java | 21 ++++- .../domain/model/CategoryInfoSaveModel.java | 78 +++++++++++++++++++ .../domain/req/CategoryInfoSaveReq.java | 16 ++++ .../controller/CategoryInfoController.java | 7 +- .../product/service/CategoryInfoService.java | 8 ++ .../impl/AttributeInfoServiceImpl.java | 10 ++- .../service/impl/CategoryInfoServiceImpl.java | 56 ++++++++++++- 10 files changed, 205 insertions(+), 9 deletions(-) create mode 100644 muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/model/CategoryInfoSaveModel.java diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/AsCategoryAttribute.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/AsCategoryAttribute.java index eaf121d..3c37f9f 100644 --- a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/AsCategoryAttribute.java +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/AsCategoryAttribute.java @@ -45,4 +45,10 @@ public class AsCategoryAttribute extends BaseEntity { private Long attributeId; + public static AsCategoryAttribute categoryBuild(Long categoryInfoId, Long attributeId) { + return AsCategoryAttribute.builder() + .categoryId(categoryInfoId) + .attributeId(attributeId) + .build(); + } } diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/AsCategoryAttributeGroup.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/AsCategoryAttributeGroup.java index 7e27dce..35ab9f5 100644 --- a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/AsCategoryAttributeGroup.java +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/AsCategoryAttributeGroup.java @@ -45,4 +45,10 @@ public class AsCategoryAttributeGroup extends BaseEntity { private Long attributeGroupId; + public static AsCategoryAttributeGroup categoryBuild(Long categoryInfoId, Long attributeGroupId) { + return AsCategoryAttributeGroup.builder() + .attributeGroupId(attributeGroupId) + .categoryId(categoryInfoId) + .build(); + } } diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/AsCategoryBrand.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/AsCategoryBrand.java index bc52a80..b64d751 100644 --- a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/AsCategoryBrand.java +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/AsCategoryBrand.java @@ -44,4 +44,10 @@ public class AsCategoryBrand extends BaseEntity { @ApiModelProperty(name = "品牌id", value = "品牌id", required = true) private Long brandId; + public static AsCategoryBrand categoryBuild(Long categoryInfoId, Long brandId) { + return AsCategoryBrand.builder() + .brandId(brandId) + .categoryId(categoryInfoId) + .build(); + } } diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/CategoryInfo.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/CategoryInfo.java index dc06d43..918b02c 100644 --- a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/CategoryInfo.java +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/CategoryInfo.java @@ -3,6 +3,7 @@ package com.muyu.product.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.muyu.product.domain.model.CategoryInfoSaveModel; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; @@ -15,6 +16,10 @@ import com.muyu.product.domain.req.CategoryInfoSaveReq; import com.muyu.product.domain.req.CategoryInfoEditReq; import com.muyu.common.core.web.domain.TreeEntity; +import java.util.Date; +import java.util.function.Function; +import java.util.function.Supplier; + /** * 品类信息对象 category_info * @@ -72,12 +77,15 @@ public class CategoryInfo extends TreeEntity { /** * 添加构造器 */ - public static CategoryInfo saveBuild(CategoryInfoSaveReq categoryInfoSaveReq){ + public static CategoryInfo saveBuild(CategoryInfoSaveReq categoryInfoSaveReq, Supplier supplier){ return CategoryInfo.builder() .name(categoryInfoSaveReq.getName()) .image(categoryInfoSaveReq.getImage()) .start(categoryInfoSaveReq.getStart()) .introduction(categoryInfoSaveReq.getIntroduction()) + .parentId(categoryInfoSaveReq.getParentId()) + .createBy(supplier.get()) + .createTime(new Date()) .build(); } @@ -94,4 +102,15 @@ public class CategoryInfo extends TreeEntity { .build(); } + public static CategoryInfo saveModelBuild(CategoryInfoSaveModel categoryInfoSaveModel) { + return CategoryInfo.builder() + .name(categoryInfoSaveModel.getName()) + .image(categoryInfoSaveModel.getImage()) + .start(categoryInfoSaveModel.getStart()) + .introduction(categoryInfoSaveModel.getIntroduction()) + .parentId(categoryInfoSaveModel.getParentId()) + .createBy(categoryInfoSaveModel.getCreateBy()) + .createTime(new Date()) + .build(); + } } diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/model/CategoryInfoSaveModel.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/model/CategoryInfoSaveModel.java new file mode 100644 index 0000000..8a77303 --- /dev/null +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/model/CategoryInfoSaveModel.java @@ -0,0 +1,78 @@ +package com.muyu.product.domain.model; + +import com.muyu.common.core.web.domain.TreeEntity; +import com.muyu.product.domain.CategoryInfo; +import com.muyu.product.domain.req.CategoryInfoSaveReq; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.Date; +import java.util.List; +import java.util.function.Supplier; + +/** + * 品类信息对象 category_info + * + * @author DongZeLiang + * @date 2024-02-27 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class CategoryInfoSaveModel extends TreeEntity { + + private static final long serialVersionUID = 1L; + + + /** 品类名称 */ + private String name; + + /** 图片 */ + private String image; + + /** 是否启用 */ + private String start; + + /** 介绍 */ + private String introduction; + + /** + * 商品属性组关联ID + */ + private List attributeGroupIdList; + /** + * 商品属性关联ID + */ + private List attributeIdList; + + /** + * 商品品牌组关联ID + */ + private List brandIdList; + + /** + * 添加构造器 + */ + public static CategoryInfoSaveModel saveBuild(CategoryInfoSaveReq categoryInfoSaveReq, Supplier supplier){ + return CategoryInfoSaveModel.builder() + .name(categoryInfoSaveReq.getName()) + .image(categoryInfoSaveReq.getImage()) + .start(categoryInfoSaveReq.getStart()) + .introduction(categoryInfoSaveReq.getIntroduction()) + .parentId(categoryInfoSaveReq.getParentId()) + .attributeGroupIdList(categoryInfoSaveReq.getAttributeGroupIdList()) + .attributeIdList(categoryInfoSaveReq.getAttributeIdList()) + .brandIdList(categoryInfoSaveReq.getBrandIdList()) + .createBy(supplier.get()) + .createTime(new Date()) + .build(); + } + +} diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/CategoryInfoSaveReq.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/CategoryInfoSaveReq.java index 62f78e9..f65452b 100644 --- a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/CategoryInfoSaveReq.java +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/CategoryInfoSaveReq.java @@ -8,6 +8,8 @@ import lombok.experimental.SuperBuilder; import io.swagger.annotations.*; import com.muyu.common.core.web.domain.TreeEntity; +import java.util.List; + /** * 品类信息对象 category_info * @@ -48,4 +50,18 @@ public class CategoryInfoSaveReq extends TreeEntity { @ApiModelProperty(name = "介绍", value = "介绍") private String introduction; + /** + * 商品属性组关联ID + */ + private List attributeGroupIdList; + /** + * 商品属性关联ID + */ + private List attributeIdList; + + /** + * 商品品牌组关联ID + */ + private List brandIdList; + } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/CategoryInfoController.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/CategoryInfoController.java index db83452..f466e25 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/CategoryInfoController.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/CategoryInfoController.java @@ -1,8 +1,11 @@ package com.muyu.product.controller; import java.util.List; +import java.util.function.Supplier; import javax.servlet.http.HttpServletResponse; +import com.muyu.common.security.utils.SecurityUtils; +import com.muyu.product.domain.model.CategoryInfoSaveModel; import io.swagger.annotations.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -81,7 +84,9 @@ public class CategoryInfoController extends BaseController { @PostMapping @ApiOperation("新增品类信息") public Result add(@RequestBody CategoryInfoSaveReq categoryInfoSaveReq) { - return toAjax(categoryInfoService.save(CategoryInfo.saveBuild(categoryInfoSaveReq))); + return toAjax(categoryInfoService.save( + CategoryInfoSaveModel.saveBuild(categoryInfoSaveReq, SecurityUtils::getUsername) + )); } /** 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 cd306e0..514d121 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 @@ -3,6 +3,7 @@ package com.muyu.product.service; import java.util.List; import com.muyu.product.domain.CategoryInfo; import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.product.domain.model.CategoryInfoSaveModel; /** * 品类信息Service接口 @@ -19,4 +20,11 @@ public interface CategoryInfoService extends IService { */ public List list(CategoryInfo categoryInfo); + /** + * 保存 + * @param categoryInfoSaveModel 保存品类模型 + * @return 是否成功 + */ + public boolean save(CategoryInfoSaveModel categoryInfoSaveModel); + } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/AttributeInfoServiceImpl.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/AttributeInfoServiceImpl.java index cfa5de5..0da9ac8 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/AttributeInfoServiceImpl.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/AttributeInfoServiceImpl.java @@ -64,10 +64,14 @@ public class AttributeInfoServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(AsAttributeGroup::getGroupId, groupId); + List list = asAttributeGroupService.list(queryWrapper).stream() + .map(AsAttributeGroup::getAttributeId) + .toList(); + if (list == null || list.isEmpty()){ + return null; + } return this.listByIds( - asAttributeGroupService.list(queryWrapper).stream() - .map(AsAttributeGroup::getAttributeId) - .toList() + list ); } } 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 ebaebe9..cc94ef4 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 @@ -3,13 +3,22 @@ package com.muyu.product.service.impl; import java.util.List; import com.muyu.common.core.utils.ObjUtils; +import com.muyu.product.domain.AsCategoryAttribute; +import com.muyu.product.domain.AsCategoryAttributeGroup; +import com.muyu.product.domain.AsCategoryBrand; +import com.muyu.product.domain.model.CategoryInfoSaveModel; +import com.muyu.product.service.AsCategoryAttributeGroupService; +import com.muyu.product.service.AsCategoryAttributeService; +import com.muyu.product.service.AsCategoryBrandService; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.muyu.product.mapper.CategoryInfoMapper; import com.muyu.product.domain.CategoryInfo; import com.muyu.product.service.CategoryInfoService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.springframework.transaction.annotation.Transactional; /** * 品类信息Service业务层处理 @@ -21,6 +30,16 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @Service public class CategoryInfoServiceImpl extends ServiceImpl implements CategoryInfoService { + + @Autowired + private AsCategoryAttributeService asCategoryAttributeService; + + @Autowired + private AsCategoryAttributeGroupService asCategoryAttributeGroupService; + + @Autowired + private AsCategoryBrandService asCategoryBrandService; + /** * 查询品类信息列表 * @@ -52,10 +71,39 @@ public class CategoryInfoServiceImpl extends ServiceImpl attributeIdList = categoryInfoSaveModel.getAttributeIdList(); + if (attributeIdList != null && !attributeIdList.isEmpty()){ + asCategoryAttributeService.saveBatch( + attributeIdList.stream() + .map(attributeId -> AsCategoryAttribute.categoryBuild(categoryInfoId, attributeId)) + .toList() + ); + } + List attributeGroupIdList = categoryInfoSaveModel.getAttributeGroupIdList(); + if (attributeGroupIdList != null && !attributeGroupIdList.isEmpty()){ + asCategoryAttributeGroupService.saveBatch( + attributeGroupIdList.stream() + .map(attributeGroupId -> AsCategoryAttributeGroup.categoryBuild(categoryInfoId, attributeGroupId)) + .toList() + ); + } + List brandIdList = categoryInfoSaveModel.getBrandIdList(); + if (brandIdList != null && !brandIdList.isEmpty()){ + asCategoryBrandService.saveBatch( + brandIdList.stream() + .map(brandId -> AsCategoryBrand.categoryBuild(categoryInfoId, brandId)) + .toList() + ); + } + return save; + } }