diff --git a/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderSkuBo.java b/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderSkuBo.java index 8bb24be2..e957b220 100644 --- a/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderSkuBo.java +++ b/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderSkuBo.java @@ -37,9 +37,14 @@ public class OmsOrderSkuBo { @Data public static class SpuParam{ + /** skuId */ private Long spuId; + private Long skuId; + + private Long skuCode; + /** 数量 */ private Integer qty; diff --git a/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java b/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java index 011aa64f..ea8f66a3 100644 --- a/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java @@ -136,28 +136,40 @@ public class OmsOrderServiceImpl extends ServiceImpl im //构建Sku List spuIds = confirmOrder.getSpuParamList().stream() .map(OmsOrderSkuBo.SpuParam::getSpuId).collect(Collectors.toList()); + //构建Sku + List skuIds = confirmOrder.getSpuParamList().stream() + .map(OmsOrderSkuBo.SpuParam::getSkuId).collect(Collectors.toList()); //防止空指针 spuIds.add(0L); + skuIds.add(0L); List spuList = goodsSpuService.listByIds(spuIds); + List skuList = goodsSkuService.listByIds(skuIds); //通过当前函数获取当前账套对于的skuID,默认全部转化为开平(001)的sku - Map goodsSpuMap = new HashMap<>(spuList.size()); - for (GoodsSpu goodsSpu : spuList) { - goodsSpuMap.put(goodsSpu.getId(),goodsSpu); - } - List spuCodeList = spuList.stream().map(GoodsSpu::getSpuCode).collect(Collectors.toList()); - List spuToSkuKeys = goodsSpuService.getSpuToSkuInfo(GoodsConst.DEFAULT_PlaCE,spuCodeList); - Map spuGetSkuMap = new HashMap<>(spuToSkuKeys.size()); - for (OmsSpuToSkuKey toSkuKey : spuToSkuKeys) { - spuGetSkuMap.put(toSkuKey.getSkuCode(),toSkuKey.getInvCode()); - } +// Map goodsSpuMap = new HashMap<>(spuList.size()); +// for (GoodsSpu goodsSpu : spuList) { +// goodsSpuMap.put(goodsSpu.getId(),goodsSpu); +// } +// List spuCodeList = spuList.stream().map(GoodsSpu::getSpuCode).collect(Collectors.toList()); +// List spuToSkuKeys = goodsSpuService.getSpuToSkuInfo(GoodsConst.DEFAULT_PlaCE,spuCodeList); +// Map spuGetSkuMap = new HashMap<>(spuToSkuKeys.size()); +// for (OmsSpuToSkuKey toSkuKey : spuToSkuKeys) { +// spuGetSkuMap.put(toSkuKey.getSkuCode(),toSkuKey.getInvCode()); +// } //构建临时购物车列表 List shoppingCartList = new ArrayList<>(); - for (GoodsSpu goodsSpu : spuList) { - String skuCode = spuGetSkuMap.get(goodsSpu.getSpuCode()); - GoodsSku goodsSku = goodsSkuService.getByCode(skuCode); + for (GoodsSku goodsSku : skuList) { + GoodsSpu goodsSpu = null; + for (GoodsSpu spu : spuList) { + if(goodsSku.getSpuId().equals(spu.getId())){ + goodsSpu = spu; + } + } + if(goodsSku==null){ + Assert.throwEx("商品档案有更新,请刷新页面再试"); + } OmsShoppingCart shoppingCart = new OmsShoppingCart(); shoppingCart.setSpuId(goodsSpu.getId()); shoppingCart.setSpuCode(goodsSpu.getSpuCode()); @@ -277,11 +289,11 @@ public class OmsOrderServiceImpl extends ServiceImpl im orderItem.setSpuId(goodsSpu.getId()); orderItem.setSpuCode(goodsSpu.getSpuCode()); orderItem.setSpuTitle(goodsSpu.getName()); - orderItem.setSkuTitle(goodsSku.getSkuName()); orderItem.setWeight(modifyItem.getWeight()); orderItem.setVolume(modifyItem.getVolume()); if(goodsSku!=null){ orderItem.setSkuId(goodsSku.getId()); + orderItem.setSkuTitle(goodsSku.getSkuName()); orderItem.setSkuCode(goodsSku.getSkuCode()); orderItem.setSpecValues(goodsSku.getSpecInfos()); orderItem.setSkuUnit(goodsSku.getUnitName()); @@ -393,19 +405,22 @@ public class OmsOrderServiceImpl extends ServiceImpl im orderItem.setVolume(shoppingCart.getVolume()); if(confirmOrder.getLatitudeFrom()!=null&&confirmOrder.getLatitudeFrom().equals("SPU")){ // spu维度 - GoodsSku goodsSku = goodsSkuService.getByCode(orderItem.getSkuCode()); + GoodsSku goodsSku = goodsSkuService.getById(shoppingCart.getSkuId()); orderItem.setSpuId(shoppingCart.getSpuId()); orderItem.setSpuTitle(shoppingCart.getSpecInfo()); - orderItem.setSkuTitle(goodsSku.getSkuName()); orderItem.setSkuId(shoppingCart.getId()); orderItem.setSkuCode(shoppingCart.getSkuCode()); orderItem.setSkuUnit(null); orderItem.setSkuImg(shoppingCart.getPicUrl()); orderItem.setSpecValues(shoppingCart.getSpecInfo()); orderItem.setSpuCode(shoppingCart.getSpuCode()); - orderItem.setMarketPrice(goodsSku.getMarketPrice()); - orderItem.setSalesPrice(goodsSku.getSalesPrice()); - orderItem.setCusPrice(goodsSku.getSalesPrice()); + if(goodsSku!=null){ + log.warn("shoppingCart json =>"+JsonUtil.objectToJson(shoppingCart)); + orderItem.setSkuTitle(goodsSku.getSkuName()); + orderItem.setMarketPrice(goodsSku.getMarketPrice()); + orderItem.setSalesPrice(goodsSku.getSalesPrice()); + orderItem.setCusPrice(goodsSku.getSalesPrice()); + } }else { // 默认sku GoodSkuVo goodSkuVo = shoppingCart.getGoodSkuVo();