From 9fcee207d53dbc89895e0fba90fd5112130ffb1d Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Wed, 21 Aug 2024 09:28:40 +0800 Subject: [PATCH] =?UTF-8?q?=E5=95=86=E5=93=81=E5=88=97=E8=A1=A8=20?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E5=BA=93=E5=AD=98=20=E4=BB=A5=E5=8F=8A=20?= =?UTF-8?q?=E8=80=97=E6=9D=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/ProductService.java | 82 +++++++++++-------- 1 file changed, 49 insertions(+), 33 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 8e844ad..83bd637 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/ProductService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/ProductService.java @@ -75,6 +75,12 @@ public class ProductService { @Autowired private TbUserInfoMapper tbUserInfoMapper; + @Autowired + private TbProskuConMapper tbProskuConMapper; + + @Autowired + private TbConsInfoMapper tbConsInfoMapper; + public Result queryShopIdByTableCode(String userId, String openId, String code, String lat, String lng) { if (StringUtils.isBlank(code)) return Result.fail("桌码信息为空"); if (StringUtils.isBlank(lat) || lat.equals("undefined")) { @@ -369,9 +375,9 @@ public class ProductService { it.setCartNumber("0"); List tbProductSkus = tbProductSkuMapper.selectGroundingByProId(it.getId()); TbProductSkuResult skuResult = tbProductSkuResultMapper.selectByPrimaryKey(it.getId()); + //判断库存及耗材 + checkPauseSale(it,tbProductSkus); - // 上下架对应的sku -// HashSet specSet = new HashSet<>(); AtomicDouble sum = new AtomicDouble(0.0); BigDecimal lowerPrice = null; for (TbProductSku item : tbProductSkus) { @@ -381,11 +387,6 @@ public class ProductService { if (lowerPrice == null || lowerPrice.compareTo(item.getSalePrice()) > 0) { lowerPrice = item.getSalePrice(); } - - String specSnap = item.getSpecSnap(); -// if (specSnap != null) { -// specSet.addAll(Arrays.asList(specSnap.split(","))); -// } } //销量 it.setStockNumber(sum.intValue()); @@ -394,32 +395,6 @@ public class ProductService { } //售价 it.setLowPrice(lowerPrice); -// String tagSnap = skuResult != null ? skuResult.getTagSnap() : null; -// if (tagSnap != null) { -// JSONArray tagSnaps = JSONObject.parseArray(tagSnap); -// JSONObject snapJSON; -// JSONArray finalSnap = new JSONArray(); -// for (Object snap : tagSnaps) { -// snapJSON = (JSONObject) snap; -// String values = snapJSON.getString("value"); -// String finalValues = ""; -// if (StrUtil.isNotBlank(values)) { -// String[] valueList = values.split(","); -// for (String value : valueList) { -// if (specSet.contains(value)) { -// finalValues = finalValues + (value) + ","; -// } -// } -// if (StrUtil.isNotBlank(finalValues)) { -// finalValues = StrUtil.removeSuffix(finalValues, ","); -// snapJSON.put("value", finalValues); -// finalSnap.add(snapJSON); -// } -// } -// } -// //sku Result -// skuResult.setTagSnap(finalSnap.toJSONString()); -// } it.setProductSkuResult(skuResult); }); return products; @@ -428,6 +403,47 @@ public class ProductService { } } + public void checkPauseSale(TbProduct tbProduct, List skus) { + 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暂停 + } + } else { + if (!tbProduct.getTypeEnum().equals("sku")) { + if (skus.stream().anyMatch(sku -> sku.getStockNumber() != null && sku.getStockNumber() <= 0)) + tbProduct.setIsPauseSale(Byte.parseByte("1"));//售罄 1暂停 + } else { + skus.removeIf(sku -> sku.getStockNumber() != null && sku.getStockNumber() <= 0); + if (CollectionUtils.isEmpty(skus)) { + tbProduct.setIsPauseSale(Byte.parseByte("1"));//售罄 1暂停 + return; + } + Iterator iterator = skus.iterator(); + while (iterator.hasNext()) { + TbProductSku tbProductSku = iterator.next(); + List proskuConList = tbProskuConMapper.selectByShopIdAndSkuIdAndProductId(Integer.valueOf(tbProductSku.getId()), Integer.valueOf(tbProductSku.getShopId()), Integer.valueOf(tbProductSku.getProductId())); + if (Objects.nonNull(proskuConList) && proskuConList.size() > 0) { + for (TbProskuCon proskuCon : proskuConList) { + if ("1".equals(proskuCon.getStatus())) { + TbConsInfo consInfo = tbConsInfoMapper.selectByPrimaryKey(proskuCon.getConInfoId()); + if ("1".equals(consInfo.getIsCheck())) { + if (N.gt(proskuCon.getSurplusStock(), consInfo.getStockNumber().abs().subtract(consInfo.getStockConsume().abs()))) { + iterator.remove(); + } + } + } + } + } + } + if (CollectionUtils.isEmpty(skus)) { + tbProduct.setIsPauseSale(Byte.parseByte("1"));//售罄 1暂停 + } + } + } + } + } + public Result queryProductSku(String code, String shopId, String productId, String spec_tag) { if (ObjectUtil.isEmpty(shopId) || ObjectUtil.isEmpty(productId)) {