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 9299907..96641dd 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 @@ -59,12 +59,14 @@ public class AsProductAttributeInfo extends BaseEntity { .productId(projectId.get()) .attributeId(attrValueModel.getId()) .value(attrValueModel.getValue()) + .productId(projectId.get()) .build(); } public static AsProductAttributeInfo productAttributeInfo(Long productId){ return AsProductAttributeInfo.builder() .attributeId(productId) + .productId(productId) .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 8392c13..e45a11e 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 @@ -26,6 +26,7 @@ import java.util.List; @AllArgsConstructor @EqualsAndHashCode(callSuper = true) public class ProjectAddModel extends BaseEntity { + private Long id; /** * 商品名称 */ @@ -85,6 +86,11 @@ public class ProjectAddModel extends BaseEntity { */ @ApiModelProperty(name = "品牌",value = "品牌") private Long brandId; + /** + * 备注 + */ + @ApiModelProperty(name = "备注",value = "备注") + private String remark; private List asProductAttributeInfos; @@ -104,6 +110,7 @@ public class ProjectAddModel extends BaseEntity { .ruleId(projectInfoQueryReq.getRuleId()) .brandId(projectInfoQueryReq.getBrandId()) .projectSkuInfos(projectSkuInfoList) + .remark(projectInfoQueryReq.getRemark()) .asProductAttributeInfos(asProductAttributeInfoList) .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..3dbd109 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 * @@ -63,4 +68,9 @@ public class ProjectInfoEditReq extends BaseEntity { @ApiModelProperty(name = "品牌", value = "品牌") private Long brandId; + private ProjectAddModel projectAddModel; + + private List attrValueList; + + private List productSkuList; } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/AttributeGroupController.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/AttributeGroupController.java index 13e2987..bd489a0 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/AttributeGroupController.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/controller/AttributeGroupController.java @@ -99,7 +99,6 @@ public class AttributeGroupController extends BaseController { @PutMapping("/{id}") @ApiOperation("修改属性组") public Result edit(@PathVariable Long id, @RequestBody AttributeGroupEditReq attributeGroupEditReq) { - attributeGroupService.updateAsAttributGroup(attributeGroupEditReq,id); return toAjax(attributeGroupService.updateById(AttributeGroup.editBuild(id,attributeGroupEditReq))); } @@ -112,7 +111,6 @@ public class AttributeGroupController 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) { - attributeGroupService.removeBatchById(ids); return toAjax(attributeGroupService.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 9bf53c4..4e56621 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 @@ -91,14 +91,13 @@ public class ProjectInfoController extends BaseController { List list = asProductAttributeInfoService.list(asProductAttributeInfoLambdaQueryWrapper); ProjectInfo projectInfo = projectInfoService.getById(id); - LambdaQueryWrapper projectSkuInfoLambdaQueryWrapper = new LambdaQueryWrapper<>(); projectSkuInfoLambdaQueryWrapper.eq(ProjectSkuInfo::getProjectId,id); List projectSkuInfos = projectSkuInfoService.list(projectSkuInfoLambdaQueryWrapper); - ProjectAddModel projectAddModel = ProjectAddModel.queryBuild(projectInfo, list, projectSkuInfos ); + projectAddModel.setId(id); return Result.success(projectAddModel); } @@ -121,8 +120,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))); + return toAjax(projectInfoService.updateInfo(projectInfoEditReq)); } /** @@ -134,6 +132,7 @@ public class ProjectInfoController 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) { + projectInfoService.del(ids); return toAjax(projectInfoService.removeBatchByIds(ids)); } } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/AttributeGroupService.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/AttributeGroupService.java index b7dfa8f..ca46bf7 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/AttributeGroupService.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/AttributeGroupService.java @@ -40,7 +40,5 @@ public interface AttributeGroupService extends IService { */ public Boolean save(AttributeGroupSaveModel attributeGroupSaveModel); - void updateAsAttributGroup(AttributeGroupEditReq attributeGroupEditReq, Long id); - Boolean removeBatchById(List ids); } 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 78ba832..070646e 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 @@ -26,7 +26,7 @@ public interface ProjectInfoService extends IService { boolean save(ProjectInfoSaveReq projectInfoSaveReq); + boolean updateInfo(ProjectInfoEditReq projectInfoEditReq); - - + boolean del(List ids); } 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 e391528..85322cf 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 @@ -13,14 +13,11 @@ import com.muyu.product.domain.req.ProjectInfoEditReq; import com.muyu.product.domain.req.ProjectInfoSaveReq; import com.muyu.product.mapper.CategoryInfoMapper; import com.muyu.product.mapper.ProjectSkuInfoMapper; -import com.muyu.product.service.AsProductAttributeInfoService; -import com.muyu.product.service.CategoryInfoService; -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 com.muyu.product.mapper.ProjectInfoMapper; -import com.muyu.product.service.ProjectInfoService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -125,8 +122,81 @@ public class ProjectInfoServiceImpl extends ServiceImpl asBrandProjectLambdaQueryWrapper = new LambdaQueryWrapper<>(); + asBrandProjectLambdaQueryWrapper.eq(AsBrandProject::getProjectId, projectInfoEditReq.getProjectAddModel().getId()); + boolean remove = asBrandProjectService.remove(asBrandProjectLambdaQueryWrapper); + if (remove) { + log.debug("删除中间表成功"); + } + + AsBrandProject asBrandProject = new AsBrandProject(null, projectInfo.getBrandId(), String.valueOf(projectInfoEditReq.getProjectAddModel().getId())); + boolean save1 = asBrandProjectService.save(asBrandProject); + + LambdaQueryWrapper projectInfoLambdaQueryWrapper = new LambdaQueryWrapper<>(); + projectInfoLambdaQueryWrapper.eq(ProjectInfo::getId, projectInfoEditReq.getProjectAddModel().getId()); + boolean save = this.update(projectInfo, projectInfoLambdaQueryWrapper); + + if (save) { + //删除属性值 + LambdaQueryWrapper asProductAttributeInfoLambdaQueryWrapper = new LambdaQueryWrapper<>(); + asProductAttributeInfoLambdaQueryWrapper.eq(AsProductAttributeInfo::getProductId, projectInfoEditReq.getProjectAddModel().getId()); + asProductAttributeInfoService.remove(asProductAttributeInfoLambdaQueryWrapper); + // 添加属性值 + List attrValueList = projectInfoEditReq.getAttrValueList(); + List asProductAttributeInfoList = attrValueList.stream() + .map(attrValueModel -> AsProductAttributeInfo.attrValueModelBuild(attrValueModel, projectInfoEditReq.getProjectAddModel()::getId)) + .toList(); + if (!asProductAttributeInfoList.isEmpty()) { + asProductAttributeInfoService.saveBatch(asProductAttributeInfoList); + } + // sku ProductSkuModel -》 ProjectSkuInfo + //删除SKU + LambdaQueryWrapper projectSkuInfoLambdaQueryWrapper = new LambdaQueryWrapper<>(); + projectSkuInfoLambdaQueryWrapper.eq(ProjectSkuInfo::getProjectId, projectInfoEditReq.getProjectAddModel().getId()); + projectSkuInfoService.remove(projectSkuInfoLambdaQueryWrapper); + //添加sku + List productSkuModelList = projectInfoEditReq.getProductSkuList(); + List projectSkuInfoList = productSkuModelList.stream().map( + productSkuModel -> ProjectSkuInfo.productSkuModelNuild(productSkuModel, projectInfoEditReq.getProjectAddModel()::getId) + ).toList(); + if (!projectSkuInfoList.isEmpty()) { + projectSkuInfoService.saveBatch(projectSkuInfoList); + } + } + return save; + } + @Override + public boolean del(List ids) { + LambdaQueryWrapper projectInfoLambdaQueryWrapper = new LambdaQueryWrapper<>(); + projectInfoLambdaQueryWrapper.in(ProjectInfo::getId,ids ); + boolean remove = this.remove(projectInfoLambdaQueryWrapper); + if (remove){ + LambdaQueryWrapper projectSkuInfoLambdaQueryWrapper = new LambdaQueryWrapper<>(); + projectSkuInfoLambdaQueryWrapper.in(ProjectSkuInfo::getProjectId, ids); + List list = projectSkuInfoService.list(projectSkuInfoLambdaQueryWrapper); + boolean b = projectSkuInfoService.removeBatchByIds(list); + if (b){ + LambdaQueryWrapper asProductAttributeInfoLambdaQueryWrapper = new LambdaQueryWrapper<>(); + asProductAttributeInfoLambdaQueryWrapper.in(AsProductAttributeInfo::getProductId, ids); + List list1 = asProductAttributeInfoService.list(asProductAttributeInfoLambdaQueryWrapper); + asProductAttributeInfoService.removeBatchByIds(list1); + return true; + } + + + } + return false; + } }