|
@ -98,29 +98,39 @@ public class GoodsSkuServiceImpl extends ServiceImpl<GoodsSkuMapper,GoodsSku> im |
|
|
Map<Long,List<GoodsSkuSpecValueVo>> skuValListMap = skuSpecValueVos.stream().collect(Collectors.groupingBy(GoodsSkuSpecValueVo::getSkuId)); |
|
|
Map<Long,List<GoodsSkuSpecValueVo>> skuValListMap = skuSpecValueVos.stream().collect(Collectors.groupingBy(GoodsSkuSpecValueVo::getSkuId)); |
|
|
for (Long skuIdKey : skuValListMap.keySet()) { |
|
|
for (Long skuIdKey : skuValListMap.keySet()) { |
|
|
List<GoodsSkuSpecValueVo> skuSpecValueVoList = skuValListMap.get(skuIdKey); |
|
|
List<GoodsSkuSpecValueVo> skuSpecValueVoList = skuValListMap.get(skuIdKey); |
|
|
boolean noExist = skuSpecValueVoList.stream().anyMatch(specValue->{ |
|
|
boolean matchAll = true; |
|
|
for (GoodsSpecValue goodsSpecValue : goodsSpecValues) { |
|
|
for (GoodsSpecValue specValue : goodsSpecValues) { |
|
|
if(goodsSpecValue.getId().equals(specValue.getSpecValueId())){ |
|
|
boolean matchItem = false; |
|
|
return false; |
|
|
for (GoodsSkuSpecValueVo specValueVo : skuSpecValueVoList) { |
|
|
|
|
|
if(specValueVo.getSpecValueId().equals(specValue.getId())){ |
|
|
|
|
|
matchItem = true; |
|
|
|
|
|
break; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
return true; |
|
|
if(!matchItem){ |
|
|
}); |
|
|
matchAll = false; |
|
|
if(goodsSku.getId()==null&&!noExist){ |
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
if(matchAll&&!skuIdKey.equals(goodsSku.getId())){ |
|
|
Assert.throwEx("规格值组合已被占用"); |
|
|
Assert.throwEx("规格值组合已被占用"); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
String specInfos = ""; |
|
|
String specInfos = ""; |
|
|
for (int i = 0; i < skuSpecValueVos.size(); i++) { |
|
|
for (int i = 0; i < goodsSpecValues.size(); i++) { |
|
|
GoodsSkuSpecValueVo specValueVo = skuSpecValueVos.get(i); |
|
|
GoodsSpecValue specValue = goodsSpecValues.get(i); |
|
|
if( i > 0 ){ |
|
|
if( i > 0 ){ |
|
|
specInfos = ";"+specInfos; |
|
|
specInfos = ";"+specInfos; |
|
|
} |
|
|
} |
|
|
specInfos = specValueVo.getSpecValue() + specInfos; |
|
|
specInfos = specValue.getName() + specInfos; |
|
|
} |
|
|
} |
|
|
goodsSku.setSpecInfos(specInfos); |
|
|
goodsSku.setSpecInfos(specInfos); |
|
|
this.saveOrUpdate(goodsSku); |
|
|
this.saveOrUpdate(goodsSku); |
|
|
|
|
|
if(dbGoodSku!=null){ |
|
|
|
|
|
LambdaQueryWrapper<GoodsSkuSpecValue> lqw = new LambdaQueryWrapper<>(); |
|
|
|
|
|
lqw.eq(GoodsSkuSpecValue::getSkuId,dbGoodSku.getId()); |
|
|
|
|
|
goodsSkuSpecValueService.remove(lqw); |
|
|
|
|
|
} |
|
|
for (GoodsSpecValue specValue : goodsSpecValues) { |
|
|
for (GoodsSpecValue specValue : goodsSpecValues) { |
|
|
goodsSkuSpecValueService.initSkuSpecValue(goodsSku.getSpuId(),goodsSku.getId(),specValue.getId()); |
|
|
goodsSkuSpecValueService.initSkuSpecValue(goodsSku.getSpuId(),goodsSku.getId(),specValue.getId()); |
|
|
} |
|
|
} |
|
|