From 7232fb317320d8dba0e742ad021aae46697f6695 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 23 Aug 2024 16:54:30 +0800 Subject: [PATCH] =?UTF-8?q?1.=E6=9F=A5=E8=AF=A2=E8=A7=84=E6=A0=BC=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=90=8C=E6=AD=A5=E8=BF=94=E5=9B=9E=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E5=94=AE=E7=BD=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/ProductService.java | 44 ++++++++++++++++--- 1 file changed, 37 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/ProductService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/ProductService.java index 9ef636d..9c6f777 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/ProductService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/ProductService.java @@ -233,7 +233,8 @@ public class ProductService { // 重组有效规格数据 String tagSnap = skuResult != null ? skuResult.getTagSnap() : null; - List tbProductSkus = tbProductSkuMapper.selectGroundingByProId(querySpecDTO.getProductId()); +// List tbProductSkus = tbProductSkuMapper.selectGroundingByProId(querySpecDTO.getProductId()); + List tbProductSkus = tbProductSkuMapper.selectSku(String.valueOf(querySpecDTO.getProductId())); JSONArray finalSnap = new JSONArray(); // if (tagSnap != null) { @@ -315,11 +316,17 @@ public class ProductService { } ArrayList> specList = new ArrayList<>(); + HashMap unGroundingMap = new HashMap<>(); tbProductSkus.forEach(item -> { - HashMap itemMap = new HashMap<>(); - itemMap.put("specSnap", item.getSpecSnap()); - itemMap.put("skuId", item.getId()); - specList.add(itemMap); + if (item.getIsGrounding() == 1) { + HashMap itemMap = new HashMap<>(); + itemMap.put("specSnap", item.getSpecSnap()); + itemMap.put("skuId", item.getId()); + itemMap.put("info", item); + specList.add(itemMap); + }else { + unGroundingMap.put(item.getSpecSnap(), item); + } }); @@ -329,6 +336,13 @@ public class ProductService { for (HashMap spec : specList) { if (res.equals(spec.get("specSnap").toString())) { spec.put("isGrounding", true); + TbProductSku sku = (TbProductSku) spec.get("info"); + if (sku != null) { + checkPauseSale(tbProduct, new ArrayList<>(Collections.singletonList(sku)), true); + spec.put("isPauseSale", tbProduct.getIsPauseSale()); + }else { + spec.put("isPauseSale", 1); + } found = true; break; } @@ -338,6 +352,13 @@ public class ProductService { itemMap.put("specSnap", res); itemMap.put("skuId", null); itemMap.put("isGrounding", false); + TbProductSku sku = unGroundingMap.get("specSnap"); + if (sku != null) { + checkPauseSale(tbProduct, Collections.singletonList(sku), true); + itemMap.put("isPauseSale", tbProduct.getIsPauseSale()); + }else { + itemMap.put("isPauseSale", 1); + } otherVal.add(itemMap); } } @@ -387,7 +408,7 @@ public class ProductService { List tbProductSkus = tbProductSkuMapper.selectGroundingByProId(it.getId()); TbProductSkuResult skuResult = tbProductSkuResultMapper.selectByPrimaryKey(it.getId()); //判断库存及耗材 - checkPauseSale(it,tbProductSkus); + checkPauseSale(it,tbProductSkus, false); AtomicDouble sum = new AtomicDouble(0.0); BigDecimal lowerPrice = null; @@ -418,14 +439,23 @@ public class ProductService { } } - public void checkPauseSale(TbProduct tbProduct, List skus) { + public void checkPauseSale(TbProduct tbProduct, List skus, boolean isSingle) { if (tbProduct.getIsStock() == 1) {//库存开关 1开启 if (Integer.valueOf(tbProduct.getIsDistribute()).equals(1)) {//共享库存 1开启 if (tbProduct.getStockNumber() != null && tbProduct.getStockNumber() <= 0) { tbProduct.setIsPauseSale(Byte.parseByte("1"));//售罄 1暂停 return; } + + if (isSingle && tbProduct.getIsPauseSale() == 1) { + return; + } } else { + if (isSingle && !skus.stream().filter(res -> res.getIsPauseSale().equals(1)).collect(Collectors.toList()).isEmpty()) { + tbProduct.setIsPauseSale(Byte.parseByte("1"));//售罄 1暂停 + return; + } + if (!tbProduct.getTypeEnum().equals("sku")) { if (skus.stream().anyMatch(sku -> sku.getStockNumber() != null && sku.getStockNumber() <= 0)){ tbProduct.setIsPauseSale(Byte.parseByte("1"));//售罄 1暂停