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..cc2f56b 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 @@ -126,6 +126,7 @@ public class ProjectInfo extends BaseEntity { .brandId(projectAddModel.getBrandId()) .createBy(createBy.get()) .createTime(new Date()) + .id(projectAddModel.getId()) .build(); } @@ -135,16 +136,16 @@ public class ProjectInfo extends BaseEntity { public static ProjectInfo editBuild(Long id, ProjectInfoEditReq projectInfoEditReq){ return ProjectInfo.builder() .id(id) - .name(projectInfoEditReq.getName()) - .introduction(projectInfoEditReq.getIntroduction()) - .mianType(projectInfoEditReq.getMianType()) - .parentType(projectInfoEditReq.getParentType()) - .type(projectInfoEditReq.getType()) - .image(projectInfoEditReq.getImage()) - .carouselImages(projectInfoEditReq.getCarouselImages()) - .status(projectInfoEditReq.getStatus()) - .ruleId(projectInfoEditReq.getRuleId()) - .brandId(projectInfoEditReq.getBrandId()) + .name(projectInfoEditReq.getProjectAddModel().getName()) + .introduction(projectInfoEditReq.getProjectAddModel().getIntroduction()) + .mianType(projectInfoEditReq.getProjectAddModel().getMianType()) + .parentType(projectInfoEditReq.getProjectAddModel().getParentType()) + .type(projectInfoEditReq.getProjectAddModel().getType()) + .image(projectInfoEditReq.getProjectAddModel().getImage()) + .carouselImages(projectInfoEditReq.getProjectAddModel().getCarouselImages()) + .status(projectInfoEditReq.getProjectAddModel().getStatus()) + .ruleId(projectInfoEditReq.getProjectAddModel().getRuleId()) + .brandId(projectInfoEditReq.getProjectAddModel().getBrandId()) .build(); } 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..8d6ba21 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 @@ -16,6 +16,7 @@ import lombok.experimental.SuperBuilder; @AllArgsConstructor @EqualsAndHashCode(callSuper = true) public class ProjectAddModel extends BaseEntity { + private Long id; /** 商品名称 */ @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..9774ca5 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 @@ -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 * @@ -23,44 +28,21 @@ public class ProjectInfoEditReq extends BaseEntity { private static final long serialVersionUID = 1L; - /** 商品名称 */ - @ApiModelProperty(name = "商品名称", value = "商品名称") - private String name; - /** 商品描述 */ - @ApiModelProperty(name = "商品描述", value = "商品描述") - private String introduction; - /** 主类型 */ - @ApiModelProperty(name = "主类型", value = "主类型") - private String mianType; + /** + * 商品添加基本属性 + */ + private ProjectAddModel projectAddModel; - /** 父类型 */ - @ApiModelProperty(name = "父类型", value = "父类型") - private String parentType; + /** + * 商品属性 + */ + private List attrValueList; - /** 商品类型 */ - @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; + /** + * 商品SKu + */ + private List productSkuList; } 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 f2d3fbd..0c766da 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,9 +3,9 @@ package com.muyu.product.controller; import java.util.List; import javax.servlet.http.HttpServletResponse; -import com.muyu.product.domain.AsBrandProject; import com.muyu.product.domain.resp.ProjectInfoResp; import io.swagger.annotations.*; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -37,6 +37,7 @@ import com.muyu.common.core.web.page.TableDataInfo; @Api(tags = "商品信息") @RestController @RequestMapping("/info") +@Slf4j public class ProjectInfoController extends BaseController { @Autowired private ProjectInfoService projectInfoService; @@ -98,7 +99,8 @@ public class ProjectInfoController extends BaseController { @PutMapping("/{id}") @ApiOperation("修改商品信息") public Result edit(@PathVariable Long id, @RequestBody ProjectInfoEditReq projectInfoEditReq) { - return toAjax(projectInfoService.updateById(ProjectInfo.editBuild(id,projectInfoEditReq))); + log.error(projectInfoEditReq.toString()); + return toAjax(projectInfoService.updateInfo(projectInfoEditReq)); } /** 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 de742ba..fa07fde 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,7 @@ 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.req.ProjectInfoEditReq; import com.muyu.product.domain.req.ProjectInfoSaveReq; import com.muyu.product.domain.resp.ProjectInfoResp; @@ -29,4 +30,6 @@ public interface ProjectInfoService extends IService { boolean save (ProjectInfoSaveReq projectInfoSaveReq); ProjectInfoResp getInfoById(Long id); + + boolean updateInfo(ProjectInfoEditReq projectInfoEditReq); } 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 6b4ad8e..2a5f736 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 @@ -10,6 +10,7 @@ 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.req.ProjectInfoEditReq; import com.muyu.product.domain.req.ProjectInfoSaveReq; import com.muyu.product.domain.resp.ProjectInfoResp; import com.muyu.product.service.AsBrandProjectService; @@ -157,4 +158,58 @@ public class ProjectInfoServiceImpl extends ServiceImpl asBrandProjectLambdaQueryWrapper = new LambdaQueryWrapper<>(); + asBrandProjectLambdaQueryWrapper.eq(AsBrandProject::getProjectId,projectInfo.getId()); + boolean remove = asBrandProjectService.remove(asBrandProjectLambdaQueryWrapper); + if (remove){ + log.debug("删除品牌中间表成功"); + } + //添加品牌中间表 + AsBrandProject asBrandProject = new AsBrandProject(null, projectInfo.getBrandId(), String.valueOf(projectInfo.getId())); + boolean save1 = asBrandProjectService.save(asBrandProject); + + //修改商品信息 + LambdaQueryWrapper projectInfoLambdaQueryWrapper = new LambdaQueryWrapper<>(); + projectInfoLambdaQueryWrapper.eq(ProjectInfo::getId,projectInfo.getId()); + boolean save = this.update(projectInfo,projectInfoLambdaQueryWrapper); + + if (save){ + //删除属性值 + LambdaQueryWrapper asProductAttributeInfoLambdaQueryWrapper = new LambdaQueryWrapper<>(); + asProductAttributeInfoLambdaQueryWrapper.eq(AsProductAttributeInfo::getProductId,projectInfo.getId()); + asProductAttributeInfoService.remove(asProductAttributeInfoLambdaQueryWrapper); + // 添加属性值 + List attrValueList = projectInfoEditReq.getAttrValueList(); + List asProductAttributeInfoList = attrValueList.stream() + .map(attrValueModel -> AsProductAttributeInfo.attrValueModelBuild(attrValueModel, projectInfo::getId)) + .toList(); + if (!asProductAttributeInfoList.isEmpty()){ + asProductAttributeInfoService.saveBatch(asProductAttributeInfoList); + } + // sku ProductSkuModel -》 ProjectSkuInfo + + + //删除SKU + LambdaQueryWrapper projectSkuInfoLambdaQueryWrapper = new LambdaQueryWrapper<>(); + projectSkuInfoLambdaQueryWrapper.eq(ProjectSkuInfo::getProjectId,projectInfo.getId()); + projectSkuInfoService.remove(projectSkuInfoLambdaQueryWrapper); + //添加sku + List productSkuModelList = projectInfoEditReq.getProductSkuList(); + List projectSkuInfoList = productSkuModelList.stream().map( + productSkuModel -> ProjectSkuInfo.productSkuModelBuild(productSkuModel, projectInfo::getId) + ).toList(); + if (!projectSkuInfoList.isEmpty()){ + projectSkuInfoService.saveBatch(projectSkuInfoList); + } + } + return save; + } }