diff --git a/yshop-mall/src/main/java/co/yixiang/modules/product/service/impl/YxStoreProductAttrResultServiceImpl.java b/yshop-mall/src/main/java/co/yixiang/modules/product/service/impl/YxStoreProductAttrResultServiceImpl.java index d7da7e13..7fe6e4fc 100644 --- a/yshop-mall/src/main/java/co/yixiang/modules/product/service/impl/YxStoreProductAttrResultServiceImpl.java +++ b/yshop-mall/src/main/java/co/yixiang/modules/product/service/impl/YxStoreProductAttrResultServiceImpl.java @@ -45,7 +45,7 @@ public class YxStoreProductAttrResultServiceImpl extends BaseServiceImpllambdaQuery() + long count = this.count(Wrappers.lambdaQuery() .eq(YxStoreProductAttrResult::getProductId,productId)); if(count > 0) { this.remove(Wrappers.lambdaQuery() diff --git a/yshop-mall/src/main/java/co/yixiang/modules/product/service/impl/YxStoreProductAttrServiceImpl.java b/yshop-mall/src/main/java/co/yixiang/modules/product/service/impl/YxStoreProductAttrServiceImpl.java index fe66b4ed..2ce44ee7 100644 --- a/yshop-mall/src/main/java/co/yixiang/modules/product/service/impl/YxStoreProductAttrServiceImpl.java +++ b/yshop-mall/src/main/java/co/yixiang/modules/product/service/impl/YxStoreProductAttrServiceImpl.java @@ -29,6 +29,7 @@ import co.yixiang.modules.product.service.dto.ProductFormatDto; import co.yixiang.modules.product.service.mapper.StoreProductAttrMapper; import co.yixiang.modules.product.service.mapper.StoreProductAttrValueMapper; import co.yixiang.modules.product.vo.YxStoreProductAttrQueryVo; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -42,6 +43,7 @@ import java.util.Collections; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.stream.Collectors; @@ -101,14 +103,23 @@ public class YxStoreProductAttrServiceImpl extends BaseServiceImpl stringList = new ArrayList<>(productFormatDto.getDetail().values()); Collections.sort(stringList); + YxStoreProductAttrValue oldAttrValue = storeProductAttrValueService.getOne(new LambdaQueryWrapper() + .eq(YxStoreProductAttrValue::getSku, productFormatDto.getSku()) + .eq(YxStoreProductAttrValue::getProductId, productId)); + + String unique = IdUtil.simpleUUID(); + if (Objects.nonNull(oldAttrValue)) { + unique = oldAttrValue.getUnique(); + } YxStoreProductAttrValue yxStoreProductAttrValue = YxStoreProductAttrValue.builder() + .id(Objects.isNull(oldAttrValue) ? null : oldAttrValue.getId()) .productId(productId) .sku(StrUtil.join(",",stringList)) .price(BigDecimal.valueOf(productFormatDto.getPrice())) .cost(BigDecimal.valueOf(productFormatDto.getCost())) .otPrice(BigDecimal.valueOf(productFormatDto.getOtPrice())) - .unique(IdUtil.simpleUUID()) + .unique(unique) .image(productFormatDto.getPic()) .barCode(productFormatDto.getBarCode()) .weight(BigDecimal.valueOf(productFormatDto.getWeight())) @@ -123,7 +134,6 @@ public class YxStoreProductAttrServiceImpl extends BaseServiceImpl