From d3d5e6b5bc806a640865b1cc3256ee268d662db4 Mon Sep 17 00:00:00 2001 From: liyj <1617420630@qq.com> Date: Mon, 27 Oct 2025 16:13:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E6=9D=A1=E5=BD=A2=E7=A0=81?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E5=95=86=E5=93=81=E8=AF=A6=E6=83=85=EF=BC=8C?= =?UTF-8?q?=E7=94=A8=E4=BA=8E=E7=BC=96=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/ShopProductBaseController.java | 7 ++ .../service/ShopProductBaseService.java | 2 + .../impl/ShopProductBaseServiceImpl.java | 99 ++++++++++++++++++- 3 files changed, 104 insertions(+), 4 deletions(-) diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/product/controller/admin/ShopProductBaseController.java b/mall-shop/src/main/java/com/suisung/mall/shop/product/controller/admin/ShopProductBaseController.java index 0aff3cc7..1c3513e1 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/product/controller/admin/ShopProductBaseController.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/product/controller/admin/ShopProductBaseController.java @@ -190,4 +190,11 @@ public class ShopProductBaseController extends BaseControllerImpl { shopProductBaseService.exportFile(response, shopProductBase, Convert.toList(Integer.class, product_ids)); } + + @ApiOperation(value = "根据条形码查询商品信息", notes = "根据条形码查询商品信息") + @RequestMapping(value = "/getProductByProductNumber", method = RequestMethod.GET) + public CommonResult getProductByProductNumber(@RequestParam(name = "productNumber") String productNumber) { + return CommonResult.success(shopProductBaseService.getProductByProductNumber(productNumber)); + } + } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/product/service/ShopProductBaseService.java b/mall-shop/src/main/java/com/suisung/mall/shop/product/service/ShopProductBaseService.java index 496ef8b9..93c66331 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/product/service/ShopProductBaseService.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/product/service/ShopProductBaseService.java @@ -304,4 +304,6 @@ public interface ShopProductBaseService extends IBaseService { int countFindMapping(Integer store_id); List findPageMapping(Integer store_id, Integer pageNum, Integer pageSize); + + Map getProductByProductNumber(String productNumber); } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/product/service/impl/ShopProductBaseServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/product/service/impl/ShopProductBaseServiceImpl.java index 8d2adc08..872ef8e3 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/product/service/impl/ShopProductBaseServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/product/service/impl/ShopProductBaseServiceImpl.java @@ -45,10 +45,7 @@ import com.suisung.mall.common.pojo.dto.BaiduAiBriefDTO; import com.suisung.mall.common.pojo.dto.ProductRecommendDTO; import com.suisung.mall.common.pojo.dto.ProductSearchDTO; import com.suisung.mall.common.service.MessageService; -import com.suisung.mall.common.utils.CSVUtils; -import com.suisung.mall.common.utils.CheckUtil; -import com.suisung.mall.common.utils.CommonUtil; -import com.suisung.mall.common.utils.I18nUtil; +import com.suisung.mall.common.utils.*; import com.suisung.mall.core.web.service.impl.BaseServiceImpl; import com.suisung.mall.shop.activity.service.ShopActivityGroupbookingService; import com.suisung.mall.shop.base.service.*; @@ -6460,5 +6457,99 @@ public class ShopProductBaseServiceImpl extends BaseServiceImpl cond_row = new QueryWrapper<>(); + if (StrUtil.isNotBlank(productNumber)) { + cond_row.eq("product_number", productNumber); + } + cond_row.eq("store_id",store_id); + List lists = shopProductIndexService.list(cond_row); + if(lists.isEmpty()){ + return null; + } + ShopProductIndex shopProductIndexFind=lists.get(0); + // todo lc + // data.put("productBase",shopProductIndexFind); + + //判断是否为商家,且开启供应商,判断是否已经加入分销中 + Long productId= shopProductIndexFind.getProduct_id(); + List product_ids= Collections.singletonList(Math.toIntExact(productId)); + data.put("baseInfo", getProduct(product_ids)); + List baseInfo = (List) data.get("baseInfo"); + + baseInfo.forEach(s -> { + String str_product_spec = (String) s.get("product_spec"); + if (StrUtil.isNotBlank(str_product_spec) && StrUtil.equals(str_product_spec, "[]")) { + s.put("product_spec", JSONUtil.parseArray(str_product_spec)); + } + + String str_product_assist = (String) s.get("product_assist"); + if (StrUtil.isNotBlank(str_product_assist) && StrUtil.equals(str_product_assist, "{}")) { + s.put("product_assist", JSONUtil.parseObj(str_product_assist)); + } + }); + + QueryWrapper itemQueryWrapper = new QueryWrapper<>(); + itemQueryWrapper.eq("product_id", productId); + List productItems = shopProductItemService.find(itemQueryWrapper); + + if (CollectionUtil.isNotEmpty(productItems)) { + for (Map item : baseInfo) { + List shopProductItems = productItems.stream().filter(s -> ObjectUtil.equal(s.getProduct_id(), productId)).collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(shopProductItems)) { + BigDecimal product_advice_price = shopProductItems.stream().map(ShopProductItem::getItem_advice_price).min(BigDecimal::compareTo).get(); + item.put("product_advice_price", product_advice_price); + } + } + } + + List productItemS = productItems.stream().filter(distinctByKey(o -> o.getProduct_id())).collect(Collectors.toList()); + data.put("items",productItemS);//商品规格列表 + // shop_product_info + ShopProductInfo shopProductInfo = shopProductInfoService.get(productId); + // shop_product_detail + ShopProductDetail shopProductDetail = shopProductDetailService.get(productId); + // shop_product_index + ShopProductIndex shopProductIndex = shopProductIndexService.get(productId); + // shop_product_image + QueryWrapper imageQueryWrapper = new QueryWrapper<>(); + imageQueryWrapper.eq("product_id", productId); + List shopProductImages = shopProductImageService.find(imageQueryWrapper); + // shop_product_assist_index + QueryWrapper indexQueryWrapper = new QueryWrapper<>(); + indexQueryWrapper.eq("product_id", productId); + List assistIndexList = assistIndexService.find(indexQueryWrapper); + + HashMap map = new HashMap<>(); + if(com.suisung.mall.common.utils.StringUtils.isEmpty(shopProductInfo.getProduct_spec())){ + shopProductInfo.setProduct_spec("[]"); + } + map.put("shop_product_info", shopProductInfo); + map.put("shop_product_image", shopProductImages); + map.put("shop_product_detail", shopProductDetail); + map.put("shop_product_index", shopProductIndex); + map.put("shop_product_assist_index", assistIndexList); + + // 虚拟商品信息表 + Integer kind_id = shopProductIndex.getKind_id(); + if (ObjectUtil.equal(kind_id, StateCode.PRODUCT_KIND_FUWU)) { + ShopProductValidPeriod validPeriod = shopProductValidPeriodService.get(productId); + map.put("shop_product_valid_period", validPeriod); + } + data.put("productInfo",map); + Integer category_id=productItems.get(0).getCategory_id(); + ShopBaseProductCategory shopBaseProductCategory= shopBaseProductCategoryService.get(category_id); + data.put("category",shopBaseProductCategory); + Integer typeId=shopBaseProductCategory.getType_id(); + data.put("shopBaseProductType",shopBaseProductTypeService.getType(String.valueOf(typeId), productId)) ; + + return data; + } + }