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 1423b22..829aeef 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 @@ -53,6 +53,11 @@ public class AsCategoryAttribute extends BaseEntity implements CategoryBase { .build(); } + public static AsCategoryAttribute categoryAttribute(Long attributeId){ + return AsCategoryAttribute.builder() + .categoryId(attributeId) + .build(); + } @Override public Long getBaseId () { return this.attributeId; 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 1dd2789..5a61e15 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 @@ -52,6 +52,11 @@ public class AsCategoryAttributeGroup extends BaseEntity implements CategoryBase .categoryId(categoryInfoId) .build(); } + public static AsCategoryAttributeGroup categoryBuild(Long categoryInfoId) { + return AsCategoryAttributeGroup.builder() + .categoryId(categoryInfoId) + .build(); + } @Override public Long getBaseId () { diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/AsProductAttributeInfo.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/AsProductAttributeInfo.java index 49f25a8..9299907 100644 --- a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/AsProductAttributeInfo.java +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/AsProductAttributeInfo.java @@ -1,10 +1,13 @@ package com.muyu.product.domain; import java.util.Date; +import java.util.function.Supplier; + import com.fasterxml.jackson.annotation.JsonFormat; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.muyu.product.domain.model.AttrValueModel; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; @@ -51,4 +54,17 @@ public class AsProductAttributeInfo extends BaseEntity { @ApiModelProperty(name = "属性值", value = "属性值", required = true) private String value; + public static AsProductAttributeInfo attrValueModelBuild(AttrValueModel attrValueModel, Supplier projectId ){ + return AsProductAttributeInfo.builder() + .productId(projectId.get()) + .attributeId(attrValueModel.getId()) + .value(attrValueModel.getValue()) + .build(); + } + + public static AsProductAttributeInfo productAttributeInfo(Long productId){ + return AsProductAttributeInfo.builder() + .attributeId(productId) + .build(); + } } 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 2688652..f5a6564 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 @@ -3,6 +3,8 @@ 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.ProductSkuModel; +import com.muyu.product.domain.model.ProjectAddModel; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; @@ -11,10 +13,12 @@ import lombok.experimental.SuperBuilder; import io.swagger.annotations.*; import com.muyu.common.core.annotation.Excel; import com.muyu.product.domain.req.ProjectInfoQueryReq; -import com.muyu.product.domain.req.ProjectInfoSaveReq; import com.muyu.product.domain.req.ProjectInfoEditReq; import com.muyu.common.core.web.domain.BaseEntity; +import java.util.Date; +import java.util.function.Supplier; + /** * 商品信息对象 project_info * @@ -108,18 +112,20 @@ public class ProjectInfo extends BaseEntity { /** * 添加构造器 */ - public static ProjectInfo saveBuild(ProjectInfoSaveReq projectInfoSaveReq){ + public static ProjectInfo saveModelBuild(ProjectAddModel projectAddModel, Supplier createBy){ return ProjectInfo.builder() - .name(projectInfoSaveReq.getName()) - .introduction(projectInfoSaveReq.getIntroduction()) - .mianType(projectInfoSaveReq.getMianType()) - .parentType(projectInfoSaveReq.getParentType()) - .type(projectInfoSaveReq.getType()) - .image(projectInfoSaveReq.getImage()) - .carouselImages(projectInfoSaveReq.getCarouselImages()) - .status(projectInfoSaveReq.getStatus()) - .ruleId(projectInfoSaveReq.getRuleId()) - .brandId(projectInfoSaveReq.getBrandId()) + .name(projectAddModel.getName()) + .introduction(projectAddModel.getIntroduction()) + .mianType(projectAddModel.getMianType()) + .parentType(projectAddModel.getParenType()) + .type(projectAddModel.getType()) + .image(projectAddModel.getImage()) + .carouselImages(projectAddModel.getCarouselImages()) + .status(projectAddModel.getStatus()) + .ruleId(projectAddModel.getRuleId()) + .brandId(projectAddModel.getBrandId()) + .createBy(createBy.get()) + .createTime(new Date()) .build(); } @@ -142,4 +148,5 @@ public class ProjectInfo extends BaseEntity { .build(); } + } diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/ProjectSkuInfo.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/ProjectSkuInfo.java index 3ea0dcb..76af0e6 100644 --- a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/ProjectSkuInfo.java +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/ProjectSkuInfo.java @@ -1,9 +1,12 @@ package com.muyu.product.domain; import java.math.BigDecimal; +import java.util.function.Supplier; + import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.muyu.product.domain.model.ProductSkuModel; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; @@ -103,4 +106,15 @@ public class ProjectSkuInfo extends BaseEntity { .build(); } + public static ProjectSkuInfo productSkuModelNuild(ProductSkuModel productSkuModel, Supplier projectId){ + return ProjectSkuInfo.builder() + .projectId(projectId.get()) + .sku(productSkuModel.getSku()) + .image(productSkuModel.getImage()) + .stock(productSkuModel.getStock()) + .price(productSkuModel.getPrice()) + .build(); + } + + } diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/aa b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/aa new file mode 100644 index 0000000..c17c8bd --- /dev/null +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/aa @@ -0,0 +1,13 @@ +{ + "品牌": + { + "id" + "品牌中间表" + } + "轮播图" + "名称": + "价格" + "商品规格"{ + "规格详情表" + } +} diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/model/AttrValueModel.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/model/AttrValueModel.java new file mode 100644 index 0000000..ea25473 --- /dev/null +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/model/AttrValueModel.java @@ -0,0 +1,27 @@ +package com.muyu.product.domain.model; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 商品属性 AttrValueModel + * + * @author LeYang + * on 2024/3/22 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AttrValueModel { + /** + * id + */ + private Long id; + /** + * 值 + */ + private String value; +} diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/model/ProductSkuModel.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/model/ProductSkuModel.java new file mode 100644 index 0000000..ae71b4b --- /dev/null +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/model/ProductSkuModel.java @@ -0,0 +1,46 @@ +package com.muyu.product.domain.model; + +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +/** + * 商品sku ProductSkuModel + * + * @author LeYang + * on 2024/3/22 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ProductSkuModel { + /** + * sku + */ + @ApiModelProperty(name = "sku",value = "sku",required = true) + private String sku; + + /** + * 商品库存 + */ + @ApiModelProperty(name = "商品库存",value = "商品库存",required = true) + private Long stock; + + /** + * 商品价格 + */ + @ApiModelProperty(name = "商品价格",value = "商品价格",required = true) + private BigDecimal price; + + /* + 规格图片 + */ + @ApiModelProperty(name = "规格图片",value = "规格图片",required = true) + private String image; + +} 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 new file mode 100644 index 0000000..5645d85 --- /dev/null +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/model/ProjectAddModel.java @@ -0,0 +1,104 @@ +package com.muyu.product.domain.model; + +import com.muyu.common.core.web.domain.BaseEntity; +import com.muyu.product.domain.ProjectInfo; +import com.muyu.product.domain.req.ProjectInfoQueryReq; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * 商品添加模型 ProjectAddModel + * + * @author LeYang + * on 2024/3/22 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class ProjectAddModel extends BaseEntity { + /** + * 商品名称 + */ + @ApiModelProperty(name = "商品名称",value = "商品名称") + private String name; + + /** + * 商品描述 + */ + @ApiModelProperty(name = "商品描述",value = "商品描述") + private String introduction; + + /** + * 主类型 + */ + @ApiModelProperty(name = "主类型",value = "主类型") + private String mianType; + + /** + * 父类型 + */ + @ApiModelProperty(name = "父类型",value = "父类型") + private String parenType; + + /** + * 商品类型 + */ + @ApiModelProperty(name = "商品类型",value = "商品类型") + private String type; + + /** + * 商品图片 + */ + @ApiModelProperty(name = "商品图片",value = "商品图片") + private String image; + + /** + * 商品轮播图 + */ + @ApiModelProperty(name = "商品轮播图",value = "商品轮播图") + private String carouselImages; + + /** + * 商品状态 + */ + @ApiModelProperty(name = "商品状态",value = "商品状态") + private String status; + + /** + * 规格 + */ + @ApiModelProperty(name = "规格",value = "规格") + private Long ruleId; + + /** + * 品牌 + */ + @ApiModelProperty(name = "品牌",value = "品牌") + private Long brandId; + + + private ProductSkuModel productSkuModel; + + + public static ProjectAddModel queryBuild(ProjectInfo projectInfoQueryReq){ + return ProjectAddModel.builder() + .name(projectInfoQueryReq.getName()) + .introduction(projectInfoQueryReq.getIntroduction()) + .mianType(projectInfoQueryReq.getMianType()) + .parenType(projectInfoQueryReq.getParentType()) + .type(projectInfoQueryReq.getType()) + .image(projectInfoQueryReq.getImage()) + .carouselImages(projectInfoQueryReq.getCarouselImages()) + .status(projectInfoQueryReq.getStatus()) + .ruleId(projectInfoQueryReq.getRuleId()) + .brandId(projectInfoQueryReq.getBrandId()) + .build(); + } + +} diff --git a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/CategoryInfoEditReq.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/CategoryInfoEditReq.java index 023446a..2b9bbdc 100644 --- a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/CategoryInfoEditReq.java +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/CategoryInfoEditReq.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 * @@ -39,4 +41,17 @@ public class CategoryInfoEditReq 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-common/src/main/java/com/muyu/product/domain/req/ProjectInfoSaveReq.java b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/ProjectInfoSaveReq.java index 8907e6d..2a3601b 100644 --- a/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/ProjectInfoSaveReq.java +++ b/muyu-modules/muyu-product/muyu-product-common/src/main/java/com/muyu/product/domain/req/ProjectInfoSaveReq.java @@ -1,5 +1,8 @@ package com.muyu.product.domain.req; +import com.muyu.product.domain.model.AttrValueModel; +import com.muyu.product.domain.model.ProductSkuModel; +import com.muyu.product.domain.model.ProjectAddModel; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; @@ -8,6 +11,8 @@ import lombok.experimental.SuperBuilder; import io.swagger.annotations.*; import com.muyu.common.core.web.domain.BaseEntity; +import java.util.List; + /** * 商品信息对象 project_info * @@ -22,60 +27,16 @@ import com.muyu.common.core.web.domain.BaseEntity; public class ProjectInfoSaveReq extends BaseEntity { private static final long serialVersionUID = 1L; - - /** 主键 */ - - @ApiModelProperty(name = "主键", value = "主键") - private Long id; - - /** 商品名称 */ - - @ApiModelProperty(name = "商品名称", value = "商品名称") - private String name; - - /** 商品描述 */ - - @ApiModelProperty(name = "商品描述", value = "商品描述") - private String introduction; - - /** 主类型 */ - - @ApiModelProperty(name = "主类型", value = "主类型") - private String mianType; - - /** 父类型 */ - - @ApiModelProperty(name = "父类型", value = "父类型") - private String parentType; - - /** 商品类型 */ - - @ApiModelProperty(name = "商品类型", value = "商品类型") - private String type; - - /** 商品图片 */ - - @ApiModelProperty(name = "商品图片", value = "商品图片") - private String image; - - /** 商品轮播图 */ - - @ApiModelProperty(name = "商品轮播图", value = "商品轮播图") - private String carouselImages; - - /** 商品状态 */ - - @ApiModelProperty(name = "商品状态", value = "商品状态") - private String status; - - /** 规格 */ - - @ApiModelProperty(name = "规格", value = "规格") - private Long ruleId; - - /** 品牌 */ - - @ApiModelProperty(name = "品牌", value = "品牌") - private Long brandId; - + /** + * 商品添加基本属性 + */ + private ProjectAddModel projectAddModel; + /** + * 商品属性 + */ + private List attrValueList; + /** + * 商品sku + */ + private List productSkuList; } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/BrandInfoController.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/BrandInfoController.java index 29d4305..d0302a5 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/BrandInfoController.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/BrandInfoController.java @@ -98,6 +98,7 @@ public class BrandInfoController extends BaseController { @PutMapping("/{id}") @ApiOperation("修改品牌信息") public Result edit(@PathVariable Long id, @RequestBody BrandInfoEditReq brandInfoEditReq) { + brandInfoService.urikBrand(brandInfoEditReq,id); return toAjax(brandInfoService.updateById(BrandInfo.editBuild(id,brandInfoEditReq))); } @@ -110,6 +111,7 @@ public class BrandInfoController extends BaseController { @ApiOperation("删除品牌信息") @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long", paramType = "path", dataTypeClass = String.class, example = "1,2,3,4") public Result remove(@PathVariable List ids) { + return toAjax(brandInfoService.removeBatchByIds(ids)); } } 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 55dbaef..7d37e98 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 @@ -113,6 +113,7 @@ public class CategoryInfoController extends BaseController { @PutMapping("/{id}") @ApiOperation("修改品类信息") public Result edit(@PathVariable Long id, @RequestBody CategoryInfoEditReq categoryInfoEditReq) { + categoryInfoService.util(id,categoryInfoEditReq); return toAjax(categoryInfoService.updateById(CategoryInfo.editBuild(id,categoryInfoEditReq))); } @@ -125,6 +126,7 @@ public class CategoryInfoController extends BaseController { @ApiOperation("删除品类信息") @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long", paramType = "path", dataTypeClass = String.class, example = "1,2,3,4") public Result remove(@PathVariable List ids) { + categoryInfoService.removeBatchById(ids); return toAjax(categoryInfoService.removeBatchByIds(ids)); } 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 e0fd126..0b1b080 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,7 +3,10 @@ package com.muyu.product.controller; import java.util.List; import javax.servlet.http.HttpServletResponse; +import com.muyu.product.domain.model.ProductSkuModel; +import com.muyu.product.domain.model.ProjectAddModel; import io.swagger.annotations.*; +import org.apache.commons.lang3.SystemUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -71,8 +74,9 @@ public class ProjectInfoController extends BaseController { @RequiresPermissions("product:info:query") @GetMapping(value = "/{id}") @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long", paramType = "path", dataTypeClass = Long.class) - public Result getInfo(@PathVariable("id") Long id) { - return Result.success(projectInfoService.getById(id)); + public Result getInfo(@PathVariable("id") Long id) { + ProductSkuModel ProductSkuModel= projectInfoService.find(id); + return Result.success(projectInfoService.getById1(id,ProductSkuModel)); } /** @@ -83,7 +87,7 @@ public class ProjectInfoController extends BaseController { @PostMapping @ApiOperation("新增商品信息") public Result add(@RequestBody ProjectInfoSaveReq projectInfoSaveReq) { - return toAjax(projectInfoService.save(ProjectInfo.saveBuild(projectInfoSaveReq))); + return toAjax(projectInfoService.save(projectInfoSaveReq)); } /** @@ -94,6 +98,7 @@ public class ProjectInfoController extends BaseController { @PutMapping("/{id}") @ApiOperation("修改商品信息") public Result edit(@PathVariable Long id, @RequestBody ProjectInfoEditReq projectInfoEditReq) { + projectInfoService.util(id,projectInfoEditReq); return toAjax(projectInfoService.updateById(ProjectInfo.editBuild(id,projectInfoEditReq))); } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/ProjectSkuInfoMapper.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/ProjectSkuInfoMapper.java index 040cb21..f70f30c 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/ProjectSkuInfoMapper.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/ProjectSkuInfoMapper.java @@ -3,6 +3,8 @@ package com.muyu.product.mapper; import java.util.List; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.product.domain.ProjectSkuInfo; +import com.muyu.product.domain.model.ProductSkuModel; +import org.apache.ibatis.annotations.Mapper; /** * 商品SKUMapper接口 @@ -10,6 +12,8 @@ import com.muyu.product.domain.ProjectSkuInfo; * @author DongZeLiang * @date 2024-02-27 */ +@Mapper public interface ProjectSkuInfoMapper extends BaseMapper { + ProductSkuModel find(Long id); } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/BrandInfoService.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/BrandInfoService.java index fa6ada7..9864b33 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/BrandInfoService.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/BrandInfoService.java @@ -3,6 +3,7 @@ package com.muyu.product.service; import java.util.List; import com.muyu.product.domain.BrandInfo; import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.product.domain.req.BrandInfoEditReq; /** * 品牌信息Service接口 @@ -19,4 +20,5 @@ public interface BrandInfoService extends IService { */ public List list(BrandInfo brandInfo); + void urikBrand(BrandInfoEditReq brandInfoEditReq, Long 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..93d2dd8 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 @@ -8,6 +8,7 @@ import com.muyu.product.domain.BrandInfo; import com.muyu.product.domain.CategoryInfo; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.product.domain.model.CategoryInfoSaveModel; +import com.muyu.product.domain.req.CategoryInfoEditReq; import com.muyu.product.domain.resp.CategoryCommonElementResp; import com.muyu.product.domain.resp.CategoryParentCommonElementResp; @@ -67,4 +68,8 @@ public interface CategoryInfoService extends IService { * @return 品类共有属性 */ CategoryCommonElementResp getTemplateAttributeByCateGoryId (Long cateGoryId); + + Boolean removeBatchById(List ids); + + void util(Long id, CategoryInfoEditReq categoryInfoEditReq); } 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 f4ea950..13ceb1a 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 @@ -3,6 +3,10 @@ package com.muyu.product.service; import java.util.List; import com.muyu.product.domain.ProjectInfo; import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.product.domain.model.ProductSkuModel; +import com.muyu.product.domain.model.ProjectAddModel; +import com.muyu.product.domain.req.ProjectInfoEditReq; +import com.muyu.product.domain.req.ProjectInfoSaveReq; /** * 商品信息Service接口 @@ -19,4 +23,12 @@ public interface ProjectInfoService extends IService { */ public List list(ProjectInfo projectInfo); + boolean save(ProjectInfoSaveReq projectInfoSaveReq); + + + boolean util(Long id, ProjectInfoEditReq projectInfoEditReq); + + ProductSkuModel find(Long id); + + ProjectAddModel getById1(Long id, ProductSkuModel productSkuModel); } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/AttributeGroupServiceImpl.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/AttributeGroupServiceImpl.java index 8c62296..85f52d1 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/AttributeGroupServiceImpl.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/AttributeGroupServiceImpl.java @@ -9,9 +9,7 @@ import com.muyu.product.domain.AsAttributeGroup; import com.muyu.product.domain.AttributeGroup; import com.muyu.product.domain.AttributeInfo; import com.muyu.product.domain.model.AttributeGroupSaveModel; -import com.muyu.product.domain.req.AttributeGroupEditReq; import com.muyu.product.domain.resp.AttributeGroupPageResp; -import com.muyu.product.mapper.AsAttributeGroupMapper; import com.muyu.product.mapper.AttributeGroupMapper; import com.muyu.product.service.AsAttributeGroupService; import com.muyu.product.service.AttributeGroupService; @@ -21,7 +19,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; import java.util.List; import java.util.function.Function; import java.util.stream.Stream; @@ -110,38 +107,4 @@ public class AttributeGroupServiceImpl extends ServiceImpl list = attributeGroupService.list(asAttributeGroup); - ArrayList longs = new ArrayList<>(); - for (Long aLong : longs) { - longs.add(aLong); - } - - attributeGroupService.removeBatchByIds(longs); - List attributeIdList = attributeGroupEditReq.getAttributeIdList(); - attributeGroupService.saveBatch( - attributeIdList.stream() - .map(aLong -> AsAttributeGroup.buildGroup( - id,aLong - )).toList() - ); - } - - @Autowired - private AsAttributeGroupMapper asAttributeGroupMapper; - @Override - public Boolean removeBatchById(List ids) { - LambdaQueryWrapper asAttributeGroupLambdaQueryWrapper = new LambdaQueryWrapper<>(); - asAttributeGroupLambdaQueryWrapper.in(AsAttributeGroup::getGroupId,ids); - asAttributeGroupMapper.delete(asAttributeGroupLambdaQueryWrapper); - return true; - } } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/BrandInfoServiceImpl.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/BrandInfoServiceImpl.java index 3c2f6c9..1e5a46c 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/BrandInfoServiceImpl.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/BrandInfoServiceImpl.java @@ -5,6 +5,7 @@ import java.util.List; import com.muyu.common.core.utils.ObjUtils; import com.muyu.common.security.utils.SecurityUtils; +import com.muyu.product.domain.req.BrandInfoEditReq; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import com.muyu.product.mapper.BrandInfoMapper; @@ -53,6 +54,11 @@ public class BrandInfoServiceImpl extends ServiceImpl ids) { + //删除品类属性组中间表 + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(AsCategoryAttributeGroup::getAttributeGroupId, ids); + asCategoryAttributeGroupMapper.delete(lambdaQueryWrapper); + //删除品类属性中间表 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(AsCategoryAttribute::getAttributeId, ids); + asCategoryAttributeMapper.delete(queryWrapper); + //删除品类品牌中间 + LambdaQueryWrapper asCategoryBrandLambdaQueryWrapper = new LambdaQueryWrapper<>(); + asCategoryBrandLambdaQueryWrapper.in(AsCategoryBrand::getBrandId, ids); + asCategoryBrandMapper.delete(asCategoryBrandLambdaQueryWrapper); + return true; + } + + @Override + public void util(Long id, CategoryInfoEditReq categoryInfoEditReq) { + //品类 属性组 + AsCategoryAttribute asCategoryAttribute = AsCategoryAttribute.categoryAttribute(id); + List list = asCategoryAttributeService.list(asCategoryAttribute); + ArrayList longs = new ArrayList<>(); + for (AsCategoryAttribute categoryAttribute : list) { + longs.add(categoryAttribute.getId()); + } + asCategoryAttributeService.removeBatchByIds(longs); + List attributeGroupIdList = categoryInfoEditReq.getAttributeGroupIdList(); + asCategoryAttributeService.saveBatch( + attributeGroupIdList.stream() + .map(aLong -> AsCategoryAttribute.categoryBuild(id,aLong)) + .toList() + ); + + AsCategoryAttributeGroup asCategoryAttributeGroup = AsCategoryAttributeGroup.categoryBuild(id); + } } 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 37d05e1..604e8ee 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,12 +1,24 @@ package com.muyu.product.service.impl; +import java.util.ArrayList; import java.util.List; import com.muyu.common.core.utils.ObjUtils; +import com.muyu.common.security.utils.SecurityUtils; +import com.muyu.product.controller.ProjectInfoController; +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.req.ProjectInfoEditReq; +import com.muyu.product.domain.req.ProjectInfoSaveReq; +import com.muyu.product.mapper.ProjectSkuInfoMapper; +import com.muyu.product.service.AsProductAttributeInfoService; +import com.muyu.product.service.ProjectSkuInfoService; 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; @@ -20,7 +32,10 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @Slf4j @Service public class ProjectInfoServiceImpl extends ServiceImpl implements ProjectInfoService { - + @Autowired + private AsProductAttributeInfoService asProductAttributeInfoService; + @Autowired + private ProjectSkuInfoService projectSkuInfoService; /** * 查询商品信息列表 * @@ -78,4 +93,59 @@ public class ProjectInfoServiceImpl extends ServiceImpl attrValueList = projectInfoSaveReq.getAttrValueList(); + List asProductAttributeInfoList = attrValueList.stream() + .map(attrValueModel -> AsProductAttributeInfo.attrValueModelBuild(attrValueModel, projectInfo::getId)) + .toList(); + if (!asProductAttributeInfoList.isEmpty()){ + asProductAttributeInfoService.saveBatch(asProductAttributeInfoList); + } + //sku + List productSkuModelList = projectInfoSaveReq.getProductSkuList(); + List projectSkuInfos = productSkuModelList.stream().map( + productSkuModel -> ProjectSkuInfo.productSkuModelNuild(productSkuModel, projectInfo::getId) + ).toList(); + if (!productSkuModelList.isEmpty()){ + projectSkuInfoService.saveBatch(projectSkuInfos); + } + } + return save; + } + @Override + public boolean util(Long id, ProjectInfoEditReq projectInfoEditReq) { + + return false; + } +@Autowired +private ProjectSkuInfoMapper projectSkuInfoMapper; + @Override + public ProductSkuModel find(Long id) { + + + return projectSkuInfoMapper.find(id); + } + + @Override + public ProjectAddModel getById1(Long id, ProductSkuModel productSkuModel) { + + ProjectInfo byId = this.getById(id); + ProjectAddModel projectAddModel = ProjectAddModel.queryBuild(byId); + projectAddModel.setProductSkuModel(productSkuModel); + return projectAddModel; + } + + } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/ProjectSkuInfoMapper.xml b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/ProjectSkuInfoMapper.xml index de5ebe4..0456a5c 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/ProjectSkuInfoMapper.xml +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/ProjectSkuInfoMapper.xml @@ -21,4 +21,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, project_id, sku, stock, price, image, remark, create_by, create_time, update_by, update_time from project_sku_info +