|
|
@ -228,5 +228,66 @@ public class GoodsSkuServiceImpl extends ServiceImpl<GoodsSkuMapper,GoodsSku> im |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void editSku2(GoodsSkuBo goodSkuVo) { |
|
|
|
GoodsSku dbGoodSku = null; |
|
|
|
if(goodSkuVo.getSkuId()!=null){ |
|
|
|
dbGoodSku = this.getById(goodSkuVo.getSkuId()); |
|
|
|
if(dbGoodSku==null){ |
|
|
|
Assert.throwEx("数据不存在"); |
|
|
|
} |
|
|
|
} |
|
|
|
GoodsSku goodsSku = CopierUtil.copy(goodSkuVo,new GoodsSku()); |
|
|
|
if(dbGoodSku!=null){ |
|
|
|
if(goodsSku.getSpuId()!=null&&!goodsSku.getSpuId().equals(dbGoodSku.getSpuId())){ |
|
|
|
Assert.throwEx("规格编码已被其它商品使用"); |
|
|
|
} |
|
|
|
goodsSku.setId(dbGoodSku.getId()); |
|
|
|
} |
|
|
|
if(goodSkuVo.getSpecValueIds()!=null){ |
|
|
|
if(goodSkuVo.getSpecValueIds().size()!= GoodsConst.SPEC_COUNT){ |
|
|
|
Assert.throwEx("规格值数量缺失"); |
|
|
|
} |
|
|
|
List<GoodsSpecValue> goodsSpecValues = goodsSpecValueService.listByIds(goodSkuVo.getSpecValueIds()); |
|
|
|
Set<Long> specIds = goodsSpecValues.stream().map(GoodsSpecValue::getSpecId).collect(Collectors.toSet()); |
|
|
|
if(specIds.size()!=GoodsConst.SPEC_COUNT){ |
|
|
|
Assert.throwEx("规格数量缺失"); |
|
|
|
} |
|
|
|
//校验规格值
|
|
|
|
String specInfos = goodsSku.getBelong().trim()+";"+goodsSku.getTasteVal().trim()+";"+goodsSku.getWrapVal().trim(); |
|
|
|
LambdaQueryWrapper<GoodsSku> checkSkuSpec = new LambdaQueryWrapper<>(); |
|
|
|
checkSkuSpec.eq(GoodsSku::getSpuId,goodsSku.getId()); |
|
|
|
checkSkuSpec.eq(GoodsSku::getSpecInfos,specInfos); |
|
|
|
if(goodsSku.getId()!=null){ |
|
|
|
checkSkuSpec.ne(GoodsSku::getId,goodsSku.getId()); |
|
|
|
} |
|
|
|
Long checkSkuSpecCount = super.count(checkSkuSpec); |
|
|
|
if(checkSkuSpecCount>0){ |
|
|
|
Assert.throwEx("相同规格已存在"); |
|
|
|
} |
|
|
|
goodsSku.setSpecInfos(specInfos); |
|
|
|
this.saveOrUpdate(goodsSku); |
|
|
|
|
|
|
|
}else { |
|
|
|
this.updateById(goodsSku); |
|
|
|
} |
|
|
|
//更新特殊标识
|
|
|
|
LambdaQueryWrapper<GoodsSku> specialSkuLqw = new LambdaQueryWrapper<>(); |
|
|
|
specialSkuLqw.eq(GoodsSku::getSpecialFlag,1); |
|
|
|
specialSkuLqw.eq(GoodsSku::getSpuId,goodsSku.getId()); |
|
|
|
List<GoodsSku> specialSkuList = super.list(specialSkuLqw); |
|
|
|
if(specialSkuList.size()>0){ |
|
|
|
GoodsSku goodsSku1 = specialSkuList.get(0); |
|
|
|
GoodsSpuMapper spuMapper = SpringUtils.getBean(GoodsSpuMapper.class); |
|
|
|
GoodsSpu spu = new GoodsSpu(); |
|
|
|
spu.setId(goodsSku1.getSpuId()); |
|
|
|
if(goodSkuVo.getSpecialFlag().equals(1)){ |
|
|
|
spu.setSpecialSkuId(goodsSku1.getId()); |
|
|
|
}else { |
|
|
|
spu.setSpecialSkuId(0L); |
|
|
|
} |
|
|
|
spuMapper.updateById(spu); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|